The pause-risk model went to full production on the 18th of April. It is now the 30th. The system has been running for twelve days, Sam’s team has made four hundred and sixty outreach calls off the list, net retention on the canary cohort is up 1.2 percentage points against the holdout, and Dina’s weekly agreement rate, the share of the model’s top-decile picks Dina would actually phone, has dropped from 71% to 67%. Nobody has paged anybody. That is the problem.
Dina sends the agreement number to Priya on a Tuesday evening at 9:14 p.m. in a single message that is longer than Dina’s messages usually are.
It’s 67 this week. Down from 71 two weeks ago. The ones I’d-not-phone are changing shape. Last week I marked eight of the top 47 as I’d want more context which is double what it was in March. I don’t know if the model is getting worse or if my team’s context is getting worse. Either way we should talk.
Priya reads it in the bath. She gets out of the bath. She messages back at 9:19: Modelling Thursday, this week, we make this the whole agenda.
Dina: good.
Priya puts her phone face-down and sits on the edge of the bath for a minute. She is not exactly worried. She is also not exactly not-worried. She is in the specific middle-state she has learned, since Ruth, to take seriously.
The question nobody has asked
Modelling-Thursday, 2 p.m., small meeting room. Priya, Kai, Dina, Anika on the laptop, Charlotte, Sam for the first hour. The modelling-Thursday is nearly three months old now and has accumulated a handful of artefacts, the markdown gist, a drift-detection sketch on the whiteboard that Kai has been promising to implement, Dina’s spreadsheet which has its own URL that everyone in the room knows by heart.
Priya opens. “Dina’s agreement is down. We expected this. We designed for it. We haven’t actually done any of what we designed. I want to fix that this afternoon.”
Charlotte: “Name the thing we haven’t done.”
“We have a weekly agreement rate and no automatic way of noticing when it drops. Dina notices, because Dina looks at the spreadsheet. If Dina had been on leave last week, nobody would have noticed. That puts the whole weight on one person.”
Sam: “What’s the threshold?”
“We don’t have one. That’s also what we haven’t done.”
Kai: “Let’s pick one.”
They spend twenty minutes on the threshold. Dina wants it to be 65%. Kai wants it to be 60% because the model is still new and some slack is fair. Charlotte suggests two thresholds, a talk about it line and a do something about it line. They end with:
70% or above: healthy. No action. Weekly glance.
65-69%: drift. Retrain considered, investigation of which subscribers are moving.
Below 65%: stop the outreach. Go back to shadow. Root-cause before we restart.
Priya, writing: “And who is the person who reads the number every Tuesday?”
Dina: “Me.”
“And who is the person who reads the number if you’re on leave, sick, or it’s a public holiday?”
Silence.
Kai: “I’d volunteer but I’m a contractor.”
Anika: “I can do it when Dina can’t. Not as a permanent second, as a cover.”
Priya writes primary: Dina. Backup: Anika. Calendar cover for every week, no exceptions. She also writes the backup reads the number every fourth week whether Dina has or not, so the backup doesn’t forget how.
The pager that isn’t
Kai has been thinking about the drift-detection thing the wrong way, and he says so.
“I’ve been thinking about this as a pager problem. It’s not. Production incidents are loud. This is the opposite. The model doesn’t fall over. It just gets quietly worse. The signal is absence, not presence.”
Charlotte: “Which is why you can’t wait for somebody to notice. You have to schedule the noticing.”
Priya writes on the whiteboard:
The pager that isn’t: a weekly automated email to Dina, Anika, and the gist, at 7am every Tuesday, with the agreement rate, the previous four weeks, the top-decile list, and an automatic flag if the number has crossed either threshold. The email is the pager. Showing up to read it is the on-call.
Kai: “I can build that by Monday.”
Priya, writing: “You have until Monday.”
When to retrain
The next question is ugly because it has a cost. Retraining the model is not free. Not in compute, not in labelling effort. Dina has to add about two hours a month to the spreadsheet to keep the labels current, not in the risk of the retrained model behaving differently in ways they haven’t predicted.
Kai is for more frequent retraining. Dina is for less. Priya sits in the middle because she is tired.
Anika, on the laptop: “Can we tie it to the threshold instead of the calendar? If we’re healthy, we don’t retrain. If we’re drifting, we retrain and see if it helps.”
Priya: “That’s what I’d want. But we need a floor. Six months is too long. We’d drift silently.”
Dina: “Quarterly, unconditional, calendar-driven. Plus ad-hoc if we cross the drift threshold. That’s four retrains a year if we’re healthy, more if we’re not.”
Kai: “Agreed. And every retrain gets its own evaluation against the held-out period before it replaces the running model. Not a silent swap.”
Priya writes:
Retrain triggers: quarterly (unconditional); or agreement below 70% for two consecutive weeks; or any week below 65%.
Every retrained model: evaluated on the last four weeks of Dina’s labels before going live. If it does not beat the current model on agreement, it does not ship. Current model stays.
Charlotte nods slowly. “And the current model is documented as the current model, with a version number and a git tag, so you can roll back to it if the new one does something unexpected in production.”
Kai: “I can do that.”
Priya, still writing: “You have until Monday.”
The question Priya has been avoiding
It is Charlotte who asks it, because Charlotte will always be the person who asks it.
“When do we turn this off?”
Silence. A long one.
Kai: “Why would we turn it off?”
Charlotte: “Because any system that cannot be turned off is not a system. You need to know the condition under which you would kill this. Not because you’re going to. Because you might.”
Priya: “I haven’t thought about this.”
“Think about it now.”
They think about it for a quarter of an hour. The conversation goes in loops. Kai, halfway through, says okay, if the agreement drops below forty and Dina cuts him off, kindly, because forty is the number you choose when you don’t want to ever have to turn it off, and the whole point of the exercise is to pick numbers you would actually act on. They argue about forty for five minutes. Kai moves to the floor. Dina accepts it with conditions, below forty has to mean below forty and stay below forty across two consecutive retrains, not a single bad week, and Anika, on the laptop, nods from Melbourne.
That is one stopping condition in their pocket. Charlotte asks about the second one without naming it. It is Marcus, not in the room, but whose green pen is still on everything they commit to, whom Priya names. If the holdout stops showing lift, the commercial case evaporates, and a model that is not earning its keep compared to Dina-plus-script is a model that should not be running. Nobody argues. Anika writes it in the gist.
The third condition is harder and takes longer. Dina is the one who names it, because Dina is the one who has watched Greenbox change three times and knows what a pricing change does to the shape of a subscriber’s year. If Greenbox itself shifts enough, different tiers, different cadence, different pricing mechanic, the model’s assumptions break. Retraining against a changed distribution is a new project, not a continuation of this one. The third is not we missed, it is the world moved. And the protocol for the world moved is different from the protocol for we missed.
Priya writes the three conditions on the board in the order they arrived, not in priority order. Underneath them, small, she writes: if any hit, we stop. We revert to manual. We decide whether to rebuild. Not a failure, a planned end.
Charlotte looks at Dina. “Those are for you more than anyone. You’re the one who’ll know first.”
Dina, looking back at her: “I want them in the runbook’s first paragraph.”
Priya puts them in the first paragraph that evening.
The runbook
It is three pages. Kai drafts it. Priya edits. Dina reads it over the weekend and sends back six corrections, all of which are right. The final runbook has the following sections.
What this thing is. Two paragraphs. Plain English. No acronyms. Written so a new starter can read it in three minutes and understand the shape.
Who owns it, and who else can look after it if the owner is away. Primary: Dina. Backup: Anika. Technical custody: Kai, until he rolls off; then Priya names a successor.
What we watch, and when. The weekly email, what the number means, what the thresholds mean. What to do if you see a bad number. Who to tell.
What we retrain, and when. Triggers. Evaluation. The git tag convention for versions.
What we roll back to, and how. The three-minute flag flip from March. The email template for Sam’s team. The conditions that would trigger the flip.
When we turn this off. The three retirement conditions, named, written, initialled by Priya, Dina, Charlotte, and Sam.
What happens when any of us leave. A paragraph about what institutional knowledge is in whose head. Dina has agreed to host one knowledge-transfer session per quarter with whoever the backup is. The sessions are recorded. Nobody pretends this is a complete substitute for Dina’s nineteen years, but naming the gap is better than not naming it.
Priya reads the runbook on Sunday evening on her couch with a glass of red wine and her cat on her feet. She realises, halfway through, that she is reading a document about a practice, not a document about a model. The model lives on about a third of one page. The rest is about the humans who surround it.
She does not write anything in the gist about this. She is tired and the observation feels too tidy to trust before morning. She closes the laptop and goes to bed.
What modelling-Thursday has become
Nearly three months after Priya sent the first invite, the modelling-Thursday meeting has eight regulars. Priya, Kai, Anika, Dina, whom nobody is ever going to try to call an engineer because Dina would object, but whose contribution to the practice has been most of it. Charlotte when she is in Perth, two engineers from Brisbane who started coming in April, and a data analyst Marcus hired in March whose job was meant to be commercial reporting and who has slowly found herself doing most of the feature pipeline maintenance.
Nobody runs the meeting. Priya sends the reminder. Dina brings the spreadsheet. Kai brings the production numbers. The analyst brings new feature ideas. About half the time Kai or Priya walks her through why one of them would have leaked the target, patiently, because they only learned to spot the same trap six weeks ago themselves, and by late April she has stopped bringing the leaky ones at all. The other half, she is right, and the feature goes in.
Jas, in late April, wrote one line in her notebook about modelling-Thursday. The line was in the same prose paragraph as the half-finished note about Sam’s ops review. It said that modelling-Thursday was doing what the original Thursday did, for a different domain, in less time. Jas did not photograph the page. She did not pin it. She wrote the observation down the way she would write down the weather. The next one, she suspected, would be faster still, but she did not write that part, because she was still watching to see whether she was right.
Outside the modelling-Thursday room
Priya printed the runbook on the Monday morning after it was finalised. She pinned it to the wall outside the modelling-Thursday room, underneath Jas’s A Thursday is easier to start than to design list, which had made it onto the wall in March and had not been taken down.
The runbook had, on its last page, a paragraph Priya had added without discussing it. It was not a charter. It was not even a commitment. It was three sentences. She had not sat down to write them. They had appeared on the Sunday evening, after the cat had fallen asleep on her foot and she’d stopped reaching for the keyboard for fifteen minutes.
Read the number every Tuesday. If it doesn’t feel right, trust that feeling before the number. When you don’t know what to do, talk to Dina.
She did not underline the paragraph. She did not initial it. She printed it in the same font as the rest of the runbook and let it sit there with everything else.
Dina read the runbook on Tuesday morning at her kitchen table before anyone phoned anyone. She read the last paragraph twice. She did not say anything to Priya about it. She took the rosemary cutting, still alive, still in its pot on Priya’s desk from March, and moved it to the windowsill outside the modelling-Thursday room, next to the pinned runbook and the pinned list. Priya noticed on Wednesday and did not move it back.
Deliberate seeding. Three new communities started on purpose. Two of them took. One died in exactly the way Thursday didn’t.