Private-contractor detention
weekly capacity signal.
GEO Group (GEO) + CoreCivic (CXW) read from panel-normalized public
signals: USAspending obligations, TRAC ICE ADM, ICE Air flight-hours,
SEC issuer filings, DHS appropriations. Per-facility state classifier,
aggregate ADM backtest, one page.
Facility-state classifier
Each GEO and CXW facility's latest disclosed state from 10-Q transitions
and USAspending contract mods. Pipeline = Awarded + Activating beds —
revenue not yet booked, but contractually committed.
Backtest-implied forecasts
One panel per target series. Each fits leading signals via intercept-free OLS,
aggregates by r², and shows the naïve baselines a model must beat.
Analyst workpapers
Specialist agent reads, before synthesis. Open any card to see the raw analysis.
Backtesting
Walk-forward fold-by-fold predictions for each target. At each held-out
quarter the model is refit on prior history only, then asked to predict
the held-out quarter. Compare the model's predictions to the naïve
baselines that anchor credibility — if the model isn't beating both,
say so honestly.
Data sources & methodology
Every signal in the app, with source, scrape method, coverage, and how
we know there's new data. Live = pulled on every request.
Cron-refreshed = scraper runs Mon 04:00 UTC.
Static-curated = hand-reviewed panel; refresh date stamped per signal.
Known limitations
Things this tool doesn't do, or can't do honestly with the data it has.
Read these before acting on the brief.
-
Historical ADM scraped only Q2 + Q3 for CXW.
CoreCivic's 10-Q operational table reports 3-month + 9-month YTD
columns, which our parser handles cleanly. Q1 10-Qs only carry
3-month, and Q4 figures live in 10-Ks (different table format,
not yet parsed). Curated panel fills 2025Q1 + Q4 for both issuers.
-
GEO ADM is rounded narrative. GEO discloses
U.S. Secure Services compensated mandays as "approximately X.X
million" — one-decimal precision. So clusters of identical printed
ADM values (e.g., 46,027 across 2023Q1 / 2023Q2 / 2024Q1) are an
artefact of the disclosure, not stagnant operations. Walk-forward
MAE on GEO target is correspondingly high (~8pp vs CXW ~2.6pp).
-
Per-facility quarterly occupancy isn't parsed yet.
Facility states are tagged from the latest disclosed transition
event (10-Q + contract-mod). State changes between filings won't
surface until the next 10-Q. Bed capacities for known facilities
come from a static lookup; a live build would join a facility registry.
-
ICE per-diem prints assume FY25 contract terms.
FY26 mid-year repricing (if any) won't be captured until the next
contract modification appears on USAspending.
-
ICE Air flight-hours from watchdog-aggregated logs.
Outliers from unscheduled charters can perturb the QoQ signal. We do
not yet wire ADS-B directly with a tail-number allow-list (TODO);
flight-hour totals are reconciled monthly from witnesses-at-the-border
and UWCHR releases. Only 2025Q1–Q3 quarterly data so far — fitted
window for this signal is N=3.
-
USAspending obligations are FY-level, not quarterly.
Used as a direction-only prior with a quarter-beta discount, not a
fitted feature. Mid-FY contract modifications are tracked separately
but not yet fitted.
-
DHS appropriations bill-text diff is TODO.
We carry the enacted-vs-request line items + a hand-curated language
digest. Full govinfo.gov bill-text diff over time would let us pick up
earmark / rider language live.