Bundle review table

04 — Deterioration Tracks Trucks Per Lane

Supplied working report; original verdicts not validated.

Review status: Needs review. This is an archival source note, not a passed proof.

README.md

# 04 — Deterioration Tracks Trucks Per Lane

**Verdict: not supported as stated** (the coefficient is significant but has the opposite
sign to the prediction).

## Summary

94,171 bridges from the FHWA National Bridge Inventory 2023 (CA 21,896; TX 35,210;
MN 7,383; PA 19,396; FL 10,286), pooled OLS of deck condition rating (0–9) on
log1p(trucks/day/lane) and age (2023 − year built).

| Quantity | Trucks/day/lane (log) | Age (years) |
|---|---|---|
| Joint coefficient | **+0.0023** | −0.0147 |
| Standardised coefficient | +0.006 | −0.399 |
| Permutation p (2,000) | 0.0305 | 0.0005 |
| Bootstrap 95% CI | 0.0003 to 0.0044 | — |
| Partial R² (added second) | 0.000 | 0.159 |

Headline number: at fixed age, each log-point of trucks per lane is associated with a
*0.0023-point higher* deck rating (p = 0.030), the opposite of the predicted decline; the
effect grows with state dummies (+0.0055, p = 0.001). Age dominates: deck rating falls
0.015 points per year of age (standardised −0.399, R² = 0.159 of the 0.16 total).
Non-parametrically, mean deck rating falls with age quintile (7.34 → 5.94 for the
zero-truck bin) while within every age quintile it rises slightly across trucks/lane bins
(e.g. oldest quintile: 5.94 → 6.08 → 6.21 → 6.31 → 6.25).

## What this shows and what it cannot show

It shows that in this cross-section the load mechanism is not visible as stated: heavier
truck traffic does not predict worse decks at fixed age, and the raw trucks/lane–deck
correlation (−0.07) is largely an age artefact — older bridges, which rate worse, also
carry slightly more trucks per lane (corr(age, log trucks/lane) = +0.08). It does **not**
show that truck loading does not damage decks: maintenance and
replacement are allocated precisely to the heavily trafficked routes, so the cross-section
mixes the damage effect with the repair response, and a longitudinal design would be
needed to separate them.

## Limitations

1. **Cross-section only.** Each bridge is observed once, so the estimate conflates
   deterioration with repair and maintenance allocation; busier routes get more funding
   and attention, which can raise their ratings relative to lightly used bridges of the
   same age. This is also the main rival explanation for the sign reversal.
2. **Coarse exposure proxies.** ADT and percent trucks are point-in-time estimates, not
   the bridge's traffic history; year built records the last major construction, so
   reconstructed decks appear younger than their loading history.
3. **Ordinal rating.** Deck condition is a 0–9 engineering scale; OLS treats the steps
   as equal. Some 28.5% of raw records were excluded because the deck item is not coded
   (N/blank, mostly culverts and structures without decks).
4. **State heterogeneity.** State inspection and coding practices differ (mean deck
   ratings run 6.26 in CA to 6.84 in FL); the state-dummy model strengthens rather than
   reverses the positive trucks/lane coefficient.

## Reproducing

`python3 run.py` re-derives `results.json`, `data/*.csv` and `figures/*.png` from the
cached NBI downloads (see `SOURCE.md`). Seeds: permutation 20261030, bootstrap 20261031.

hypothesis.md

# 04 — Deterioration Tracks Trucks Per Lane

**Source:** Incoprea Research library, Vol. XXIX, theory "Bridges" (entries published
30 October 2026). Round-V assignment sheet, test 04. The claim is quoted verbatim from the
assignment.

## The posted claim (verbatim)

> "Bridge deck deterioration tracks trucks-per-lane more than calendar age."

**Prediction:** deck condition rating declines with ADTT per lane at fixed age.

**Refutation:** age alone explaining condition would remove the load mechanism.

## What this test does

FHWA National Bridge Inventory, 2023 delimited files for five states (CA, TX, MN, PA, FL;
fallback to the 2022 files only if the 2023 endpoints do not exist — any substitution is
recorded in `SOURCE.md`). The 2023 delimited files are comma-separated with a header row in
which each field name carries its NBI item number (verified by inspection of the downloaded
file; the fixed-width positions of the older NBI format do not apply to the 2023 files).
Records are parsed by those named fields: `YEAR_BUILT_027` (item 27), `TRAFFIC_LANES_ON_028A`
(item 28, lanes on the structure), `ADT_029` (item 29), `DECK_COND_058` (item 58), and
`PERCENT_ADT_TRUCK_109` (item 109). Derived: trucks/day/lane = ADT × pct_truck/100 ÷ lanes;
age = 2023 − year built. Records with deck rating outside 0–9 (including N/blank), lanes
< 1, negative or blank ADT, percent truck outside 0–100 (blank treated as 0), or year built
outside 1800–2023 are dropped (counts reported). The decisive model is a pooled OLS of deck
rating on log1p(trucks/lane) and age (in years), with standardised coefficients, partial R²
for each predictor, and a permutation p for the trucks/lane coefficient (2,000 seeded
permutations) plus a percentile bootstrap 95% CI (2,000 seeded resamples). A robustness model
adds state dummies. The non-parametric view: mean deck rating across a 5×5 grid — age
quintiles cut on the pooled sample; for trucks/lane, bin 1 is exactly zero trucks/lane and
bins 2–5 are the quartiles of the strictly positive values (the zero mass is too large for a
pooled quantile split).

## Pre-specified criteria for this test

Decisive model: deck_rating ~ log1p(trucks_per_lane) + age (pooled, no state dummies).

- **supported** — the trucks/lane coefficient is negative with permutation p < 0.05, **and**
  its |standardised coefficient| ≥ the age |standardised coefficient|, **and**
  partial R²(trucks | age) ≥ partial R²(age | trucks).
- **partly supported** — negative and significant (p < 0.05) but not meeting both size
  thresholds: at least one of |standardised trucks| or partial R²(trucks | age) falls below
  age's counterpart (i.e. the association is real but age clearly dominates).
- **not supported as stated** — insignificant once age is controlled (p ≥ 0.05).

## Notes declared in advance

- Deck condition is an ordinal 0–9 engineering rating; OLS on it is standard practice in the
  bridge-deterioration literature and is the pre-specified tool, not a claim about the latent
  scale.
- Age and trucks/lane are both rough proxies: year built records the last major construction
  (reconstructed decks reset the clock), and ADT/pct-truck are point-in-time estimates.
- Cross-section only: bridges are observed once in 2023, so this tests whether heavier-used
  decks are rated worse conditional on age, not deterioration rates over time.

## Post-run note (added after the analysis was run, before publication)

The pre-specified rules enumerated the negative-significant, positive-but-below-age, and
insignificant cases. The data produced a fourth case: a **positive and significant**
trucks/lane coefficient. A positive coefficient contradicts the predicted direction, so it is
treated as **not supported as stated**; the detail string in `results.json` states the sign
explicitly rather than claiming the variable "adds nothing". This note is the only change to
the criteria, and it is disclosed here rather than edited into the pre-specified section.

Included code and results