# Auto Credit Intelligence · Rebuild It

how to reproduce every number from EDGAR yourself.

Live page: https://getbookiq.com/intel/#rebuild

---

Every number on this desk can be rebuilt from public filings with no paid data. This page walks the full chain, filing to pixel, with the exact field names and formulas, so any figure here can be audited or reproduced independently.
THE DEAL TAPES (DEALS, THE MARKET, COHORTS)
1
FIND THE DEAL ON EDGAR
Every SEC-registered auto ABS files form ABS-EE monthly. Search the shelf name at efts.sec.gov or browse the trust's CIK. Each filing's EX-102 exhibit is an XML file with one record per loan, per Schedule AL of Regulation AB (17 CFR 229.1125). A subprime deal's tape runs 100-250MB per month. 144A deals file nothing, which is why the Perimeter tab's dark list exists.
2
PARSE THE LOAN RECORDS
Stream-parse the XML keeping the Schedule AL fields used here: reportingPeriodBeginningLoanBalanceAmount, reportingPeriodActualEndBalanceAmount, currentDelinquencyStatus (days past due), paymentExtendedNumber (cumulative extensions per loan), chargedoffPrincipalAmount, recoveredAmount, zeroBalanceCode, originationDate, originalLoanAmount, originalLoanTerm, obligorCreditScore, repossessedIndicator, state, new/used. One month becomes one panel slice; all months stack into a loan-by-month panel.
3
INTEGRITY GATES BEFORE ANY MATH
De-duplicate on (loan id, period): servicers re-file amended tapes and both copies land on EDGAR; without this gate one month double-counts (it moved a measured CNL from 3.4% to 6.0%). Backfill the earliest months a date-filtered download missed. Reject any deal with a calendar gap in its tape: a missing month understates losses in a way that looks like good performance.
4
INITIAL POOL
init_balance = sum of every loan's beginning balance on the deal's FIRST monthly tape. That figure is the denominator for the pool factor and cumulative net loss, which is why step 3's backfill matters: start the tape three months late and every loss number reads better than reality.
5
THE MONTHLY DEAL ROW
Pool factor = active balance ÷ initial pool. Monthly net loss = charged-off principal minus recoveries, summed over loans that month. CNL = running sum of net losses ÷ initial pool. Recovery rate = cumulative recoveries ÷ cumulative charge-offs. Repo share = balance of loans flagged repossessed ÷ active balance.
6
EXTENSION-ADJUSTED DELINQUENCY
The flagship number. Reported 60+ = balance with currentDelinquencyStatus ≥ 60 ÷ active balance, straight off the tape. The adjusted series adds back loans that are CURRENT today but were extended within the trailing 6 months, detected as a period-over-period increase in the loan's cumulative paymentExtendedNumber. Logic: an extension moved the loan to current without a payment catching up, so for six months it is counted as if still delinquent. The gap between the two lines, in bps, is the masking metric. Extension stock = share of pool balance touched by an extension in the trailing 6 months.
7
ROLL RATES
Join month t to month t+1 on loan id. Bucket by DPD (current / 30-59 / 60-89 / 90+), weight by balance at t. Current→30+ = share of current balances at t that are 30+ (or charged off) at t+1. Same construction for worsening, cures, and 60+→charge-off. An extension can pull a loan back to current, but it re-enters this roll the next month, which is why the roll is the hardest series here to flatter.
8
VINTAGE COHORTS (THE COHORTS TAB)
Group loans by origination year (each loan counted once, at first appearance; cohorts under 300 loans dropped). Months on book = calendar months since originationDate. Cumulative gross charge-off = running charged-off principal within the cohort ÷ the cohort's summed originalLoanAmount. The 60+ curve divides by the cohort's still-active balance at each month. Ever-extended = share of the cohort's observed loans with paymentExtendedNumber > 0 by that month. First-60+ outcomes take each loan's first month at 60+ DPD, then classify its end state: charged off, paid (zero-balance code 1), removed (codes 2/3), or still active.
9
BANDS AND TIERS
Deal-vs-peer comparisons are computed at equal SEASONING (months since first tape), never by calendar date. The Market tab aggregates deals into prime and subprime, balance-weighted by calendar month, the same segmentation the public trackers publish, with the number of deals behind every point shown.
THE FILER STATEMENTS (FILERS, FILER READ)
10
COMPANY DATA
SEC companyfacts API: one JSON per company with every XBRL fact ever filed. Each normalized field resolves to ONE tagged concept per filer, ranked by recent coverage; the resolved tag, plus the accounting taxonomy's own label and definition, is shown at the bottom of every Filer Read. Quarterly flows are derived by differencing fiscal year-to-date spans, which survives filers mis-tagging YTD values on quarterly spans.
11
OUTCOME EVENTS
Hand-curated and document-verified. EDGAR's 8-K item metadata is not trustworthy (a solvent lender's filing is mis-tagged Item 1.03, Bankruptcy); every event was confirmed by reading the filed document, and a Form 25/15 counts as a company exit only when no periodic report follows it.
REBUILD COMMANDS
cd "Edgar Research /files"
python3 run.py --trusts trusts.csv --since 2024-01-01
python3 run.py --trusts trusts_prime.csv --since 2023-11-01
cd "../../Subprime Intel"
python3 tools/backfill_early.py  # opening tapes --since cut off
python3 tools/recompute_ext.py   # extension metrics, ALL panels, every time
python3 tools/fetch_facts.py && python3 tools/build_panel.py  # filer side
python3 tools/build_abs.py       # deal side + market + cohorts
cp data/*.json ../taperead-site/intel/data/  # bump DV, deploy
Full method docs: Subprime Intel/RUNBOOK.md and the pipeline's METHOD.md. Sources are exclusively SEC EDGAR: ABS-EE asset data files and companyfacts XBRL. No licensed data anywhere in the chain, which is the point: anyone can check the work.
