Start with the denominator you actually know
In the main case, an independent acceptance record establishes 1,000 eligible operations whose completion deadline has passed. Outcome observations confirm 960 good results and 30 bad results; 10 outcomes are unknown. The confirmed good fraction is 960/1,000, or 96%. If all 10 unknowns were good, the fraction would be 97%. The fixture establishes a range, not the missing outcomes.
Dropping the unknowns gives 960/990, about 96.97%. That is the success fraction among observed outcomes. It is not a more precise estimate of all eligible operations unless additional assumptions justify treating the missing observations as representative.
Compare the evidence states
incomplete
| Eligible operations | 1,000 |
|---|---|
| Confirmed good / bad / unknown | 960 / 30 / 10 |
| Observed outcome coverage | 99% |
| Confirmed good fraction of all eligible work | 96% |
| Possible good-outcome upper bound | 97% |
| Good fraction among observed outcomes only | 96.97% |
Unknown outcomes remain in the eligible cohort. The observed-only rate answers a narrower question and cannot establish the success rate of all eligible work.
Reproduce the calculations
Download the Python script and CSV into one directory. The script uses only the Python 3 standard library and reads the local file; it makes no network request.
Download the Python script · Download the six synthetic cases
python3 measurement_completeness.py --self-test
python3 measurement_completeness.py completeness_cases.csvMethod and expected results
Each CSV row partitions one complete eligible cohort into good, bad and unknown outcomes. The lower bound counts confirmed good outcomes over the full cohort. The upper bound also counts all unknown outcomes as potentially good. Neither bound changes a known bad outcome into a good one. For an empty cohort, the fractions are undefined. A completely missing collector has no observed outcomes; it does not become the same case as every operation failing.
The self-tests cover a complete cohort, partial evidence, no traffic, missing outcomes, known failures and invalid counts. They verify arithmetic and state handling on constructed fixtures. They do not verify a collector, a production SLI or a release decision.
Where this method stops
The bounds depend on a complete, correct eligible count and mutually exclusive outcome categories. Counts must also describe the same current window; neither the browser lab nor the script validates timestamp freshness. If the acceptance counter also loses events, these bounds no longer describe all service work. Reconcile the population or use another independently justified observation before relying on the result. A local SLO policy still has to define how uncertainty affects a release or page; this lab does not choose that policy.
Continue with defining an SLO measurement boundary,missing-data alert behavior or the error-budget calculator.
Sources and provenance
This experiment develops the site’s published distinction between measured success, no eligible traffic and missing evidence. Google’s data-processing guidance explains completion objectives and completeness checks. All counts and outcomes here are synthetic. The published scripts were executed locally against these fixtures; no production or customer data was used.