Method
1. Sources
We started from HUD’s list of the 2,117 public housing authorities that administer Housing Choice Vouchers. For each authority we looked for its utility allowance schedule on its own website. Earlier schedules that are no longer online were taken from Internet Archive copies of the authority’s pages.
The release holds schedules from 622 authorities. Together they administer 69.4% of all vouchers (HUD, Picture of Subsidized Households 2025).
Each file is kept exactly as published. We record where it came from, the archive copy where one was used, the date it was retrieved and its SHA-256 checksum.
| Source files | Files |
|---|---|
| Typed PDF | 2,495 |
| Scanned PDF | 581 |
| Web page | 41 |
| Image | 25 |
| Spreadsheet | 16 |
| Word document | 15 |
| Other | 1 |
| Total | 3,174 |
2. Effective dates
A schedule takes the effective date printed on it. If no date is printed, we use the date the authority gives on its web page, then the date in the file name. A schedule published for public comment counts toward a year only when later evidence shows it was adopted.
| Effective date taken from | Schedules |
|---|---|
| The schedule itself | 1,715 |
| The authority’s web page | 211 |
| The file name | 117 |
| A notice published for comment | 50 |
| The archive date of the file | 1 |
3. Reading the amounts
| Source | How amounts are read | Amounts |
|---|---|---|
| Typed PDFs | From the text layer, with each amount’s position on the page | 862,464 |
| Scanned pages | OCR, several passes per page, digits compared across passes | 232,957 |
| Poor scans | Kept only where the OCR digits and two further independent readings of the page image agree | 33,784 |
| Web pages and Word files | From the table cells | 7,335 |
| Spreadsheets | From the cells | 4,127 |
Every amount keeps the file, page, table, row and column it was read from, so any row can be checked against its source.
Each printed row label is mapped to fixed categories: utility, fuel, building type and bedroom size. The label as printed stays in the row next to its category.
4. Second reading
All 2,506 scanned pages with amounts were read a second time, independently of the first reading. The two readings were then compared amount by amount. Where they differ, the amount is flagged and the second reading is recorded in the row (3,928 amounts).
We also drew a random 11% of all pages with amounts (1,043 pages, 116,655 amounts) and read them a second time:
| On the random sample | Same in both readings |
|---|---|
| Amount | 99.13% |
| Utility and fuel | 96.6% |
5. Consistency checks
The same rules run on every amount. 92.0% of amounts (1,049,444) pass all of them. An amount that fails a rule stays in the release, marked flagged, with the reason in its row.
| Most common reasons for a flag | Amounts |
|---|---|
| Two different amounts for the same line and size in one schedule | 26,805 |
| Several amounts printed on one line for the same size | 22,573 |
| Printed label and assigned category differ (the printed label decides) | 20,865 |
| Two rows of one table map to the same line and size | 19,031 |
| Amount lower than at the next smaller bedroom size | 14,399 |
| Independent reads of a scanned page disagree | 13,670 |
| Heating, cooking or water-heating line without a fuel | 11,131 |
6. What is not entered
A table printed twice in the same schedule, such as an English and a Spanish copy, is entered once. 53,791 repeated amounts are not entered.
Printed total rows are not entered, because they add up lines already in the table (641).
Utility studies often print usage figures and rate calculations next to the allowances. Those pages are not read as allowances (3,446).
7. Corrections
To report an amount you believe is wrong, write to hello@allowances.dev with the authority and the page. We check it against the source document. If the error is confirmed and you reported it within 30 days of delivery, you get a corrected file. Buyers of yearly updates also get corrections in every new release.