Civic Forecast

How A Civic Forecast Finding Is Calculated.

A Finding is a figure we compute from two or more datasets — a number neither publisher reports on its own. Here is the arithmetic behind each one.

Every Finding holds to four rules

The formula behind each Finding

Worked at the date shown. The number moves as its inputs are revised; the method does not.

Rent as a share of a paycheck

≈28% — of a full-time month's gross pay · 2026-08-26

Computed from HUD Fair Market Rents · BLS average hourly earnings

monthly rent ÷ (hourly wage × 2,080 ⁄ 12) × 100

A $37.62 hourly wage makes a $6,520.80 gross month, putting the national median two-bedroom just under HUD's own 30% affordability line.

Why gross pay, not take-home Payroll and income tax vary by household in ways this cannot know, and every published housing-wage figure uses gross for the same reason. The card says so rather than leaving a reader to assume.

Real wages after inflation

−0.2% — pay up 3.15%, prices up 3.36% · 2026-07

Computed from BLS average hourly earnings · BLS Consumer Price Index

((1 + pay growth) ÷ (1 + price growth) − 1) × 100

Nominal pay rose and still bought slightly less.

Why a ratio, not a subtraction Growth compounds, so real pay is the ratio of the two growth factors. Subtracting the percentages is the common shortcut and it is wrong: it gives −0.21 here rather than −0.20. The gap is small at these rates and grows as they rise, reaching a full percentage point at 1970s inflation.

Job seekers per opening

104 — openings per 100 job seekers · 2026-06

Computed from BLS Job Openings and Labor Turnover Survey · BLS unemployment (Current Population Survey)

round(openings ÷ people looking for work × 100)

7,359,000 openings against 7,094,000 people looking. Both series are published in thousands, so the units cancel.

Why per hundred, not a bare ratio Rounding a ratio to one decimal rounds away the entire signal — 1.04 and 0.96 are opposite labour markets and both render as “1.0”. Openings and unemployment also release on different schedules, so the figure uses the newest month both share.

Facilities in violation

Per state — a share, not a count

Computed from EPA ECHO violations by state · EPA ECHO regulated facilities by state

facilities in significant violation ÷ regulated facilities

Vermont's 93 violations against California's ~1,200 reads as damning until you account for California having about twenty times as many regulated facilities.

Why a missing state is omitted A state appears only when both halves are present and the denominator is above zero. Filling a gap with the national rate would colour that state with a statement about the country, and a rendered map cannot show the difference.