Center for Federal Accountability › Reports

JSON Normalization Contract (FederalRegister → cfa-reports)

Standardized JSON shape used to generate Documentation.AI MDX hubs and drill-down detail pages from FederalRegister report outputs.

This documentation defines the JSON contract for the cfa-reports documentation generator pipeline.

Why normalization exists

FederalRegister report streams (FederalRegister/scripts/run_report.py) have different JSON shapes. The normalization layer converts each report stream into a consistent hub/detail-friendly structure stored in cfa-reports/docs/data/.

Common top-level fields (required)

Every normalized file under cfa-reports/docs/data/ must include:

Common per-item fields (required)

Each element of documents[] must include:

Per-report extras (optional)

Generators may also render extra fields inside the ExpandableGroup on detail pages. These fields should live either:

Open-comment parity

For open_comment:

MDX safety requirement

If overview or title originates from FederalRegister HTML-like fields: