ConceptAdvancedShipping & Model Lifecycle / Incident management for AI products / #9

What logging do you need to make AI incidents investigable at all?

The direct answer
Log four things for every call, tied together by one request ID: exactly what went in, including the retrieved context, exactly which model version and settings ran, exactly what came out with a confidence trace, and any human override that followed. At Bexley Mutual's volume that runs roughly 85 to 190 megabytes a day, 210 to 480 gigabytes over the seven years underwriting files must be kept, and under 40 dollars a year to store even at the high end. The one thing left out on purpose is raw free text medical and identity detail. That gets replaced with a pointer to the source system, and the real cost of that choice is a day or two of delay pulling it back during an investigation, not money.
Do this, in order
  1. Log the four linked artifacts on every call, tied by one request ID: input plus retrieved context, model version plus settings, output plus confidence, and any human override.Why: without all four tied together, you can prove the model said something, but never prove why it said it.
  2. Size the storage bill as a range, not one confident number.Why: the gap between 85 and 190 megabytes a day comes from a real design choice, how much confidence detail you keep per token, and hiding that behind one number hides the choice too.
  3. Log full token-level confidence detail only on the calls that become the record of decision, not on every draft an underwriter cycles through first.Why: doing it on every draft roughly triples the compute and latency cost for detail nobody will ever need to reconstruct.
  4. Keep raw free-text medical and identity detail out of the log itself; store a pointer to the source system instead.Why: leaving it in the log widens who can see sensitive health data far past the small group already allowed to see it.
  5. Check the storage estimate against something real before anyone uses cost as an excuse.Why: at Bexley's volume the whole seven-year archive costs under 40 dollars a year, so cost was never a real reason to log less.
  6. Set the bar for "investigable" as a checked pass rate, not a promise that every incident is fully reconstructable.Why: a flat promise on a system this size either breaks quietly or gets gamed by narrowing what counts as an incident worth checking.

How to answer this, stage by stage

Nobody is grading whether you can name four field types. They are grading whether you can size what logging them actually costs, and say plainly what you would leave out. Six moves get you there.

1
Ground it in one real system, one real call
Say it like this
"Let's make this concrete. Bexley Mutual runs about 14,000 new policy applications a day through Undertow, its underwriting model. It scores every one of them, and for the roughly 4,900 that get declined or rated up, it drafts the letter explaining why. Petrina Vasek owns that pipeline. When a state examiner opens a file on one specific decline, she's the one who has to answer for it."
Why this works
Puts a real daily volume on the table before any field gets named, so the arithmetic later has something to attach to.
2
Define "investigable" before naming a single field
Say it like this
"Here's how I'd frame it first. Investigable doesn't mean we kept some logs somewhere. It means that for one specific decision, months later, someone outside the team can reconstruct exactly what the model saw, which exact version ran, what it said, and what a person did about it after. If any one of those four is missing, the chain breaks and it isn't investigable, it's just a record that something happened."
Why this works
Sets the bar before the list, so the fields that follow read as a definition being met, not a checklist pulled from nowhere.
3
Name the four artifact classes, tied by one ID
Say it like this
"Every Undertow call logs four things under one request ID. What went in: the applicant's structured risk features, plus the exact retrieved claims and policy context, by ID. What ran: the exact model checkpoint and its settings, not just 'the current version', because 'current' changes every deploy. What came out: the score or the narrative, plus a confidence trace on the generated text. What happened after: whether an underwriter accepted it, edited it, or overrode it, and what they changed."
Why this works
This is the B step. The equation gets said out loud, as four linked parts, before a single kilobyte gets counted.
4
Own the numbers and show the arithmetic
Say it like this
"Do the math out loud. 14,000 scoring events a day at about 2 kilobytes each is about 27 megabytes. About 4,900 of those trigger a generated letter. Each one runs about 12 kilobytes if we keep a lean confidence trace, or about 34 kilobytes if we keep the full per-token distribution, so that's 57 to 163 megabytes more. Call the whole thing 85 to 190 megabytes a day. Over the seven years Bexley's files have to be kept, that's roughly 210 to 480 gigabytes sitting in storage at any one time."
Why this works
This is the O and U steps together, real assumptions with a stated source, given as a range instead of one number pretending to be certain.
5
Sanity check the cost, then draw the line on purpose
Say it like this
"Sanity check it. Even the high end, 480 gigabytes on mostly cold storage, comes out under 40 dollars a year. So cost was never the reason to log less. The real line I'd draw isn't about money. It's that the retrieved context for a declined application sometimes includes a medical exam note or a motor vehicle record excerpt. I wouldn't put that raw text in the log. I'd store a pointer to the document system instead, which already controls who can see it."
Why this works
This is the N step. It compares the estimate to something real and uses the answer to justify a design choice, not just to look thorough.
6
Name the cost of the gap, then close on the checked number
Say it like this
"That pointer costs something real. Pulling the actual document back during an investigation takes a break-glass request, usually a day or two of privacy sign-off, before anyone sees the exact sentence that might explain a bad letter. I'd take that delay over widening who can see a policyholder's health record by default. And I wouldn't promise every incident is fully reconstructable. I'd promise it holds up on a monthly check, something like 47 of 50 closed incidents fully traceable, and treat anything below that as its own incident."
Why this works
This is the D step and the close together. It names which lever actually matters and ends on a number someone could go audit, not a promise to "log responsibly."
If you remember one thing Storage is not the constraint. Even at the high end, seven years of full logging costs under 40 dollars a year. The real constraints are which calls get the expensive confidence detail, and which fields never belong in a log at all.

Let's learn

Every day, Bexley Mutual's underwriting team used to write about 40 adverse-action letters by hand, one at a time, each one explaining in a line or two why an application got declined or rated up. Slow work, and every letter came out a little different depending on who wrote it. But there was always a person in the building who could tell you exactly why they wrote what they wrote.

Then Bexley built Undertow. It scores every one of the roughly 14,000 applications that arrive each day, and for the roughly 4,900 that get declined or rated up, it drafts the explanation letter itself, pulling from the applicant's file and the company's own underwriting rules. Underwriters still sign off, but most letters go out close to what Undertow wrote first.

Knowledge spark: what makes something "investigable"? Not that a record exists. That a specific stranger, checking the file months later, can rebuild exactly what happened without asking the original team to remember it. A letter on file proves a letter was sent. It doesn't prove why.

None of that speed is the problem. Undertow is faster than any team of people, and on the whole its scores hold up fine. The problem shows up the day someone asks why. A state examiner opens a file on one specific decline. A policyholder's lawyer asks Bexley to explain, in writing, exactly why their client's premium tripled. And a finished letter is not an answer to that question. It is the output of an answer nobody kept the working for.

A letter that explains a decision is not proof of what actually happened. It is proof of what got sent.
The decision that mattered Log four artifacts on every call, tied by one request ID: what went in with its retrieved context, which exact model version ran, what came out with a confidence trace, and any human override after. Skip any one of the four and the chain can't be rebuilt.

At its worst, Bexley can't answer the question at all. The letter is on file. The score is on file. But nobody kept the exact context Undertow scored against, which version ran that day, or whether an underwriter changed a word before it went out. The company ends up defending a decision it genuinely cannot reconstruct, which in front of a state examiner is close to the worst place a business can stand.

The choice I would take back. When Undertow's letter-writing feature first shipped, it was treated as a drafting aid for a human who would rewrite most of it, so its calls got logged the same lean way as any internal draft tool, a timestamp and a pass or fail flag, nothing about what it actually saw. That made sense at first, because underwriters rewrote nearly every letter by hand. It stopped making sense once the acceptance rate climbed past 80 percent and most letters started going out close to verbatim.

What I would leave alone. The roughly 65 percent of applications that get approved with no adverse letter at all don't need the expensive per-token confidence trace. A structured scoring event is enough there, because nothing about a routine approval is under the kind of scrutiny a decline is.

The lesson. Logs built so a team can improve a model are a different thing from logs built so a stranger outside the team can rebuild one decision. Bexley had built the first kind. The question it got asked was the second kind.

Now here is the same thing as a story

The short version is above. Read on if you want to feel what it's like to search a log for something that was never kept.

Petrina Vasek has run Bexley Mutual's underwriting platform for three years, and spent four years as a line underwriter before that. Ask her what belongs in a defensible file and she can tell you before you finish the question, because she used to build those files herself, one document at a time.

Undertow's first year was a good one. Scoring that used to take a team most of a morning finished before the coffee did. Letters went out clean and on time. Petrina's team watched the acceptance rate climb, quarter over quarter, until underwriters were editing maybe one letter in five instead of nearly all of them.

Nobody decided to stop paying attention to the logging behind it. It just thinned, in three ordinary steps. First, the team stopped spot-checking whether a sampled letter's reasoning matched its retrieved context, because the letters kept reading fine. Then, when the infrastructure team went looking for somewhere to trim storage costs during a budget review, Undertow's narrative logs looked like the obvious, safe place to cut, since nobody had touched them in months. Finally, a platform migration quietly dropped the retrieved-context links entirely, and nobody flagged it, because nothing downstream had broken yet.

Then a new compliance analyst joined the team. Reviewing a routine monthly sample of ten closed declines, she pulled one at random and asked Petrina a plain question: which exact version of Undertow wrote this letter, and what did it actually see when it wrote it.

Petrina realized, mid-sentence, that she didn't know, and that the system had no honest way to tell her.

What followed took three days. Deployment records placed roughly which week the model version changed, but not which exact build handled that one call. The applicant's file still existed, but the specific claims-history snapshot Undertow had actually retrieved at scoring time had since been overwritten by newer data in the same database row, because nothing had captured it as its own artifact. The team pieced together a plausible account from adjacent records and old Slack threads. Plausible was the best word anyone could honestly use for it.

The three lost days weren't the real cost. The real cost was what Petrina had to write in the response to the examiner: that Bexley could not fully substantiate the letter's reasoning against what the model had actually seen. An ordinary spot-check turned into a formal finding, the kind that shows up in next year's exam with extra scrutiny attached.

What stayed with Petrina wasn't the three days. It was that investigable turned out to have no partial credit. Either the chain reconstructs or it doesn't, and by the time someone asks, it's too late to go back and log the thing you should have kept.

The old decision, remembered as a meeting: eighteen months earlier, when the letter-writing feature was still a beta nobody fully trusted, someone on the platform team asked whether it was worth capturing the full retrieved context on every call. The answer at the time was no, it would double the storage footprint of a feature that was still mostly getting rewritten by hand anyway. Nobody revisited that call as the feature matured into the thing that actually produced most of Bexley's adverse-action letters.

The redesigned pipeline logs all four artifacts, tied by one request ID, on every scored application. Run the same compliance sample through that design and the answer takes Petrina about twenty minutes: pull the request ID, and the exact input, model version, output, confidence trace, and any override are all sitting under it, waiting.

The thing Petrina would tell her past self, back in that beta-stage meeting: a feature that's mostly getting rewritten by hand today is exactly the feature that's about to stop being rewritten by hand, and the logging decision you make while nobody's watching is the one an examiner reads eighteen months later.

BOUND, spelled out: the four artifacts and what logging them actually costs

This is a sizing question, how much evidence has to be kept, and at what cost, before an incident becomes investigable, not a person's habit switching between two settings, so BOUND fits and FLIPS doesn't.

