Skip to content
← Explainers

Explainer

Calculation Inputs: How a Derived Row Is Reproduced

A derived row exposes its source paths and substituted operands so its displayed calculation can be checked against the committed artifact.

A derived analysis restates or calculates a value from a committed source artifact. The calculation-inputs panel is the receipt for one selected row. It lists the operands the analysis binds to that row, shows the source path for each operand, and displays the analysis formula with published values substituted when they are available. The goal is reproducibility: a reader should be able to see which source fields produced the displayed result without reconstructing the page's internal selection logic.

An operand binding has four parts. The operand is the symbol used in the formula. The source path says where that value came from in the source artifact. The value key says where the selected research row stores the published or derived value for display. The label gives the reader a human-readable name. The binding is not an extra data source. It is a declared link between the source artifact, the row, and the formula.

The comeback-rates analysis provides a direct worked example. Its selected row for Deficit 1-5 and 0-2 remaining comes from the source cell with lead_band lead_+01_05 and time_band rem_00_02. That cell publishes outcome_rate 0.9865, n_games 344, n_ticks 21,297, and masked_n_lt_30 false. The analysis labels the first two bands as Deficit 1-5 and 0-2 remaining, converts the rate to the leading-side outcome share, and retains the game and tick counts as support fields.

The displayed result uses the explicit formula: comeback share = 1 - outcome_rate. Substitution makes the calculation concrete: 1 - 0.9865 = 0.0135. The row displays that as a 1.35% observed comeback share because the research field formats the derived fraction as a percentage with two decimals. This is not a new source estimate. It is the complement of the published leading-side outcome rate, rounded only for presentation after the calculation is built. The companion 98.65% leading-side outcome share remains visible so the relationship can be checked in both directions.

The band labels are operands too, but they do different work from the numerical rate. lead_band and time_band identify which source cell the calculation uses. They do not enter the subtraction. n_games and n_ticks report support, but they are not denominators in this particular formula. masked_n_lt_30 tells the reader whether the source marked the cell as small support. In this example it is false, so the cell clears the source's stated mask condition. The panel makes those roles separate instead of implying that every listed field is multiplied or divided.

The source path is intentionally literal. A path such as cells[].outcome_rate says the field lives on the selected object in the artifact's cells array. The brackets indicate an array member selected by the row, not an unqualified aggregate over every cell. The row's deficit and time bindings explain which member is in view. That distinction matters when many source cells share the same field name but represent different game states.

Sometimes the panel says not published for this row. That is a provenance status, not a zero and not a request to fill in a value. It means the analysis has a binding for a field, but the selected row lacks a finite number or nonempty string for that binding. The renderer preserves the missingness and leaves the general formula visible rather than substituting a made-up value. A reader can still inspect the source path, but should not infer that the unavailable operand equals zero or that another row's value applies.

The substituted equation appears only when all declared operands resolve. This protects against a formula that looks complete while silently omitting an input. When an operand cannot resolve, the page shows the original formula alongside the individual source paths. The source paths remain useful because they tell the reader what the analysis expected, even when the artifact did not publish enough to reproduce that particular row numerically.

Use calculation inputs as a boundary check. First verify the selected row's labels. Then compare each displayed operand with its source path. Read the substituted equation and confirm that the result field uses the stated unit. Finally, read the support counts and mask status before comparing it with another cell. The panel does not turn a descriptive row into a live estimate; it makes the published derivation inspectable.

Inspect the worked example

Open the comeback-rates analysis

Where to go next

Sources

webapp/public/data/showcase/comeback_atlas.json -> mask_rulewebapp/public/data/showcase/comeback_atlas.json -> cells[].lead_band, time_band, outcome_rate, n_games, n_ticks, masked_n_lt_30webapp/public/data/showcase/comeback_atlas.json -> cells[lead_+01_05|rem_00_02|reg].lead_band, time_band, outcome_rate, n_games, n_ticks, masked_n_lt_30webapp/lib/analytics/researchComebackAtlas.ts -> formula, bindings, sourcePathswebapp/components/analytics/library/ResearchProvenance.tsx -> resolveResearchOperands, substitutedFormula

Next explainer
Reading a Score Decomposition Receipt →