ConceptIntermediateAI Opportunity & Model Strategy / When NOT to use AI / #11
Describe the maintenance burden of an AI feature that a simple heuristic would not carry.
SPARKa maintenance ledger nobody wrote until the bill came due, one missed load at a time
Loworth Labs builds Quiet Inbox, an AI tool that files, sorts, and prioritizes a full inbox automatically. Xylia Ondrusek is the AI PM who owns its filtering roadmap. Emmerich Vallance, Loworth's CEO, wants every rule left in the product swapped for a model, to match how competitors market their inbox tools. Delvina Buranelli, an independent freight broker, depends on one particular filter to catch load offers from brokers she's never heard of before, the kind a plain rule can't recognize by sender alone.
The direct answer
An AI model carries four kinds of upkeep a fixed rule never asks for: watching its accuracy for quiet drift as real patterns shift, refreshing its eval set on a schedule, tracking model and provider version changes, and digging into confusing edge case misfires a rule could never produce in the first place. A rule's behavior is fully knowable the day you ship it and stays that way. A model's isn't, and doesn't. Write that gap down next to the build estimate, because it's a recurring cost, not a one time build.
Do this, in order
Write the model's ongoing cost next to the build estimate, before picking it over a rule.Why: this is the whole decision. Skip it and you're comparing a real number, the build weeks, against a number nobody ever wrote down.
Name the four ongoing jobs a model creates that a rule never does: drift watch, eval refresh, version tracking, edge case triage.Why: this is the actual bill, not a vague word like "maintenance," and each row needs an owner and a schedule.
Put a name and a recurring hour budget on that list, not just a line in a doc.Why: an unowned list gets skipped the first time a launch date is tight, which is exactly how it goes unbudgeted.
Keep the rule wherever the task doesn't actually need a model's flexibility.Why: a rule costs almost nothing to maintain past an occasional list update. Don't pay the model's bill where the rule already does the job.
Recheck the list against reality every quarter, not just at launch.Why: drift and version deprecations don't send an invitation. The burden is only real if someone keeps looking for it.
Treat a climbing maintenance bill as a signal to reconsider, not a cost to quietly absorb.Why: if upkeep keeps growing while the model's edge over the rule keeps shrinking, that's information worth acting on, not noise to push through.
How to answer this, stage by stage
Nobody is scoring whether you can recite four bullet points about drift and eval sets. They're scoring whether you'd have caught this before the ticket ever said done.
Stage 1
Scope it to one real filter, not a debate about AI in general
Say it like this
"Let's ground this. Say a team's building an email tool, and they're deciding whether one filter, catching load tender emails from brokers a customer's never heard of before, should be a rule or a model."
Why this works
Keeps the answer from drifting into abstract AI philosophy, which nobody can defend under follow up questions.
Stage 2
Say your structure out loud before any content
Say it like this
"I'll run this as SPARK. Situation, how the rule handles this today. Payoff, the habit I want this choice to build. Anchor, the one concrete decision. Risk, what breaks the first time we're wrong about the cost. Keep out, what this isn't."
Why this works
Two seconds of structure signals a repeatable method, not a vibe you're improvising on the spot.
Stage 3
Say plainly what the rule can and can't do
Say it like this
"The rule matches known sender domains plus a keyword. It's fine for brokers she already deals with, catches over 90 percent of those. It misses almost everyone new, because a brand new broker's domain was never on the list to begin with."
Why this works
Shows the model is earned by a real, specific gap, not assumed by default because it's the newer option.
Stage 4
State the anchor: weigh the real ongoing cost, not just the build cost
Say it like this
"Here's the thing I'd actually do. Before we swap in a model, write its upkeep down next to its build estimate. Watch it for drift, refresh the eval set every quarter, track model version changes, and give weird misfires an owner. If that list isn't staffed, we're not choosing a model, we're choosing a surprise."
Why this works
This is the direct answer, said out loud, the one thing an interviewer needs to hear to trust you'd catch this early.
Stage 5
Name the failure mode that makes this AI specific, not generic software upkeep
Say it like this
"A rule's logic is a list you can read top to bottom. A model's is a pattern it learned, so when it does something strange, like flagging a warehouse lease notice as a load tender, there's no line of code to point at. Someone has to go dig, and that digging is a real, recurring job with no natural end."
Why this works
This is the load bearing judgment. It wouldn't make sense to ask this about a feature with no model in it at all.
Stage 6
Say what happens if this cost gets underestimated
Say it like this
"If we skip writing that list down, we ship this like a three week build. A year later, someone's spending a real chunk of every month chasing drift and a forced model migration, and none of that time was ever on anybody's roadmap."
Why this works
Shows you're thinking past launch day, which is exactly where most candidates stop talking.
Stage 7
Say what you'd leave alone, then close on one line
Say it like this
"None of this means never use a model. Our newsletter and spam filter stays a plain rule, it doesn't drift, it just needs a new entry now and then. The point is knowing the real ongoing cost before you pick the model, and only paying it where the rule genuinely can't do the job."
Why this works
Closes with judgment instead of blanket caution, and restates the direct answer in one breath.
Let's learn
Quiet Inbox is a tool that reads a full inbox and automatically files, prioritizes, and archives it, so a person isn't sorting hundreds of emails by hand every morning. One of its filters, built for freight brokers, is meant to catch genuine load tender emails, the ones offering an actual shipment, and pull them out of the noise.
Before any model, this is a rule, plain and readable. Anyone could print it out and follow it by hand.
Delvina Buranelli works this filter every morning. She has about 35 brokers she deals with regularly, and the rule catches 92 percent of their tenders without her lifting a finger. But she also picks up spot market loads from brokers she's never worked with before, roughly five a week. Because their domains were never on the list, the rule only caught about 1 in 5 of those. The other four went straight into a folder she rarely opened.
New broker load tenders missed per week
Rule only, known brokersAI classifier added
Same five new broker tenders most weeks. The rule missed four of them. The classifier, reading the email itself instead of just the sender, missed less than one.
So a small team built a classifier that reads the body of the email, not just who sent it, and routes anything that reads like a real tender to Delvina's priority list. It launched catching 89 percent of tenders from brokers she'd never heard from before.
Catching those extra tenders wasn't the real change. The real change is that "done" now needs someone's name on it, every month, for good.
Here's the part that isn't about accuracy at all. A rule doesn't need anyone watching it once it ships. A model does, quietly, forever. Someone now has to check whether it's still doing what it did on day one, whether the examples it was checked against are still current, whether the company that hosts it just changed something underneath.
Monthly hours spent keeping the tender classifier honest, first year
AI classifier upkeepRule upkeep, list updates only
The rule's upkeep barely moves all year. The model's climbs as drift, relabeling, and a forced version migration stack up, and none of that climb was ever on a calendar.
Knowledge spark: what is model drift?
A model slowly getting worse at a job it used to do fine, without anyone changing a line of code. Real world patterns shift under it. A heuristic can't drift like this. Its rules stay exactly what someone wrote, until a person changes them on purpose.
At its worst, this cost showed up as a full workday every week that belonged to nobody's plan. An engineer, Jorick Groenveld, ended up spending 25 to 30 hours a month on this one filter a year in: chasing a slow accuracy slide nobody had flagged, relabeling a fresh batch of tender examples every quarter, and once, migrating the whole thing off a model version the provider was retiring with 60 days notice.
The choice I would take back
When the classifier shipped, the launch team decided not to set a drift check schedule or assign an owner, reasoning that freight tender language "doesn't really change that fast." That made sense with a launch date to hit. It stopped making sense the moment the filter became something Delvina actually relied on every morning.
The actual decision this answer is about. Not a UI element. A ledger that has to exist before the model ships, not after it breaks.
What I would leave alone: the spam and newsletter filter never got touched. It's still a plain rule matching sender patterns and a few keywords. Marketing platforms don't quietly change their sending patterns the way freight tender language shifts season to season, so that rule just needs a new entry now and then. No drift to watch, no eval set to refresh.
The lesson: choosing a model over a rule isn't a one time build decision. It's opting into a bill that keeps arriving, monitoring, relabeling, migration. Pay that bill on purpose, only where the rule genuinely can't do the job, not because the model sounded like the more modern choice in a planning meeting.
Now here is the same thing as a story
The short version above is what you'd say out loud in the room. Read this one for what it actually felt like to watch a "done" ticket quietly turn into somebody's second job.
Jorick Groenveld had shipped features at Loworth Labs for four years, and he was good at it. Ship it, watch it for a bit, close the ticket, move to the next thing on the board. That was the rhythm, and it worked.
The tender classifier launched in a sprint like any other. For the first month, Jorick opened its accuracy dashboard every Monday morning, saw it holding around 89 percent, and moved on with his day. In the launch retro, someone floated the idea of a recurring drift check and a quarterly relabel cadence. The room was tired and the next quarter's roadmap was already full, so they voted to skip it. Freight language doesn't change that fast, somebody said, and nobody argued.
Weekly checks became monthly ones. By month three, Jorick only opened the dashboard when something else reminded him it existed.
There was no single bad Tuesday. That's the part that's easy to miss. A new online load board started sending auto generated tender emails in a format the classifier had barely seen in training. Around the same stretch, the accuracy on unfamiliar senders quietly slid from 89 percent down to 84. Nobody was looking closely enough to catch either one as it happened.
Nothing here looks like a failure while it's happening. That's exactly what makes it expensive.
What surfaced it wasn't a dashboard. It was three separate customers, in the same week, reporting missed tenders through support. Jorick had to reconstruct four months of drift by hand: pull a fresh batch of real examples, get them labeled correctly, retrain, and verify. Halfway through that, a deprecation notice landed for the underlying hosted model. Sixty days to migrate before the old version went dark, in the middle of everything else.
We didn't just lose four points of accuracy. We lost a week of Jorick's month, every month after that, and nobody had signed up for that week.
What had been "check the dashboard if someone complains" became "own this filter, indefinitely, on top of everything else." He started blocking something close to a full day a week for it. Every week. Forever, unless something changed.
He never had a number in his head for when this crossed a line. He had a feeling with exactly two settings: this is done, or this needs a person full time. The slow slide from 89 to 84 didn't flip it. Three customers complaining in the same week did.
Same ticket. The only thing missing at launch was a line that said who watches this, and how often.
Back in that launch retro, the decision that mattered wasn't obviously wrong at the time. Skipping a drift check schedule to protect the next quarter's roadmap is a normal, defensible call when a feature is brand new and nobody's load bearing on it yet. It stopped being defensible the exact week Delvina started trusting the classifier enough to stop checking her Other folder herself.
Here's the replay, same classifier, same eventual deprecation notice, but with the ledger written on day one instead of skipped.
Six to eight hours a month, blocked on a calendar from week one, instead of a surprise week twelve months later.
With the ledger in place, Jorick checks drift on a set schedule instead of by accident, catches the load board's new template in week three instead of month four, and gets the deprecation notice while there's still slack in his month to plan around it, not scramble through it. Same model, same real world shift underneath it. The only thing that changed is that somebody wrote the cost down before it arrived.
One design handed the team a bill nobody opened until it was already overdue. The other handed them a bill they signed for on day one, in hours they'd already agreed to spend.
What I'd tell myself, back in that retro: "done" is a fair word for a rule. For a model, the honest word is "owned," and if nobody's name is on that line, the bill goes to whoever's desk happens to be closest when it finally arrives.
SPARK: five moves for weighing what a model costs to keep, not just to buildNot a script for sounding thorough about AI maintenance in the abstract. SPARK is what forces the actual ledger out, and proves it survives the year nobody's watching closely.
S
Situation. What's actually true today, before anyone's picked a rule or a model?
Delvina's rule catches 92 percent of tenders from the 35 brokers she already knows, and 20 percent from anyone new. About five new broker tenders land most weeks, and the rule waves four of them into a folder she barely opens.
One task, one real number for what the rule gets right and what it misses. Not a debate about AI in general.
P
Payoff. What habit do I want this choice to build, every time it comes up again?
Not whether to pick the model or the rule, once. The habit is writing the model's ongoing cost down before it ships, the same way the build estimate already gets written down on the same ticket.
Every future "should this be a model" conversation starts with the same first question.
A
Anchor. The one concrete decision everything else hangs on.
A maintenance ledger sits on the build ticket itself, next to the estimate: watch for drift monthly, refresh the eval set every quarter, track model and provider version changes, and give edge case misfires a named owner. Four rows, or the model doesn't ship yet.
This is the direct answer to the question, turned into something you can actually point at on a ticket.
R
Risk. What breaks the first time the team is wrong about the cost?
Skip the ledger and the bill still arrives, just late and unplanned, landing on whoever's desk is closest. That was Jorick: 25 to 30 hours a month, a year after the ticket said done, none of it ever on a roadmap. The trade being accepted either way is real: a model catches more, at the cost of ongoing engineering time a rule would never ask for.
Underestimating this cost doesn't make it smaller. It just turns a plan into a surprise.
K
Keep out. What this argument isn't.
Not a case against AI everywhere in the product. Quiet Inbox's spam and newsletter filter stays a plain rule, because sender and keyword patterns for marketing email don't quietly drift the way freight tender language does. Model only the judgment call that genuinely needs the flexibility.
Keeps this from turning into blanket caution about every model in the product, which is its own kind of bad judgment.
Emmerich wanted the middle panel. The reasoning in this answer is exactly why the team didn't build it.
The recap, one line per letter: situation is a rule's real catch rate written down honestly, payoff is the habit of costing a model's upkeep before its build, anchor is a maintenance ledger on the ticket itself, risk is an unbudgeted bill landing on whoever's desk is closest, and keep out draws the line at the one judgment call that actually needs a model, leaving the rest as rules.
And if you want to be sure it really works, try it somewhere elseSame five letters, a veterinary booking form instead of a freight inbox. The judgment call this time isn't a load tender. It's whether a symptom description sounds like an emergency.
Bramblecoat Veterinary is a two person practice run by Kenrick Onuora. Its online booking form used a keyword rule for years: words like bleeding, can't stand, or won't eat flagged a booking as urgent for same day review. Fernpath Systems, which builds the booking software, pitched Kenrick on TriageLine, a model that reads the whole free text description instead of matching a fixed list, catching cases a first time pet owner might describe as "he's been really weird and floppy since this morning" with no keyword match at all. Mapped onto SPARK: situation is the keyword rule's real record, solid on obvious cases, blind to unusual phrasing. Payoff is the same habit again, cost the upkeep before picking the model, not after. Anchor is the same kind of ledger: for TriageLine, drift as pet owners describe symptoms in new ways season to season, a quarterly eval refresh using real vet reviewed cases, tracking Fernpath's own model version updates, and triaging occasional strange misfires, like a routine dental note flagged urgent because its language overlapped an unrelated emergency post in training. Risk is that a two person clinic doesn't own the model, Fernpath does, so if nobody at the clinic asks what gets watched and how often, that cost just becomes Fernpath's problem to under staff quietly across every clinic using it. Keep out is that the "which vet is free" scheduling logic stays a plain rule. Only the actual symptom urgency judgment, where free text genuinely varies, earns the model.
Where TriageLine's monthly upkeep hours go, six months in
Drift watchEval refreshVersion trackingEdge case triage
None of these four rows exist for a keyword rule. All four exist the moment the judgment call moves into a model, at Bramblecoat or at Quiet Inbox alike.
Swap the trigger and it still runs.
Speed: an interviewer caps you at sixty seconds. Skip straight to the anchor, say the four row ledger out loud, and stop.
Cost: no budget for a dedicated model owner at all. Keep the rule. A filter that only catches 70 percent, cheaply and predictably, can beat a model that catches 90 percent but nobody's paid to keep honest.
The model got better, for real: say a future version drifts far less and needs fewer eval refreshes. The ledger still matters, because "what does this cost to keep right, six months from now" is a question about the task and the team, not about how good any one model happens to be this quarter.
Where people run it wrong.
They budget the model like a one time feature instead of a subscription, so the ongoing hours never make it into anyone's plan.
They let a vendor's promise of "we handle maintenance" stand in for actually asking what gets watched, how often, and by whom.
They swap every rule for a model to sound more advanced, instead of asking which specific judgment call actually needs a model's flexibility.
How to use it live. The moment an interviewer asks you to compare a model to a simple rule, don't start with accuracy. Ask yourself first: what does each option cost to keep right, six months from now, with nobody thinking about it. That question buys you a real beat to think, and it's usually where the honest answer lives anyway.
Flashcards (tap any card to flip it)
1 · THE FRAMEWORK
What framework fits weighing a model's real upkeep against a simple rule's?
Tap to flip
ANSWER
SPARK: situation, payoff, anchor, risk, keep out. It runs forward from the rule's real record today toward the one concrete decision, instead of starting with a verdict on AI in general.
2 · THE PEOPLE
Who is this answer about?
Tap to flip
ANSWER
Jorick Groenveld, the engineer who built and ends up maintaining the tender classifier, at Loworth Labs, owner of Quiet Inbox. Delvina Buranelli is the freight broker who relies on it. Xylia Ondrusek owns the roadmap it sits on.
3 · THE HABIT
What habit does this answer's payoff exist to build?
Tap to flip
ANSWER
Write the model's ongoing cost down next to its build estimate, every time this choice comes up, not just this once.
4 · THE ANCHOR
What's the one concrete thing this answer says to actually build?
Tap to flip
ANSWER
A maintenance ledger on the build ticket itself: drift watch monthly, eval set refresh every quarter, model and provider version tracking, and a named owner for edge case misfires.
5 · THE OLD DECISION
What old decision would this answer take back?
Tap to flip
ANSWER
Skipping a drift check schedule and an owner at launch, because freight tender language "doesn't really change that fast." Reasonable to hit a launch date. Wrong once the filter became something a customer actually relied on.
6 · THE NUMBER
Fill in the blank: by month 12, the AI classifier's upkeep had climbed to about ___ hours a month, while the rule's upkeep stayed near ___ hour a month.
Tap to flip
ANSWER
27 hours, versus about 1 hour. A model's upkeep climbs as drift, relabeling, and version churn stack up. A rule's stays flat because it never learned anything to unlearn.
7 · THE RISK, SURVIVED
What breaks if the team underestimates this cost, and how does the anchor survive it?
Tap to flip
ANSWER
The bill arrives anyway, late and unplanned, landing on whoever's desk is closest, the way it landed on Jorick. The ledger survives this by turning the same hours into a scheduled monthly check instead of an emergency week once a year.
8 · CROSS PRODUCT TRANSFER
Section 4 runs SPARK again on a different product. Which one, and what's the equivalent anchor?
Tap to flip
ANSWER
Bramblecoat Veterinary's booking form, weighing TriageLine's symptom urgency model against a keyword rule. The equivalent anchor is the same four row ledger: drift, eval refresh, version tracking, and edge case triage, applied to vet symptom descriptions instead of freight emails.
Check yourself Score: 0 / 0
Multiple choice
1. Why did the launch team decide to skip a drift check schedule when the tender classifier first shipped?
A. They didn't believe the classifier would ever be used by real customers.
B. They believed freight tender language doesn't change fast, and wanted to protect the next quarter's roadmap.
C. Fernpath Systems told them not to bother.
D. Delvina asked them to keep the launch simple.
Show hint
Look at the launch retro scene in "Now here is the same thing as a story."
Show answer
B. A reasonable call with a launch date to hit. It stopped being reasonable once the filter became something a customer actually relied on.
True or false
2. True or false: the maintenance burden this answer describes applies just as well to Quiet Inbox's plain sender and keyword spam filter.
True
False
Show hint
Look at "What I would leave alone" in Let's learn.
Show answer
False. A rule's behavior is fully knowable and doesn't drift on its own. The spam filter just needs an occasional list update, not drift watching or eval refreshes.
Fill in the blank
3. Fill in the blank: a year after shipping, the tender classifier was costing Jorick about ___ hours a month, none of it ever on a roadmap.
Show hint
Look at "what that costs at its worst" in Let's learn, or the line chart's final point.
Show answer
25 to 30 hours. Roughly a full week of every month, spent on a feature a ticket had called done twelve months earlier.
Short answer, where it wouldn't matter
4. Name a place in Quiet Inbox where swapping a rule for a model would NOT create this maintenance burden argument, and say why not.
Show hint
Look at "what I would leave alone."
Show answer
Model answer: The newsletter and spam filter. Sender and keyword patterns for marketing email don't quietly drift the way freight tender language does, so the rule stays accurate with just an occasional new entry, no drift to watch and no eval set to refresh.
Short answer, apply it yourself
5. Pick a product you use yourself that has a simple rule buried in it somewhere. If that rule got replaced with a model tomorrow, what new ongoing job would someone suddenly own that nobody owns today?
Show hint
Look for something that currently just checks a fixed condition: a sender, a word, a threshold.
Show answer
Model answer: A banking app's transaction categorizer often starts as a merchant name rule. Replace it with a model and someone now owns watching for new merchant name formats drifting the categories wrong, and relabeling a sample of transactions every so often to catch it.
Short answer, work the number
6. If Jorick's classifier only needed a full retrain and relabel once a year instead of every quarter, would the monthly maintenance hours in the chart look meaningfully different? Why or why not?
Show hint
Think about which of the four ledger rows actually depends on how often a full retrain happens.
Show answer
Model answer: The eval refresh hours would shrink, but drift watching and edge case triage still run monthly no matter how often a full retrain happens. The total would drop, but it wouldn't disappear, because two of the four rows aren't tied to retrain frequency at all.
Before you close the answer
Why this works
Tests whether you treat "maintenance" as a real, listable, ongoing cost distinct from the one time build, and whether you can tie it to something a heuristic structurally cannot produce, like drift or forced version churn, instead of a generic worry about upkeep that could apply to any feature.
Follow-up traps
"Isn't this true of any software, not just AI? Regular code needs bug fixes too." Response: a bug fix corrects a mistake once. Drift is the model quietly getting worse at something it used to do fine, on its own, with no line of code changed. A rule doesn't do that.
"Couldn't the team just retrain once and be done with it?" Response: one retrain fixes the drift you already found. It doesn't stop the next one from building, which is exactly why this needs a schedule, not a single task to check off.
If pressed
Model and provider version deprecation notices are often short, sometimes 30 to 90 days. That's what turns a plannable migration into a fire drill: it isn't the migration itself that's expensive, it's that nobody was tracking the vendor's own deprecation calendar until the notice landed.
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.