B, break it down. Total daily log volume equals scoring events times their size, plus narrative events times their size. Each event carries four linked parts: input plus retrieved context, model version plus settings, output plus confidence trace, and any human override, all under one request ID.
O, own the numbers. Bexley scores about 14,000 applications a day, at roughly 2 kilobytes logged per scoring event, about 27 megabytes a day. About 4,900 of those trigger a generated letter. A lean confidence trace, the model's top pick per output token, runs about 12 kilobytes per letter. A full trace, the top five candidates per token, runs about 34 kilobytes, because most of the size in a narrative event is the confidence data, not the text itself.
U, use a range. Lean logging: 27 plus about 57 megabytes, roughly 85 megabytes a day, about 30 gigabytes a year. Full logging: 27 plus about 163 megabytes, roughly 190 megabytes a day, about 68 gigabytes a year. Over the seven years Bexley's underwriting files must be kept by regulation, that's a standing total of roughly 210 to 480 gigabytes.
N, nail the sanity check. At a blended storage rate of about 0.6 cents per gigabyte per month, weighted toward cold archival storage after the first ninety days, the full seven-year archive costs 15 to 35 dollars a year, under 40 dollars even at the high end. That's less than one seat of most compliance software for a single month. Storage was never the real constraint.
D, direction. The single assumption worth arguing over is the confidence-trace granularity, lean versus full, because it's the one lever Bexley actually controls; it swings the narrative side of the estimate by about 2.8 times. Retention length is set by regulation, not judgment, so debating it wastes a meeting. Debating logprob granularity doesn't.

One thing the arithmetic alone doesn't show: the 2.8 times gap only matters on calls that become the record of decision. An underwriter typically cycles through two or three drafts before accepting a letter, and logging full confidence detail on every one of those drafts, not just the final one, would nearly triple the compute and latency cost of the feature for detail nobody will ever need to reconstruct. So the full trace runs only on the call whose output actually got sent. Drafts still get a lean fingerprint, timestamp, prompt version, and output hash, cheap enough to prove how many drafts existed without paying for the full detail on each.

What builds up to 85 to 190 megabytes a day
Lean confidence trace
27 MB scoring
57 MB narrative
~85 MB / day
Full confidence trace
27 MB scoring
163 MB narrative
~190 MB / day
The scoring-event volume barely moves between the two builds. The whole range comes from one design choice: how much of the model's own confidence data to keep per generated letter.
What actually gets logged, field by field
Structured risk featuresFull, always
Retrieved context (by ID)Full, always
Model version and settingsFull, always
Confidence trace, final letterFull trace
Confidence trace, draft lettersFingerprint only
Underwriter overridesFull, always
Raw free-text medical / MVR detailPointer only, no raw text
Every gap on this chart is a decision, not an oversight. The one deliberate gap that stays a gap on purpose is the last row: raw free-text medical and identity detail never enters the log, only a pointer to the document it came from.

And if you want to be sure it really works, try it somewhere else

Windlow Veterinary Group runs an AI tool called Tarragon that reads X-rays taken at its clinics and flags likely fractures before a vet reviews the case. The group is scaling it across forty locations.

B, break it down. Same four-part shape: the input image plus the animal's structured history, the exact model version that scored the image, the flagged regions plus a confidence score per region, and whatever the reviewing vet confirmed, dismissed, or added.
O, own the numbers. Windlow's forty clinics run about 900 X-ray scans a day. A compressed copy of the image plus structured metadata runs about 400 kilobytes logged per scan, about 360 megabytes a day. About 18 percent of scans get at least one flagged region needing a vet's review, roughly 160 a day; logging the flagged-region overlay plus its confidence map adds about 80 kilobytes per flagged scan, another 13 megabytes a day.
U, use a range. Total volume runs a tight range, about 370 to 390 megabytes a day, because unlike Bexley's text-generation case, there's no confidence-trace granularity choice driving a wide spread; an image classifier's confidence output is a small, fixed-size number per region regardless of how detailed the review gets.
N, nail the sanity check. At about 140 gigabytes a year and a shorter, three-year veterinary record retention window typical for the group's insurance underwriter, that's roughly 420 gigabytes standing at steady state, costing under 30 dollars a year on the same blended storage rate. Same conclusion as Bexley: storage was never the constraint.
D, direction. Here the lever that matters most isn't a logging design choice, it's the retention window itself, since Windlow's insurer, not Windlow, sets how long a flagged case has to stay provable. That's worth confirming in writing before building anything, because guessing wrong on a fixed regulatory number is a rebuild, not a tuning knob.

