Validation report · City of Los Angeles — Open Budget: Appropriations
Version v0001 Currently published
Result
0 hard-failure checks triggered (0 occurrences); 2 review-warning checks triggered (3,177 occurrences). Hard failures block publication outright. Warnings never block on their own, but publishing requires the operator to accept them explicitly.
Reconciliation
Every row in the file becomes exactly one record. Rows are never dropped, merged, or repaired. Blank amounts are counted here and left out of the dollar totals; they are not treated as $0.
| Measure | Source file | Stored records | Dashboard (unfiltered) | Check |
|---|---|---|---|---|
| Data rows | 30,316 | 30,316 | 30,316 | ✓ match |
| Rows with blank amount | 3,175 | 3,175 | 3,175 | ✓ match |
| Total appropriation | $63,668,595,549 | $63,668,595,549 | $63,668,595,549 | ✓ match |
By fiscal year
| Fiscal_Year | Rows | Blank amount | Total | Dashboard | Check |
|---|---|---|---|---|---|
| 2018 | 4,748 | 0 | $9,292,134,656 | $9,292,134,656 | ✓ match |
| 2019 | 4,932 | 0 | $9,899,768,481 | $9,899,768,481 | ✓ match |
| 2020 | 4,436 | 0 | $10,710,077,843 | $10,710,077,843 | ✓ match |
| 2021 | 4,388 | 0 | $10,531,278,041 | $10,531,278,041 | ✓ match |
| 2022 | 4,219 | 0 | $11,480,288,113 | $11,480,288,113 | ✓ match |
| 2023 | 7,593 | 3,175 | $11,755,048,415 | $11,755,048,415 | ✓ match |
To check these numbers without this project's code, run python3 -I scripts/independent-check.py <file.csv> (Python standard library only).
Before and after
Compared with an empty store (first import), matched on the stable key (Fiscal_Year + Dept_Code + SubDept_Code + Prog_Code + Source_Fund_Code + Account_Code).
Exceptions
| Type | Finding | Occurrences |
|---|---|---|
| Review warning | MEASURE_MISSING — Measure is blank in the source (kept as 'not provided', excluded from totals)Show 25 of 3,175
| 3,175 |
| Review warning | MEASURE_NEGATIVE — Measure is negativeShow 2 of 2
| 2 |
What was checked
Required columns: all 14 published columns, matched by name. Required non-blank fields: Fiscal_Year, Dept_Code, SubDept_Code, Prog_Code, Source_Fund_Code, Account_Code, Department_Name. Stable key: Fiscal_Year + Dept_Code + SubDept_Code + Prog_Code + Source_Fund_Code + Account_Code. Size limits: 25 MB and 200,000 rows per file.
Hard failures (block publication)
FILE_TOO_LARGE— File exceeds the size limitFILE_EMPTY— File is empty or has no data rowsNOT_UTF8— File is not valid UTF-8 textBINARY_CONTENT— File contains NUL bytes (binary content)CSV_MALFORMED— CSV structure could not be parsed (quoting or column count)TOO_MANY_ROWS— Row count exceeds the limitMISSING_COLUMN— Required column is missing from the headerUNEXPECTED_COLUMN— Header contains a column not in the agreed schemaDUPLICATE_COLUMN— Header repeats a column nameREQUIRED_BLANK— Required field is blankINVALID_NUMBER— Numeric field is not a plain number (digits, optional minus and decimals; the measure allows at most 2 decimals)FIELD_TOO_LONG— Field exceeds the length limitDUPLICATE_KEY— Two or more rows share the same stable key
Review warnings (need explicit acceptance)
MEASURE_MISSING— Measure is blank in the source (kept as 'not provided', excluded from totals)MEASURE_NEGATIVE— Measure is negativeSURROUNDING_WHITESPACE— Value has leading or trailing spaces (kept as published)FORMULA_LIKE_TEXT— Text begins with = + - or @ (spreadsheet-formula risk; escaped in CSV export)SUM_MISMATCH— A total does not equal the sum of its partsRECORDS_REMOVED— Records present in the published version are absent from this fileGROUP_ADDED— A group value appears that the published version does not haveGROUP_REMOVED— A group value in the published version is absent from this fileGROUP_TOTAL_SHIFT— A group's measure total changed by more than the review threshold
Limitations
- Validation checks that this file is internally consistent and was loaded completely and exactly. It does not certify that the City's original figures are correct, complete, or final.
- Totals exclude rows whose measure is blank in the source. Those rows are counted and listed separately; they are not treated as zero.
- The City does not publish per-column definitions for this dataset. Field descriptions in this project are interpretations of column names and the dataset description.
- The meaning of Fiscal_Year (for example, whether 2023 means the year ending June 2023) is not stated by the source and is shown as published.
- Amounts are nominal US dollars as published, not adjusted for inflation.