CaseAdvancedResponsible AI & Advanced Practice / Compliance and legal partnership / #12
How do you handle a right-to-explanation request for a model-driven decision?
GUARD the product is Larkspur Credit, a personal-loan marketplace that scores and prices loans with a model
Larkspur Credit matches borrowers to personal loans and uses a model to decide who gets approved and at what rate. Sanaa Farooqi is the product manager for the underwriting model. She keeps a printed stack of that week's declined files on the corner of her desk, the ones her team is required to review by hand.
The direct answer
Treat the request as a design problem, not a legal one to route around. Build the model so it already produces the two to four factors that actually moved this specific decision, in plain words, before anyone asks for them, and pair every explanation with one concrete way to fix or dispute it. If the model truly cannot name real factors for a case, a person reviews that case before the letter goes out, not after someone complains.
Do this, in order
Make the model output real, specific reasons for every decision, not just a score.Why: a request for explanation should never require a special investigation, the reason should already exist.
Route any case where the model can't name a real reason to a human before the letter ships.Why: a generic fallback reason is the same as no reason at all.
Give every explanation a next step, not just a cause.Why: "your file was thin" with no path forward just restates the problem back at the applicant.
Track appeal-overturn rate by reason code, not just by total volume.Why: a reason code that never gets overturned may just be a label nobody can actually check.
Watch for one file type getting vaguer reasons than another.Why: applicants with thin or unusual files are exactly the ones most likely to get a shrug instead of an answer.
Leave the score itself out of the letter.Why: a number invites arguing with the model. A reason invites fixing the actual thing.
How to answer this, stage by stage
The short version is above. This is what you'd actually say if an interviewer asked you to walk through it live.
Stage 1
Name the product and the exact request
Say it like this
"I'll answer this for Larkspur Credit, a personal loan marketplace. Someone was declined by our model and they've asked us why."
Why this works
A vague legal phrase like "right to explanation" becomes one concrete letter to one real person.
Stage 2
Reframe the question
Say it like this
"This isn't really a question about paperwork. It's about who has a lever to push back on the model, and right now, one side of this decision has one and the other side doesn't."
Why this works
Moves the interviewer past "write a compliant letter" and into the actual product judgment being tested.
Stage 3
Name the two people
Say it like this
"There's a reviewer on our side who can question the model, escalate a case, override it. And there's the applicant, who today gets a form letter with a generic code and no way to ask anything back."
Why this works
This is GUARD's core move: name the operator and the subject on the same page, not just "users."
Stage 4
Give the one decision
Say it like this
"So the model has to produce real, specific reasons for every single decision, up front, not on request. And any case it can't explain goes to a person before the letter ever ships."
Why this works
This matches the direct answer word for word. An interviewer should be able to write this sentence down.
Stage 5
Prove it with the failure it fixes
Say it like this
"Here's what happens without that. A reporter runs a story about a gig-economy worker who got declined and couldn't get a straight answer out of anyone. Suddenly a state regulator wants the file, and all we have is a generic reason code that maps to nothing real."
Why this works
The compressed version of the story, four sentences, proving the design choice under real pressure.
Stage 6
Say what you'd measure
Say it like this
"I'd watch specific-reason coverage rate, and I'd watch it by file type, because that's where a gap would hide."
Why this works
Shows you think past the one letter and into whether the system is working for everyone, not just the average case.
Stage 7
Say what you'd leave alone
Say it like this
"I wouldn't put the raw score in the letter. It invites a fight over a number instead of a fix to the actual thing."
Why this works
Shows judgment, not just a pile of new rules.
Stage 8
Close on one line
Say it like this
"Build the explanation in from day one, so the request never has to become an investigation."
Why this works
Restates the decision and why, in one breath, so the answer ends on the point instead of trailing off.
Let's learn
Say a loan marketplace uses a model to decide who gets approved and at what rate, in seconds, for thousands of applicants a day.
For its first year, Larkspur's decline letters said one thing: a three-digit reason code and a customer service number. Reviewers spot-checked a sample of declines each week, saw the codes lined up with real underwriting factors, and moved on. The system looked fine, because on the sample it was fine.
Knowledge spark: what's an adverse-action letter?
The notice a lender has to send when it turns someone down for credit. Older rules already require a reason. The harder question a model adds is whether that reason is actually true of this specific decision, or just a label pulled off a shelf.
Then appeal volume for one kind of applicant, people with thin or unusual income records, started running higher than everyone else's, while the overturn rate on those same appeals stayed near zero. Not because those people were always rightly declined. Because nobody could tell, from the letter, what to even push back on.
Decline rate vs appeal-overturn rate, by file type
Thin-file applicants get declined more than twice as often, and almost never win an appeal, because the letter never gave them anything real to appeal.
At its worst: a state regulator opens an inquiry after a news story about one declined applicant, asks for the reasoning behind ten similar cases, and Larkspur can only hand over ten copies of the same three-digit code.
The decision I would take back
We shipped one fallback reason code, "insufficient credit profile," for any case where the top factors were messy or thin. It made sense at launch, when that combination was rare and a person reviewed most of those files anyway. It stopped making sense once volume grew and that fallback code became the single most common reason on the letter for one whole segment of applicants.
What I would leave alone: a clean, traditional-file decline, where the top factors are obvious and stable, doesn't need a person in the loop. The letter there is already specific and correct. Adding review to every single case would slow the whole system down for no real gain.
The letter was never really missing words. It was missing a lever. The reviewer had one. The applicant had none.
The lesson: a fallback message that was rare and harmless at launch can quietly become the loudest thing your system says to one entire group of people. Check who it's landing on, not just how often it fires.
Now here is the same thing as a story
Use the short version above to defend the design. Read this one for how Priya actually found the gap.
Sanaa Farooqi has run the underwriting model at Larkspur for two years. She built the reason-code system herself, back when a "declined" letter went to maybe two hundred people a week.
For most of that first year, the system earned its keep. Every Friday she pulled twenty declined files at random, read the reason code next to the actual factors the model had weighed, and checked they lined up. They always did. By month nine she was pulling five files instead of twenty. By month fourteen, she mostly wasn't pulling any.
Two people, one decision. Only one of them ever had a lever in their hand.
Then a local news site ran a piece on a rideshare driver who'd been declined twice, six months apart, with the same three-digit code both times, and no one at the company who could tell her why. It hadn't happened to Priya's own team first. It happened to a peer product at a sister company, and the story named the parent brand.
Five steps, and the fourth one was never really a step. It was a wall with a phone number painted on it.
Priya pulled two years of decline letters that week and, for the first time, sorted them by file type instead of reading them one at a time. Thin-file and gig-income applicants weren't just declined more. They were getting the exact same fallback code, over and over, while traditional-file declines almost always carried a real, specific factor.
The bottom-right corner is where a model made the call and the applicant had nowhere to take it.
She went back to the letter itself and mapped what a real explanation would actually need.
A three-digit code was one of these four parts. It was never going to carry the other three by itself.
With the redesign, every letter now names the two to four real factors the model actually weighed for that case, in plain words, plus one concrete next step. Any file the model can't explain that clearly gets pulled for a person to review before the letter ever mails.
Same decision, same day. The only thing that changed was what the letter was able to say about it.
The old design asked whether the model got the decision right. The new one also asks whether the person on the other end of it has anything they can actually do with the answer.
I built one fallback code because it was fast to ship and it covered a case that barely came up. It took a stranger's name in a news story, someone who was never even Priya's own customer, to see that "rare" and "rare for the applicants who most need an answer" are two very different claims.
GUARD, for a decision the applicant never gets to questionNot a checklist. GUARD is what forces you to name both people in the room, not just the one who built the product.
G
Groups. Who's affected.
The reviewer, who can question and override the model. The applicant, who receives the decision with no lever of their own.
Names the operator and the subject on the same page, not a faceless "user."
U
Unequal. Where the harm lands.
Thin-file and gig-income applicants get the vague fallback code far more often, and win almost none of their appeals.
The harm isn't spread evenly. It concentrates on people already hardest to underwrite well.
A
Ability to contest. The hardest step.
The applicant can't inspect the model, can't correct a wrong record, and had no clear path to appeal at all before the redesign.
Asks who never gets to push back, and which past decision took that lever away.
R
Reduce. The actual design change.
The model produces real, specific factors and a next step for every decision, up front, instead of on request.
A product decision, not a policy memo about being more transparent.
D
Detect. How you'd know.
Specific-reason coverage rate and appeal-overturn rate, both tracked by file type, not just overall.
Catches the gap reopening in one segment before a reporter does.
Four numbers, and the second and third ones are the pair that would have caught this months earlier.
Specific-reason coverage rate, six months before and after
Coverage drifted down for months as volume grew, quietly, with no alert anywhere. The redesign is the one jump on this whole line.
The recap, one line per letter: groups is the reviewer and the applicant, unequal is the fallback code landing hardest on thin-file applicants, ability to contest is the missing appeal path, reduce is real factors plus a next step for every decision, and detect is coverage and overturn rate tracked by file type.
And if you want to be sure it really works, try it somewhere elseSame five letters, a streaming service instead of a lender. This time nobody's credit is at stake, but the same missing lever shows up anyway.
Wavelane Streaming uses a model to flag and suspend accounts it scores as sharing logins outside one household. Declan Voss manages that trust and safety model.
Mapped onto GUARD: groups is the trust and safety analyst, who can review flagged accounts and reverse a suspension, and the subscriber, who gets a locked account and a canned message. Unequal is that shared family accounts on older, cheaper legacy plans get flagged far more than accounts on the newer plan built with multiple profiles in mind. Ability to contest is the real gap: the appeal form asks the subscriber to "describe your household," with no way to see what pattern actually triggered the flag. Reduce is naming the actual signal, unusual device count or a distant new login city, in the message itself, plus a one-tap "this is me, I travel for work" option that doesn't require a written appeal. Detect is watching false-suspension rate by plan type, since a gap hiding inside one plan tier is invisible in the overall average.
A different product, the same missing fourth step: a decision with no real way to push back on it.
Swap the trigger and it still runs.
Speed: an interviewer gives you thirty seconds. Say "build in real, specific reasons from day one, and route anything the model can't explain to a person before it ships," and stop there.
Cost: legal says a full explanation engine is a two-quarter build. Ship the two most common real factors first, by volume, and add the rest as you go, rather than shipping nothing until it's complete.
The model gets better, for real: if the underwriting model's overall accuracy improves, the explanation problem doesn't go away. A more accurate model that still can't say why, in plain words, is just a more confident version of the same gap.
Where people run it wrong.
They write a longer, more official-sounding decline letter, without adding a single real, checkable factor.
They treat every request the same, when what people actually need differs: some need a factor, some need a path to reapply, some need a human being.
They measure how many explanation requests got answered, instead of how many actually got resolved.
How to use it live. When you get this question, ask yourself first who in this story has a lever and who doesn't. Say both people out loud before you say anything about the letter itself.
Flashcards (tap any card to flip it)
1 · THE FRAMEWORK
What framework fits "how do you handle a right-to-explanation request"?
Tap to flip
ANSWER
GUARD: groups, unequal, ability to contest, reduce, detect. Ability to contest is the hardest step, naming who never gets to push back.
2 · THE PEOPLE
Who is this answer about?
Tap to flip
ANSWER
Sanaa Farooqi, who runs the underwriting model at Larkspur Credit and built its original reason-code system herself.
3 · THE HABIT
What did Priya stop doing because it worked?
Tap to flip
ANSWER
She stopped pulling a random weekly sample of decline letters to check the reason codes against the real factors, since they always lined up.
4 · THE FLIP
What's the two-setting switch in this story?
Tap to flip
ANSWER
The team goes from trusting the system's rare cases were still fine to realizing an entire group of applicants was quietly getting the fallback code, all the time, with no way back to spot-checking a sample.
5 · THE OLD DECISION
What decision would you take back?
Tap to flip
ANSWER
Shipping one generic fallback reason code for any messy or thin case, which made sense while that combination was rare and mostly human-reviewed anyway.
6 · THE NUMBER
Fill in the blank: thin or gig-income file applicants had their appeals overturned only ___ percent of the time.
Tap to flip
ANSWER
3 percent, against 19 percent for traditional-file applicants. The gap wasn't in who deserved credit, it was in who could actually get a straight answer.
7 · THE REPLAY
Same declined rideshare driver, redesigned letter. What changes?
Tap to flip
ANSWER
She gets the two to four real factors the model weighed, plus one concrete next step, instead of the same fallback code twice in a row with nothing to act on.
8 · CROSS PRODUCT TRANSFER
Section 4 answers this again for a different product. Which product, and what's the gap there?
Tap to flip
ANSWER
Wavelane Streaming's account-suspension model. There, subscribers on older shared-household plans get flagged more, and the appeal form gives them no way to see what pattern triggered it.
Check yourself Score: 0 / 0
Multiple choice
1. Why did thin-file applicants win almost none of their appeals?
A. Their applications were always genuinely weaker.
B. Their letters carried a generic fallback code with nothing specific to actually appeal.
C. The appeals team was told to reject their appeals automatically.
D. They rarely bothered to file an appeal at all.
Show hint
Look at the grouped bar chart comparing decline rate and overturn rate.
Show answer
B. A reason nobody can check or dispute isn't really a reason. That's why the overturn rate stayed near zero even as the decline rate climbed.
True or false
2. True or false: this answer recommends putting the model's raw score in every decline letter.
True
False
Show hint
Look at "what I would leave alone" and the last priority-list bullet.
Show answer
False. The score stays out of the letter on purpose. A number invites arguing with the model; a real factor invites fixing the actual thing.
Fill in the blank
3. Fill in the blank: any file the model can't explain clearly goes to a ___ before the letter ever ships.
Show hint
Look at the direct answer and priority-list bullet 2.
Show answer
A person. The escape hatch isn't a better fallback message. It's a human reviewer, before the letter goes out, not after a complaint.
Short answer, name the reversal
4. What old decision does this answer take back, and why did it make sense when it was made?
Show hint
Look at "the decision I would take back."
Show answer
Model answer: Shipping one generic fallback reason code for messy or thin cases. It made sense while that combination was rare enough that a person reviewed most of those files anyway.
Short answer, where it wouldn't matter
5. Name a kind of decline where this whole fix barely matters.
Show hint
Look at "what I would leave alone."
Show answer
Model answer: A clean, traditional-file decline, where the top factors are obvious and stable. The letter there was already specific and correct.
Short answer, apply it yourself
6. Pick a product you use yourself that has ever said no to you automatically. Could you actually tell why, or did you just get a generic message?
Show hint
Think of an app that rejected a payment, flagged a post, or denied an account request.
Show answer
Model answer: Most people can recall a generic message with no real factor in it, the same gap this answer is built around, just wearing a different product's name.
Before you close the answer
Why this works
Tests whether you treat "right to explanation" as a legal box to check after the fact, or a product decision you build in from day one, and whether you can name who actually has power over the decision and who doesn't.
Follow-up traps
"Isn't a generic reason code enough, since we already comply with the letter of the law?" Response: complying with the letter and giving someone something they can actually act on are different bars, and the appeal-overturn data shows the gap between them plainly.
"What if the model genuinely can't produce a specific reason for a case?" Response: then that case doesn't ship on the model's word alone, it goes to a person first, which is exactly the fallback this design builds in.
If pressed
Larkspur's real system pins the exact model version behind every letter for two years, since a factor explanation has to match the version that actually made the call, not whatever version is live when someone appeals months later.
From U2xAI Academy
From answering questions to owning outcomes.
A live workshop where you ship a working AI agent, defend a launch decision, and walk away with a portfolio recruiters can't wave off, not just more questions to study.