Same shape, different lever At Bexley, the assumption worth arguing over is a design choice: how much confidence detail to keep. At Windlow, there's no equivalent design choice to argue, the number that matters most is fixed externally by an insurer's contract. Knowing which kind of assumption you're looking at, one you control versus one you don't, is the actual skill BOUND is testing.

Swap the trigger and it still runs.
Speed: an interviewer caps the answer at ninety seconds. Skip straight to the four artifacts under one request ID, then the range, then the one deliberate gap.
Cost: the platform team says storage budget is tight this quarter. Don't drop the retrieved-context logging to save money; drop the full confidence trace on draft calls instead, since that's the expensive part that buys the least.
The model got better: Undertow's decline rate drops and letters need almost no editing. That doesn't make logging less necessary, it makes each individual letter more likely to be trusted at face value, which is exactly when an unreconstructable one becomes the most damaging.

Where people run it wrong.
They log the final output and call it done, without the retrieved context that would show whether a wrong answer came from bad retrieval or from the model inventing something on its own.
They treat "storage is cheap" as a reason to log raw free text everywhere, when the real cost of over-logging PII is who can see it, not what it costs to store.
They promise every incident will be reconstructable, then quietly narrow what counts as an incident once that promise turns out to be expensive to keep.

How to use it live. Say the four artifacts and the tied ID before any number: "investigable means I can pull one request ID and see what it saw, what ran, what it said, and what a person did about it, all four, or it isn't really investigable." That buys the room to talk about the one deliberate gap, instead of reciting a generic logging checklist.

Flashcards (click a card to flip it)

1 · THE FRAMEWORK
What framework fits "what logging makes an AI incident investigable," and why not FLIPS?
Tap to flip
ANSWER
BOUND. This is a sizing question, how much to log and at what cost, not a story about a person's habit switching between two settings.
2 · THE PERSON
Who is this answer about?
Tap to flip
ANSWER
Petrina Vasek, a former line underwriter turned platform lead at Bexley Mutual, who had to tell a compliance analyst she couldn't reconstruct why Undertow declined one specific application.
3 · THE FOUR ARTIFACTS
What four things does every Undertow call need logged, tied by one ID?
Tap to flip
ANSWER
Input plus retrieved context, model version plus settings, output plus confidence trace, and any human override, all under one request ID.
4 · THE OLD DECISION
What decision would Petrina take back, and why did it make sense at the time?
Tap to flip
ANSWER
Logging the letter-writing feature the same lean way as an internal draft tool, with no retrieved context captured. It made sense while nearly every letter got rewritten by hand, and stopped making sense once the acceptance rate climbed past 80 percent.
5 · THE NUMBER
Fill in the blank: full logging runs about ___ megabytes a day, costing under ___ dollars a year even at the high end over seven years.
Tap to flip
ANSWER
About 190 megabytes a day. Under 40 dollars a year. Storage was never the real cost.
6 · THE DELIBERATE GAP
What does this answer say never belongs in the log at all?
Tap to flip
ANSWER
Raw free-text medical exam notes and motor vehicle record excerpts. A pointer to the source document replaces them, and pulling the real text back during an investigation costs a day or two of break-glass sign-off.
7 · THE REPLAY
Same compliance sample, second design. What changes?
Tap to flip
ANSWER
With all four artifacts logged and tied to one request ID, the same question that took Petrina three days takes about twenty minutes: pull the ID, and the input, version, output, and override are all sitting under it.
8 · CROSS-PRODUCT TRANSFER
Section 4 runs this same sizing question on a different product. Which product, and what's the one lever that matters most there instead?
Tap to flip
ANSWER
Windlow Veterinary Group's fracture-flagging tool, Tarragon. There, the lever that matters most isn't a logging design choice, it's the retention window an outside insurer sets by contract.

Check yourself Score: 0 / 0

Multiple choice
1. Why does Undertow need to log the retrieved context, not just the input and the output?
  • A. To make the log easier to search later.
  • B. To tell whether a wrong reason in a letter came from bad retrieval or from the model inventing something the retrieved context never actually said.
  • C. Because storage is cheap, so more fields logged is always better.
  • D. The retrieved context is required to compute the score, so it has to be logged too.
