{
 "universes_version": "1.0",
 "generated": "2026-09-15",
 "rule": "Every published figure, tool response and benchmark ground truth cites exactly one universe_id. A figure without a universe_id is not citable. Two figures for the same metric are only 'in conflict' if they cite the same universe_id. Rule added 2026-09-15: a universe is declared before its figures exist; a definition reconstructed from a figure is not canonical (cited_external at most). Data present means in-universe unless an exclusion is written in the definition.",
 "universes": {
  "U-FHA-2025-DECISIONED": {
   "description": "All FHA applications reaching a credit decision, 2025",
   "filters": "loan_type=2; action_taken in (1,2,3); HECM (reverse) excluded",
   "count": 1187606,
   "count_rule": "applications",
   "source": "CFPB HMDA 2025 national loan-level file",
   "defined_in": "api/index.json meta.universe; methodology.html",
   "status": "canonical"
  },
  "U-TOP100-VOLUME-2025": {
   "description": "The 100 FHA lenders with the most decisioned applications in U-FHA-2025-DECISIONED",
   "filters": "rank by decisioned_applications, top 100",
   "count": 98,
   "count_rule": "lenders with a published api/lender file and in_top_100_by_volume=true (98 files exist; two of the 100 have no lender file)",
   "defined_in": "fha-denial-rates-top-100.html; api/lender/{slug}.json in_top_100_by_volume",
   "status": "canonical; membership list to be published as one file"
  },
  "U-TOP100-WITH-REASONS-2025": {
   "description": "Members of U-TOP100-VOLUME-2025 that report at least one HMDA denial reason",
   "filters": "U-TOP100-VOLUME-2025 and denial_reason_shares_pct present",
   "count": 95,
   "count_rule": "lenders",
   "defined_in": "api/denial-reasons-top100.json (generated)",
   "status": "canonical for reason-share medians served by get_denial_reason_shares"
  },
  "U-PEER-MEDIANS-2025": {
   "description": "The peer set used for peer_medians in api/index.json (DTI 40.3, incomplete 1.8, ...)",
   "filters": "NOT WRITTEN DOWN: produced by the offline HMDA pipeline; the set and the share definition are not recoverable from any file in this repository",
   "count": null,
   "count_rule": "unknown",
   "defined_in": "api/index.json national.peer_medians",
   "status": "cited_external \u2014 output of the offline pipeline (api/index.json national.peer_medians, vintage 2025, generated by the HMDA pipeline outside this repository); source and date recorded, definition not published; NOT canonical; not used by the benchmark or by any generated page. Becomes a claim only when the pipeline and its universe definition live in this repository."
  },
  "U-REASON-FILE-2025": {
   "description": "Lender set of data/incomplete-reason-2025.json",
   "filters": "the file says '~94 largest' but records n_lenders=70; definition inconsistent with itself",
   "count": 70,
   "count_rule": "lenders",
   "defined_in": "data/incomplete-reason-2025.json method",
   "status": "RETIRED 2026-09-15 \u2014 superseded by U-TOP100-WITH-REASONS-2025; file kept for the record, not cited"
  },
  "U-STATES-SMALLBIG-2025": {
   "description": "States and territories with published small-loan (<$150K) and big-loan (>$250K) FHA denial rates",
   "filters": "api/state/{xx}.json with both bands present",
   "count": 48,
   "count_rule": "states incl. PR",
   "defined_in": "api/small-loan-penalty.json (generated)",
   "status": "canonical",
   "scope": "all US jurisdictions with reported data: 50 states + DC + PR, wherever both loan-size bands have published rates (48 as of 2025-09-15). Rule, dated 2026-09-15: data present means in-universe unless an exclusion is written here. No exclusion is written; Puerto Rico is in."
  }
 },
 "citations": {
  "benchmark.json q1": "U-FHA-2025-DECISIONED",
  "benchmark.json q2": "U-TOP100-VOLUME-2025",
  "benchmark.json q3": "U-TOP100-VOLUME-2025",
  "benchmark.json q4": "U-STATES-SMALLBIG-2025",
  "benchmark.json q5": "U-TOP100-WITH-REASONS-2025",
  "benchmark.json q6": "U-STATES-SMALLBIG-2025",
  "benchmark.json q7": "U-TOP100-VOLUME-2025",
  "benchmark.json q8": "U-TOP100-WITH-REASONS-2025",
  "benchmark.json q9": "U-FHA-2025-DECISIONED restricted to metro; metro lender threshold >=100 decisioned",
  "api/denial-reasons-top100.json": "U-TOP100-WITH-REASONS-2025",
  "api/small-loan-penalty.json": "U-STATES-SMALLBIG-2025",
  "data/incomplete-reason-2025.json": "U-REASON-FILE-2025 (retired)",
  "how-often-are-fha-loans-denied.html reason table": "U-TOP100-WITH-REASONS-2025",
  "MCP get_denial_reason_shares": "U-TOP100-WITH-REASONS-2025",
  "MCP get_small_loan_penalty": "U-STATES-SMALLBIG-2025",
  "MCP get_national_fha_stats": "U-FHA-2025-DECISIONED",
  "claims/*.json (189)": "U-FHA-2025-DECISIONED unless the passport's claim.subject narrows it"
 },
 "open": [
  "Publish the top-100 membership list as one file and cite it from every top-100 figure",
  "Bring the HMDA pipeline (or its universe definitions) into the repository so peer_medians can become a claim",
  "Extend check_benchmark_key.py to the five non-numeric ground truths (q10\u2013q12 and name-type answers)"
 ]
}