12,000 experiments across 42 million monthly users.
The experimentation team owns everything in the dashed frame. I led the Scorecard and Conclude projects inside it.
Eleven+ columns, no recommendation.
what the table couldn't say
-
01
a wall of numbers
Readers face eleven+ columns of statistics and still have to make the ship call themselves.
-
02
one view, four audiences
The detail suits data analysts. Engineers, product managers, and S&O kept asking where their experiment stood.
-
03
health checks need context
The platform flags exposure and imbalance issues. Non-analysts struggled to judge which ones could change the decision.
Each readout, written by hand.
what concluding took
-
01
the hand-written readout
Owners re-typed dashboard results into a doc for each concluded experiment.
-
02
shipped elsewhere
Engineers rolled out the winning variant from their own app. The platform stored no record of the winner.
-
03
the toll
One owner reported it took them four hours to conclude a large experiment.
The Solution
I proposed two projects.
Scorecard gives teams an answer. Conclude guides the next steps.
Scorecard
One consolidated results view that recommends an action.
- Overview, variants, and success + guardrail metrics in one place
- A recommendation up front: wait, ship, revert, review, or diagnose
- Health checks explained in plain language
Conclude
A guided workflow to conclude an experiment.
- Six steps: variants, checks, guardrails, metrics, learnings, ship
- Every field pre-fills from the analysis, so nothing is re-typed
- The platform saves the final results and ships the winning variant
Two goals, a team of four.
fewer status asks
Cut #ask-experimentation status asks by about a quarter.
conclude in minutes
Bring concluding an experiment from four hours down to minutes.
Me
led the projects · front end · leadership syncs
Back-end engineer
conclude apis · data model
Data scientist · Product manager
decision rules · requirements
Stakeholders
analytics leadership · engineers & pms across orgs
The same metrics, one recommendation.
The full analysis, one recommendation.
Six steps, ten minutes.
One flow handles the work spread across a doc, form, and spreadsheet.
Each step pre-fills from the analysis, including fields that owners used to copy into docs and forms.
Concluding freezes the analysis.
The boxes are database tables.
AddConcludeAnalysis · GetConcludeAnalysis · UpdateConcludeAnalysis
Each time an owner concludes, the platform writes a new version and points the experiment to it.
Three decisions, and the alternatives.
where the recommendation lives
ruled out
A new backend recommendation service. New API contract, a second deploy surface, slow iteration on decision rules.
chose
A front-end interpretation layer over the existing APIs. No contract changes, and the rules version with the UI.
freezing results
ruled out
A mutable concluded flag on the analysis row. Reruns would quietly rewrite history under a shipped decision.
chose
A new report row per conclude, and concluded_at on the analysis row. Setting that field stops reruns and config edits, so history cannot be rewritten.
pinning the numbers
ruled out
Deep-copying every result row into a snapshot table. Duplicated data to keep in sync, and slow writes on large analyses.
chose
A row that saves the ids of the results you were looking at. Nothing is copied, and reopening the report a year later shows the same numbers.
How it went.
fewer status asks
~40% fewer
The goal was 25%. Teams found the experiment status in Scorecard before opening a thread.
conclude in minutes
10 minutes
Owners used six guided steps instead of a doc, form, and spreadsheet.
Demoed at the analytics offsite
cited in the platform's h1 accomplishments
Base of the leadership dashboard
v2 is driving broader adoption
Business-impact math
exploring one shared formula next
What went wrong, and what it taught me.
- One default I'd reverse: hard-blocking on any failed health check. A secondary metric pipeline issue blocked concluding, and some users went back to hand-written readouts. Warn first, and hard-block only on genuine bias.
- Analysts, data scientists, engineers, and PMs each needed a different read of the same screens. I aligned all four before the build, but badly underestimated how much of the schedule that would take. Coordination is project work, and it needs its own budget.