One published, measured indicator, changed between two vintages its own publisher calls comparable — read across the places an organisation worked, beside the same change where it did not. The comparison rule is named on screen, and the causal claim is withheld in writing.
The reader is a funder or a board, reached through a programme officer, and the tempo is annual and retrospective. The app produces the evidence section of a document somebody is already obliged to write — and there are four, each with its own clock.
None of the four asks for a causal estimate. All four ask for the same thing this app produces: what happened, where, beside what else was happening.
Against the rest of California the differential is +337.1. Against counties that started in the footprint's own band it is +378.9. Against the other worst-quartile child-poverty counties — a set of two — it is +15.5.
Same measure, same two vintages, same twelve counties. A differential quoted without its rule is not checkable.
PLACES is multilevel regression and post-stratification over BRFSS. Sub-county estimates rest on a fixed decennial post-stratification, and the model “does not consider any local policy or intervention effects” — by construction it cannot show one.
Measured, not assumed: no year field in the feature service · six releases that overlap by a data year · 21 of 44 measures absent from at least one · California's tract universe moving 8,005 → 9,070, where a GEOID join succeeds for 6,826 and is wrong.
The vulnerability index is no better: its values are percentile ranks relative to the tracts being compared — a position in one year's field, not a level — and its FAQ, read in full, says nothing at all about comparing across years.
So the change lane moved off the modelled measures onto a counted one whose publisher declares its own comparability in a column. The honest set is smaller, coarser and countable — which is the stronger position.
And the sector's dominant public rating of impact has no place in it at all: across a 61-page March 2026 methodology guide, “geograph” appears once; “county” and “ZIP”, not at all. Its data-quality metric scores an outright guess at 0.6.
| The rule, as named on screen | Comparison set | Its change | Footprint change | The differential move |
|---|---|---|---|---|
| A · The rest of California | 46 counties — every one the organisation did not work in | +690.8 | +1,027.9 | +337.1 |
| B · Same 2013–2015 band | 14 counties inside the footprint's own starting range, 6,592–11,667 | +649.0 | +1,027.9 | +378.9 |
| C · Other worst-quartile child-poverty counties | 2 — Imperial and Glenn: the rest of the pool the footprint was drawn from | +1,012.4 | +1,027.9 | +15.5 |
A twenty-two-fold swing from changing nothing but the comparison. That is the product, not a weakness. A comparison set assembled to flatter is the one failure this application could not survive, and the defence against it is that the rule is always visible.
So the rule is named, its membership is listed by county, its n sits on the face of every reading it produces, and it rides in the URL — a quoted number cannot travel without the rule that made it. Choosing C raises a warning naming the two-county set, once, at the moment of choosing.
And they choose where need is worst. The worked set therefore starts further from the mean and drifts back toward it whether or not anyone does anything. The app never treats a footprint as though it had been assigned at random.
A difference between two changes means something only if the sets were moving together first. Here they were not: the pre-period differential is +69.5, and the gap widened from +1,277.4 in 1997–1999 to +1,891.7 in 2013–2015. All 24 spans are drawn.
Results-Based Accountability, the published standard this is measured against, says it outright: a single programme, agency or service system cannot take sole responsibility — or credit — for a population result. That sentence sits in the notice bar and in every export.
Both directions are rendered, and a flat line is a finding. One footprint county improved — Lake, at −108.1 — and it is drawn as an improvement. Both sets got worse overall, which is what the published series records, not evidence that anybody's programme harmed anybody. Every state pairs a colour with a hatch and a spelled-out word, so the reading survives a greyscale print.
Not an effect, not an impact, not a return on anything. One published measured indicator — premature death, years of potential life lost before 75 per 100,000, age-adjusted — between two vintages the publisher itself flags as comparable, across two named sets of counties.
Median county value, balanced panel — a county counts only where both spans are published. Alpine is not published for 2013–2015, so it is named and excluded rather than counted as zero. Trinity moved +3,902.7 on a population of 3,600; the median is why that is not the headline.
Nothing on the page is printed from a constant. The reading, the memberships and every count are recomputed from the layers — which is how a rounding decision that moved the headline by 0.1 was caught by the suite rather than by a reader.
The app hands the reader the thing that would embarrass it. A product that hid the rule would read better and be worth less.
The trend file carries 60 distinct county names for California's 58 counties — San Bernardino Count and San Luis Obispo Coun, truncated at 20 characters, across five spans including one of this app's own base spans. Joining on the name would have split two counties in half. Guard: join on the FIPS code, take every display name from the boundary layer, assert 58 distinct names.
Alpine has no published 2013–2015 value and is flagged Unreliable on its most recent one. A single collapsed field reported only the first, so the second never reached the screen. Guard: two separate fields, two chips in the table, both spelled out in the popup and in every export.
The counted ZIP-grain lane this design wanted first returns HTTP 403 error code: 1009 to every machine fetch — re-probed twice, two user agents, three URLs. Nothing was generated in its place. The lane renders empty with its citation, and fills when a customer supplies the files behind their own perimeter.
Reading the figures: the measure, the boundaries and the context lane are real, published and probed. The programme footprint is GENERATED — fixed membership derived from a published aggregate rather than from geometry, filtered so an activity can only attach to a real county, labelled on five surfaces, and never mixed into a figure that is measured.
Every one of these is written into the delivered application's own README. A tool that hides its edges costs you the project it cannot finish.
That is the whole ask. Where the organisation worked, at the unit your measure is published at — no beneficiary rows, no participant identifiers, no demographics, no addresses. Two weeks, and this page reads your footprint instead of a generated one.
Swappable by configuration, not by code: the reporting geography, the published measure with its comparable vintages, and the rule that builds the comparison set. The method is general; the evidence in the shipped build is California's, and the app names the state whose figures are on screen.