FDE-Gym: Business-Outcome Scoring
Deployment scores can hide business harm and costly customer interactions; FDE-Gym compares improvement with an expert reference, then adjusts for incidents and contact costs.
Read the paper ↗What it is
- Normalized business uplift Compare the delivered system’s improvement with the unchanged customer system, using an expert-built solution’s improvement as the reference scale.
- Incident and contact adjustment Operational incidents can erase positive gains, and chargeable stakeholder interactions reduce the score.
- Resolved task A task counts as resolved only when the adjusted score reaches the required threshold and no incident occurred.
Why it matters
A system can improve a customer metric yet still be a poor delivery if it creates operational harm or consumes too much stakeholder time. This scoring rule makes those costs part of the outcome.
Before I get into the scoring details, here is the short version: FDE-Gym judges a delivered system by whether it improves the customer’s real business outcome, not just whether the implementation runs. It measures that improvement against both the unchanged system and an expert reference, then charges the score for costly interactions and operational incidents.
-
Business value: A working feature is not automatically useful. The canonical example is an after-sales system: its result is judged by net financial benefit, not by whether it produced a plausible-looking answer. More generally, the metric should represent the customer outcome the delivery is meant to change.
-
A meaningful comparison: Raw gains are hard to interpret across different business metrics. The unchanged system is the do-nothing baseline; an expert-authored reference provides a scale for the improvement that a strong solution can achieve. For the canonical comparison, imagine baseline, delivered, and reference systems evaluated on the same held-out customer data. Normalized uplift asks what fraction of the reference’s gain the delivery achieved. In notation, . In words, divide the delivered system’s gain over the unchanged system by the reference solution’s gain over that same baseline. Zero means no improvement, one matches the reference’s improvement, and a negative value is worse than doing nothing. What if an apparently strong business gain came with an operational incident?
-
Consequences count: Think of a run as a delivery ledger: stakeholder messages can add charges, while an incident can wipe out positive uplift. The analogy is limited because these are predefined scoring rules, not a complete accounting of every real-world cost. If an incident happens, positive uplift is set to zero, but negative uplift stays negative; then chargeable contact costs are subtracted. A contact may cost more when it breaks a restriction or exceeds a stakeholder’s patience, while unanswered messages are not charged. Trial runs and waiting days can also count where the scenario rules say they do. The final run score is adjusted uplift minus contact cost, and a task is resolved only at a score of at least 0.8 with no incident. So what happens when many runs are summarized together?
For the aggregate, the incident-adjusted uplift is floored at negative one before subtracting full contact costs and averaging tasks and runs. I like that this prevents a single extreme business loss from overwhelming the average, but it does not change the single-run score or rescue an incident run under the resolved-task criterion. The score is useful precisely because it makes business gain, interaction burden, and operational harm visible together; it is still only as meaningful as the KPI, reference, and rules chosen for the task.
Read the deep dive
Why People Wanted It
A deployed system can look competent while failing to improve the customer’s actual outcome. And even when it improves a metric, it may do so through costly stakeholder messages or an operational incident. The real question is not simply whether the system works, but whether the delivered change creates worthwhile improvement against a meaningful reference after those costs are counted.
The Core Move
FDE-Gym expresses business improvement in units of an expert reference solution, then subtracts stakeholder-contact costs and applies an incident rule. Its normalized uplift is
The baseline is the unchanged customer system, and all three KPI values are evaluated on the same held-out data. A score of zero means no improvement over doing nothing; one means matching the reference solution’s improvement; a negative value means the delivery made the outcome worse than baseline.
Why the Expert Reference Sets the Scale
Now the version for readers who want more of the machinery: the denominator makes uplift relative to the improvement available in the reference, rather than to the raw size or units of a customer KPI. Let , , and denote the baseline, delivered, and reference KPI values, with higher values assumed better for this expression. Then : the numerator is the delivery’s gain over doing nothing, while the denominator is the reference’s gain over doing nothing. The same construction applies when the business metric is expressed in domain-specific terms, such as net financial benefit or correctly attributed downtime, provided the metric’s direction is interpreted consistently. If , this ratio has a zero denominator and does not define a usable normalization; the scoring setup therefore needs a reference that improves on baseline.
Why Incidents Can Erase Positive Uplift
Here is the part that gets technical: an operational incident changes the uplift before contact costs are deducted. If an incident occurs, positive uplift is set to zero, but negative uplift is retained:
In words, an incident cannot be offset by a business gain, while a system that already harms the baseline keeps that negative result. This is a one-sided adjustment, not a blanket replacement of every incident run with zero.
Why Contacts Count Against the Delivery
Now the cost model adds a second kind of consequence: each chargeable contact contributes its predefined charge, so . In words, add the prices for the run’s chargeable stakeholder contacts. The rules can charge more for exceeding a person’s patience or violating contact restrictions; unanswered messages are not charged, and trial runs or days spent waiting can count when those scenario mechanisms apply.
The single-run score is : incident-adjusted uplift minus contact cost. A task is resolved only when and no incident occurs. For aggregate reporting, incident-adjusted uplift is floored at before the full contact cost is subtracted and task-run scores are averaged; that floor does not alter the single-run score or its resolved-task test. What does this make visible that a raw task-success label would miss? Both the cost of reaching the outcome and the severity of operational failure.
Minimal Causal Code
This loop makes the single-run logic visible. It expects higher KPI values to mean better outcomes and assumes a valid reference denominator.
def fde_run_score(kpi_baseline, kpi_delivered, kpi_reference,
contact_charges, incident):
uplift = (kpi_delivered - kpi_baseline) / (kpi_reference - kpi_baseline)
# An incident removes gains, but preserves negative outcomes.
adjusted_uplift = min(uplift, 0.0) if incident else uplift
contact_cost = sum(contact_charges)
score = adjusted_uplift - contact_cost
resolved = score >= 0.8 and not incident
return score, resolved
What You Gain, and What You Lose
The score makes a delivered system answer to more than a proxy notion of task completion: it measures improvement against the unchanged customer system, calibrates that improvement to an expert reference, and charges for interactions and incidents. The resolved criterion is explicit, and the separate aggregate floor prevents very large negative adjusted uplift from dominating the reported average while leaving full contact costs in place.
The tradeoff is that the result depends on the chosen business KPI, the quality and applicability of the expert reference, and the task’s predefined contact and incident rules. Normalization does not make unlike business outcomes interchangeable, and a scalar score can hide which component drove a result. FDE-Gym therefore gives a structured accounting rule, not a substitute for examining the underlying KPI and run-level costs.
A delivery earns credit for useful uplift, but incidents can erase gains and customer interactions have a price.