Skip to content

Answer Q13 and scope the diagnostic to the demand it was measured on - #5

Merged
jadoon200 merged 1 commit into
mainfrom
feat/capacity-control
Aug 8, 2026
Merged

Answer Q13 and scope the diagnostic to the demand it was measured on#5
jadoon200 merged 1 commit into
mainfrom
feat/capacity-control

Conversation

@jadoon200

Copy link
Copy Markdown
Owner

Q13 was the one open question: is 0.50 a real boundary, or a round number that seven
workloads flattered? It is closer to the second.

Result

Widened the test to 43 individual Azure Functions workloads — CC-BY, already fetched, no new
licence question — sampled deliberately hostile to the rule: stratified by the diagnostic and
oversampled in the borderline band.

daily autocorrelation n forecasting paid (6 h) (12 h)
< 0.20 8 25% 12%
0.20 – 0.35 6 67% 83%
0.35 – 0.50 13 69% 69%
0.50 – 0.70 7 57% 71%
> 0.70 9 67% 33%

The 0.50 cutoff scores 51% at six hours, 47% at twelve — a coin flip, and worse than the
58%/53% you get by ignoring it and always predicting that forecasting pays. The relationship
is not monotone: it rises out of the noise floor and falls again at the top.

Two scoring corrections, both of which moved the answer

  • Pareto dominance was measuring the wrong thing. It counts a cell only when forecasting
    is no worse on both axes — so on 762d22c5a3d7 (r = 0.892), cutting violations from
    0.193 to 0.072 while costing 6% more was recorded as not a win. That asks whether
    forecasting is free, not whether it pays. Now scored on total economic cost at
    C_u/C_o = q/(1-q), the newsvendor objective already used for Q4.
  • The replica heuristic degenerates on serverless traces. median/8 on a 65%-zeros
    workload gave a mean of 17,413 replicas. Sizing now anchors on the p95.

dominance also counts ties as wins. This does not affect the published 27-of-28
verified: every published win is strict and no plan pair was identical, including
materna-2's 2 of 4 — but it fires often on low-volume functions, so ties are now counted
and excluded.

What this changes in the product

The 27-of-28 result stands, now stated with its scope: it was measured on fleet
aggregates
, where summing thousands of VMs or requests leaves daily structure as the
dominant exploitable signal. An individual function can carry high daily autocorrelation
while the variance that drives the commitment decision lives inside the window.

The API verdict, the diagnostic page and the explainer now all carry that scope, so a visitor
pasting a single spiky workload is told the reading is untested for their case rather than
handed a confident answer the evidence does not support. Below ~0.20 the diagnostic held on
both populations, and that is stated as the part that transferred.

Gate

ruff clean; mypy strict clean; 181 tests passing; tsc --noEmit clean and the frontend
building.

Widened the test from 7 workloads to 43 individual Azure Functions workloads,
sampled hostile to the rule — stratified by the diagnostic and oversampled in the
borderline band. The 0.50 cutoff scores 51% at a six-hour commitment and 47% at
twelve. That is a coin flip, and worse than ignoring the diagnostic and always
predicting that forecasting pays. The relationship is not even monotone: win rate
climbs out of the noise floor between 0.20 and 0.50 and falls again above 0.70.

Two scoring corrections were needed before the number meant anything, and both
moved it. Pareto dominance asks whether forecasting is free, not whether it pays:
on one workload at r = 0.892 forecasting cut violations 2.7x while costing 6%
more and was recorded as a loss. Cells are now scored on total economic cost at
the ratio the quantile implies, which is the newsvendor objective already used
for Q4. Separately, the median/8 replica heuristic degenerates on serverless
traces — a 65%-zeros workload reported 17,413 mean replicas — so sizing is
anchored on the p95.

What survives is the bottom of the range. Below ~0.20 forecasting failed to pay
on both populations, and that is the only part of the diagnostic that transferred.

The published 27-of-28 stands and is now stated with its scope: it was measured on
fleet aggregates, where summing thousands of VMs or requests leaves daily
structure as the dominant exploitable signal. The API verdict, the diagnostic
page and the explainer all say so, so a visitor pasting a single spiky function
is told the reading is untested for their case rather than given a confident
answer the evidence does not support.
@jadoon200
jadoon200 merged commit 9cec745 into main Aug 8, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant