The number that cannot carry the weight
Northstar's sponsor has told finance that AI triage will return 30% of agent time. That figure comes from the operations baseline, measure 7: "time lost to re-routing, ~25% of agent time". Measure 7 is DERIVED from measure 4 (31% of tickets are re-routed at least once, measured) and measure 6 (agent time per ticket, ~18 minutes, ESTIMATED — agents were asked, nobody timed anything).
A derivation of an estimate is not a measurement, and it does not become one by being repeated in a slide. The first job of discovery is to work out which numbers can hold weight and which cannot, before anyone builds anything on them.
This is not pedantry about statistics. If you accept a number as the baseline and then beat it, you have proved nothing — and if you miss it, you will be held to a figure that was never real.
Example
MEASURES = {
"tickets_per_month": {"value": 4120, "basis": "MEASURED"},
"reroute_rate": {"value": 0.31, "basis": "MEASURED"},
"agent_minutes_per_ticket": {"value": 18, "basis": "ESTIMATED"},
"time_lost_to_rerouting": {"value": 0.25, "basis": "DERIVED"},
"easy_tickets": {"value": 0.45, "basis": "ASSUMED"},
}A derived value is only as good as its weakest input.
Before you run it
# The sponsor asks you to commit to "a 30% reduction in agent time". # Which of these is the honest engineering answer?
What do you say?
Your task
Write usable_for_a_target(measures) returning the sorted list of measure names whose basis is MEASURED. Then print each rejected measure with its basis and the reason it cannot carry a target, in the order given.
Stuck?
Explain it
The sponsor is not being dishonest. Why does a figure like the 30% get created and repeated inside a company?
Where this goes
Deliverable D1 is the discovery pack, and its assumptions register is exactly this exercise done over the whole baseline. D2 then commits to acceptance criteria built only from what survives.
This is a teaching runtime for a subset of Python, running in your browser. Integers are exact and the errors are written in plain English, but the standard library is a small subset and anything missing is refused by name rather than approximated. Your project runs on real Python.
Press Run to see what your program does, or Check when you think it is right. Everything runs here in your browser.