Show hint
Think about the AI-specific failure mode named in the framework recap.
Show answer
B. Without the retrieved context sitting next to the generated output, an investigator can never tell a retrieval miss apart from the model simply making something up on top of correct context. Both look identical from the letter alone.
Fill in the blank
2. Lean confidence-trace logging runs about ___ megabytes a day. Full confidence-trace logging runs about ___ megabytes a day, roughly 2.8 times more on the narrative side.
Show hint
Check the U step in the framework recap.
Show answer
85 megabytes; 190 megabytes. The scoring-event volume is nearly identical in both. The whole gap comes from how much of the model's own confidence data gets kept per generated letter.
True or false
3. True or false: since the full seven-year archive costs under 40 dollars a year, Bexley should log every field of every call in full, including raw free-text medical notes.
  • True
  • False
Show hint
Ask what the real cost of logging raw medical text actually is, if it isn't money.
Show answer
False. Cost was never the constraint on the medical and identity fields. The constraint is who gets to see them. Putting raw health detail in a log widens access to it far past the small group already allowed to see it in the source system, no matter how cheap the storage is.
Short answer
4. Why did logging the letter-writing feature the same lean way as an internal draft tool stop making sense once the acceptance rate climbed past 80 percent?
Show hint
Think about what "lean" logging assumed a human would always do next.
Show answer
Model answer: Lean logging made sense while an underwriter rewrote nearly every letter by hand, because the human's own judgment was the real record. Once most letters went out close to what Undertow wrote first, the model's own reasoning became the actual decision, and there was nothing logged that could reconstruct it.
Short answer, apply it yourself
5. Think of an AI-touched tool at your own job. If someone opened a formal investigation into one specific thing it produced six months ago, what's the one artifact you're pretty sure wouldn't still exist?
Show hint
Look for whatever gets treated as too routine or too expensive to keep past a few weeks.
Show answer
Model answer: A customer support tool that drafts reply suggestions for agents. The draft suggestions themselves usually aren't kept once an agent sends their own edited version, so six months later there's no way to tell whether the agent wrote the risky line themselves or the AI suggested it first and the agent just approved it.
Short answer, the number question
6. If Bexley's daily application volume tripled to 42,000 but the 35 percent adverse-action rate stayed the same, would the choice between lean and full confidence-trace logging still be the single biggest lever on the cost estimate? Show the reasoning.
Show hint
Check whether tripling volume changes the ratio between the two scenarios, or just their size.
Show answer
Yes. Tripling volume scales both the lean and full scenarios by the same factor, so the roughly 2.8 times gap between them stays exactly the same. Volume changes the absolute dollar amount, not which assumption is worth arguing about. Since the total is already under 40 dollars a year, tripling it still lands well under 150 dollars, still not a real constraint.
Last thing, before you close this
Why this works
Tests whether you can size a real cost honestly instead of hand-waving "we'd log everything," and whether you'll choose privacy over convenience when the two collide, even after proving the convenient option is basically free. Most candidates name fields and stop; the strong answer prices them and still draws a line.
Follow-up traps
"Why not just log everything, storage is basically free?" Response: the free part is storage. The expensive part is access. Raw medical or identity text sitting in a general-purpose log widens who can see it far past the narrow group already allowed to today, and that risk doesn't get cheaper just because the disk space does.

"What if the break-glass process is too slow for a real emergency?" Response: the 24 to 48 hour window applies to investigations after the fact, not to the original decision. The underwriter who made the call already had full, unredacted access to the source document at the moment it mattered.
If pressed
The request ID isn't just a lookup key. It's computed as a hash tied to the exact bytes of the letter that actually went out, so the log doubles as a tamper check: if anyone ever edited a sent letter after the fact without updating the record, the hash on file won't match what's on file with the applicant, and that mismatch is its own kind of incident.
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.

  • A live AI agent you actually shipped
  • A launch decision you can defend under pressure
  • An interview-ready portfolio, not more flashcards
Know more