Skip to main content

QCT Table Generator -- QCT Designation Algorithm

HUD.GOV HUDUser.gov
Dataset Banner Image

QCT Table Generator -- QCT Designation Algorithm

QCT Table Generator -- QCT Designation Algorithm

This page provides the algorithm used to designate the 2024 Qualified Census Tracts (QCTs). Carefully following this algorithm and applying it to data extracted from this site should allow you to reproduce the 2024 QCT designation results. Variable names, highlighted as bold-italic, refer to those used in the data extract.

The 2024 QCT designations rely on 3 sets of ACS data.
  1. Compute average household size ((P1 - P5) / H1) with a cap of 8 and a floor of 1. Set average household size to zero if there are no households (P5 = 0).



  2. Note: Repeat steps 2 through 4 below for each set of ACS data: 2015-2019; 2016-2020; and 2017-2021. The 2015-2019 data provided here has already been converted to 2020 census tracts. See the Federal Register notice for directions on how the conversion was performed.

  3. Compute the tract average household size adjusted income limit (TAHSAIL) rounded to the dollar. The adjustment is minus 10 percent for every person less than 4, and plus 8 percent for every person more than 4, relative to (1.2 * VLIL_4_Person). For example, if tract average household size is 2.25, TAHSAIL = 0.825 * (1.2 * VLIL_4_Person); if tract average household size is 1, TAHSAIL = 0.70 * (1.2 * VLIL_4_Person); and if tract average household size is 8, TAHSAIL = 1.32 * (1.2 * VLIL_4_Person).

  4. Compute the ratio of the TAHSAIL to the tract median household income B19013est1. Set TAHSAIL equal to zero if the margin of error for the tract median household income estimate B19013me1 is at least half of the tract median household income estimate B19013est1, or if there are no households (P5 = 0).* Set the TAHSAIL ratio equal to zero if the margin of error is missing. A tract is eligible by the income criterion if the tract median household income is less than or equal to the TAHSAIL (the ratio is greater than or equal to 1), meaning 50 percent or more of tract households have incomes below the TAHSAIL, for at least 2 of the 3 evaluation years.

  5. Compute the poverty rate as the ratio of the population below poverty to the population for whom poverty status has been determined (B17001est2 / B17001est1) rounded to 3 decimal places; but set the poverty rate to zero if the margin of error for the estimate of the population below poverty B17001me2 is at least half of the estimate of the population below poverty B17001est2, or the margin of error for the estimate of the population for whom poverty status has been determined B17001me1 is at least half of its corresponding estimate B17001est1.* Set the poverty rate to zero if either margin of error is missing. A tract is eligible by the poverty criterion if the poverty rate is 0.250 or higher, for at least 2 of the 3 evaluation years.



  6. * When converting 2015-2019 data to 2020 census tract boundaries, an ACS estimate was determined valid if all of the 2010 tract parts with at least 10 percent of the 2020 tract's population had a valid estimate, using the same standard in steps 3 and 4 (the margin of error was less than half of the estimate).


  7. Average the poverty rates that pass the margin of error test in step 4. Average the ratios of the TAHSAIL to the tract median household income that pass the margin of error test in step 3. Set any average equal to zero if it is missing.

  8. The CBSA or state nonmetropolitan population is given as AREA_POP. If the aggregate population of all eligible census tracts is not more than than 20 percent of AREA_POP rounded to the nearest person, then all of the eligible tracts are designated QCTs, and the process is complete. If the aggregate population of the eligible census tracts exceeds 20 percent of AREA_POP rounded to the nearest person, then continue with the following steps.

  9. Within each CBSA, where QCT_Area_Code is the grouping variable, (note that the value of CBSA is 100000 x STATE for nonmetropolitan tracts), rank all tracts ascending order by averaged poverty rate and separately by averaged ratio of the TAHSAIL to the tract median household income. If multiple tracts are tied, assign each one the same rank, equal to the average of the ranks that they would be assigned with a tiebreaker. For example, if 4 tracts are tied for 3rd place, then each tract gets rank (3+4+5+6)/4 = 4.5, and the next tract in line gets rank 7.

  10. Compute the average ranking by summing the two rankings and dividing by 2, and adding 10,000 to the average rank if the tracts are eligible under both criteria. Ineligible tracts are assigned an average rank of zero.

  11. Sort the tracts within each CBSA in descending order by average rank (primary sort) and P1 (secondary sort, i.e., if two tracts have the same average rank, the larger population tract should come first). Starting with the highest average ranked tract, designate as QCTs, and sum the P1 population of, the eligible tracts working down the list until adding the P1 of the next eligible tract would cause the cumulative population of designated tracts to exceed 20 percent of AREA_POP rounded to the nearest person. DO NOT designate this tract, but check for other eligible tracts with smaller populations ranked below to see if any can be designated QCTs without exceeding the cap.


To determine the census tract number for a particular address, visit the HUD User GIS Service -- Low-Income Housing Tax Credit Qualified Census Tract (QCT) Locator.

| HUD Home Page | HUD User Home | Data Sets | Qualified Census Tracts and Difficult Development Areas |

Problems or questions? Contact helpdesk@huduser.gov.