Mycroft: Why Our AI Runway Scorer Refuses to Make Judgements
Amruta Naik explains why Mycroft's runway risk scorer outputs five verified metrics and a hard-coded human gate instead of a risk label, so no one can rubber-stamp an AI's guess.
Ask an AI model to tell you whether a startup is about to run out of money, and it will happily give you an answer: high risk, avoid. The trouble is not that the model might be wrong. The trouble is what happens next, when a human sees a confident-sounding label sitting on top of incomplete, messy data and stops thinking. That failure mode, a person rubber-stamping a machine's guess, is what Mycroft's runway risk scorer was built to prevent, and it does it in an unusual way: by refusing to render a verdict at all.
Amruta Naik designed the tool as part of the Mycroft financial AI project at Humanitarians AI, and the interesting part isn't the math behind the score. It's the line the code deliberately will not cross.
Five mechanical metrics, nothing more
The scorer's design rule was written as a direct instruction to the build agent: produce five mechanical metrics, and nothing that looks like a conclusion. Those five are total raised, months since the last raise, funding stage trend, distress indicators, and signal freshness. Each one is a plain, computable number. None of them is allowed to be dressed up as a recommendation. The score function itself is explicitly forbidden from printing the words "high risk" or "low risk." It builds a metrics dictionary of those five numbers and stops there.
Provenance beside every number
What makes the tool trustworthy isn't just what it withholds, it's what it keeps. Beside every one of the five numbers sits its provenance: the exact signal ID and the source URL the number came from. Any signal that can't be verified against a source doesn't get included with a caveat attached. It gets dropped outright, not guessed at. That distinction matters. A tool that keeps a low-confidence number and flags it as uncertain is still handing a human a number to anchor on. Mycroft's scorer would rather show nothing than show something unverified.
The revision to this logic split incoming signals three ways: well-formed, malformed, and unvalidated. Only well-formed, sourced signals make it into the five metrics. Unvalidated signals, the ones no human has signed off on, get dropped from the numbers entirely, but their count survives. So a reader of the output can see that something was excluded without that exclusion ever touching a single figure in the report.
The hole in the code
Instead of a risk label, the function returns a gate field hard-coded to "halting human." No risk label, no recommendation, just a placeholder that names who has to decide. It is, as Amruta puts it, a hole left in the code on purpose, one the human is meant to fill. The report generated alongside the metrics doesn't try to conclude anything either. It states the human gate, names who has to decide, and says plainly that the tool computed metrics; it did not decide anything. It also lists what it dropped: signals used versus signals dropped as unvalidated, so the reader can see exactly how much of the available information was excluded and why.
A pattern, not just a tool
The real lesson here isn't the five metrics themselves. It's a pattern that generalizes to any AI system that scores, ranks, or flags something. Separate what the machine computes from what the human decides, and then make the machine physically unable to cross that boundary. The score is a hole in the code, and that hole is the entire point of the design. A system that can compute a number but cannot render a verdict cannot be blindly trusted the way a system that hands you a conclusion can, because there's no conclusion to trust. There's only a human name attached to a decision that hasn't been made yet.
Key takeaways
- The runway risk scorer outputs five mechanical metrics (total raised, months since last raise, funding stage trend, distress indicators, signal freshness) and never a risk label.
- Every metric carries its provenance: the exact signal ID and source URL it was computed from.
- Signals that can't be verified are dropped entirely rather than included with a low-confidence warning.
- The output's gate field is hard-coded to "halting human," a deliberate placeholder rather than a computed verdict.
- The report states explicitly that the tool computed metrics and did not decide anything, along with a count of dropped, unvalidated signals.
- The underlying pattern, separating machine computation from human judgment and enforcing that boundary in code, applies to any AI scoring or ranking system.
Try it yourself
Take any AI tool you're building that scores, ranks, or flags something, and find the exact line where it hands you a conclusion. Ask whether that conclusion needs to live in the code at all, or whether the code should stop one step earlier and let a human judge instead. This kind of guardrail design is core to the work coming out of the Mycroft project at Humanitarians AI, where the goal is building financial AI tools that stay honest about what they actually know.
Chapters
- 0:00The danger of AI-generated risk labels and human rubber-stamping
- 0:40The 5 mechanical metrics of the runway risk scorer
- 1:15Prudence and provenance: Storing exact signal IDs and source URLs
- 1:45Leaving a hole in the code: The "halting human" gate
- 2:20Handling unvalidated signals: Drop the numbers, keep the count
Full transcript(auto-generated, with timestamps)
The danger of AI-generated risk labels and human rubber-stamping
[0:00]Namest, here's a risk tool that does something strange. It measures how close an AI startup is to running out of money and then it refuses to tell you if that's bad on purpose. This is the runway risk scorer. And the thing worth watching is not the math. It's the line it won't cross. The problem is trust. If you ask an AI to score a startup's collapse risk, and it prints high risk, avoid, you now have a machine making a judgment call on incomplete, messy data, and a human who rubber stamps it. The failure isn't a wrong number. It's a human who stopped thinking because the tool sounded sure. So here's the design rule written as a prompt to the build agent. Five mechanical metrics total raised month since last raise. Funding stage trend distress indicators signal
The 5 mechanical metrics of the runway risk scorer
[0:40]Freshness. Every number carries a source. Any signal we can't verify gets dropped not guessed. And the score function is forbidden from printing the words high or low risk. This is the actual score function. It builds a metrics dictionary, five numbers, and beside every number, the prudence, the exact signal ID and source URLs the number came from. Then look at what it returns. A gate field hard-coded to haltating human. No risk label, no recommendation. The verdict is a hole in the code left there on purpose and the human fills it. Run it. And this is the brief. Five metrics and under each one, the source line, the signal ID in brackets, and the URL it came from. It
Prudence and provenance: Storing exact signal IDs and source URLs
[1:16]Even tells you what it dropped, signals used versus dropped unvalidated. And at the bottom, the report doesn't conclude. It states a human gate names who has to decide and says plainly, "This tool computed metrics. It did not decide anything." Now, the revision, the shape checks split signals three ways, well-formed, malformed, and unvalidated. The key decision is that unvalidated signals, ones no human signed off on, don't get carried with a warning label. They get dropped and only their count survives. So, you know something was excluded without it touching a single number. A low confidence number is still
Leaving a hole in the code: The "halting human" gate
[1:46]A number and it still anchors the human. Improvements beats polish. So what does this tool actually teach? Not five metrics. A pattern you can reuse on any AI decision system. Separate what the machine computes from what the human decides and make the machine physically unable to cross that line. The score is a hole in the code. That hole is the whole design. Your turn. Take any AI tool you're building that scores or ranks or flags something. Find the line where it hands you a conclusion. Then ask, should that conclusion live in the code at all or should the code stop one step earlier and let you judge? Try deleting the verdict. See what breaks.
Handling unvalidated signals: Drop the numbers, keep the count
[2:21]The scorer that won't score you. The best thing this tool does is the thing it refuses to do. Namast.
More from Mycroft Financial AI
2:24Mycroft Ep. 2: One Run, Two Customers (Human-Readable vs. Machine JSON)
2:27Mycroft Ep. 3: The Boring (and Essential) Work of Code Auditing
6:18Mycroft: Rebuilding Morgan Stanley's AI Tools (And Finding a Hidden Bug)
3:20Mycroft's ECIS Ep. 4: Who Said It? Weighting Context in AI Financial Analysis
1:54Building Regex Claim-Splitting Logic for Patent Parsing in Mycroft
3:14