OverviewModelsGarage › How it works

How the Garage model works exp

An experimental model that scores owner-occupied single-family homes on their odds of pulling a garage permit in the next six months, across seven Florida counties.

Experimental — not in production delivery. The Garage model is an early-stage research build: validation only, no outbound list ships from it. It is built on the roofing pipeline as a template — the same permit-classification labels, coverage benchmark, and walk-forward folds — pointed at a different permit type. Everything below is exploration, not a shipped product.

The question: is garage demand even predictable?

Roofing works because roof age is a near-clock — one signal carries roughly half the model. Garage additions have no such clock, so the first thing to settle was whether the demand is predictable at all, or just noise. Finding #87 answered it:

“Garage demand IS predictable — not autocorrelation.”

Two pieces of evidence. First, the model finds real concentration: targeting any GARAGE permit in the next six months over a tiny 0.10% base rate, it ranks far better than random. Second — the important part — the edge is not a “did-garage-before” echo: dropping garage permit history (n_garage_24m) barely moves ship-size lift (15.81× → 15.61×, −1.3% at 15K), and that feature isn't even in the top 20. The demand signal is genuine, driven by diffuse property / owner / permit-activity features.

15.81×
Lift @ 15K over a 0.10% base rate — the garage model on FL-7, eval 2025-10-31 (finding #87)
0.015
AUC-PR — low because the base rate is tiny; judge on lift, not AUC-PR (finding #87)
−1.3%
Lift @ 15K change when garage history is dropped — signal is not autocorrelation (finding #87)

Separately, garage size also helps the roofing list as one of three “lifestyle trim” features (+7.8% relative lift on an FL-6 anchor, finding #85) — a different, secondary result, not this model’s score.

What the model leans on

Per finding #87, no single feature exceeds ~6% of gain — garage demand is diffuse by design, the opposite of roofing's roof-age clock. At a high level it reads four things at once: is the owner in fix-things-up mode (recent permits of any trade), is the property big and valuable enough to justify the work, where it sits (county, storm exposure), and how long the owner has been there.

Owner activity

Months since the last non-roof or building / HVAC permit — the top single feature. An owner mid-renovation is the one who adds a garage.

Property capacity

Lot size, existing garage size, year built, value per living sqft — can they afford it and is the structure worth working on.

Place & storms

County regime and storm exposure (nearest storm name / distance) — the same geographic machinery the roofing model uses.

High-level read only. The full driver breakdown, cluster shares, lift-by-list-size chart, and audit findings live in the model card.

Shared infrastructure

The Garage model is not a separate machine — it reuses the roofing spine wholesale, swapping only the target permit type:

Pipeline spine

Same walk-forward folds, feature stack, and case-control training. Roofing pipeline →

Permit taxonomy

The permit_scope classifier defines the GARAGE label this model targets. Permit classification →

Coverage benchmark

The same Step 2 coverage layer bounds where permit absence is a real signal. Step 2 coverage →

Honest caveats

  • Experimental. Validation-only build; no outbound / CallZeke list ships from it.
  • FL-7 only. Trained and evaluated on seven Florida counties — transferability outside that footprint is untested.
  • Thinner demand than roofing. Garage permits are ~11× rarer (0.10% base rate vs roofing's 1.15%); absolute AUC-PR is low and noisy — judge on lift, not AUC-PR.
  • Single-fold. No 6-window cross-validation yet, and the buy-box age cutoff is domain-reasonable but un-swept.

Read further

Model card

Full metrics, driver clusters, lift-by-depth, and audit. Open the card →

Finding #87

Garage-target model: demand is predictable, not autocorrelation. Read finding →

Finding #89

DS audit + the has-garage / age-≥20 buy-box. Read finding →

Finding #85

Garage as a feature in the roofing model (+7.8% lift trim). Read finding →

Rendered from notes/findings/87_garage_target_model.md + 89 + 85 · experimental model.