2026-09-03 · Economy
FEMA lists nearly 23,000 reconstruction projects for Puerto Rico
For the press in Puerto Rico that follows the recovery money, the starting point is not a tweet nor a cabinet summary: it is the open dataset Public Assistance Funded Projects Details v2 from OpenFEMA. The official page clearly describes what it contains and what it does not contain. It includes Public Assistance (PA) projects that have already been obligated —that is, with financial obligation to the grant recipient— and lists the applicants alongside each funded Project Worksheet (PW). Projects still open in stages prior to obligation do not appear. That technical boundary matters: obligated ≠ disbursed ≠ completed work ≠ closeout.
The API endpoint is https://www.fema.gov/api/open/v2/PublicAssistanceFundedProjectsDetails. To filter by territory, the field stateAbbreviation eq 'PR' is used. When querying the count metadata with $inlinecount=allpages (and $top=0 to not pull rows), the system reported 22,995 PA project detail records associated with Puerto Rico in the run observed on September 15, 2026 (UTC time of the API rundate). That number is a row count from the dataset, not a total in dollars. Whoever sums amounts must label the exact metric of the field they use.
The money fields that the dataset documentation distinguishes include, among others, federalShareObligated (federal share obligated to the grantee/State for the approved PW of the sub-grantee) and totalObligated (eligible federal share plus administrative costs of the grantee and the applicant). OpenFEMA's own description clarifies that the typical federal share is 75 percent of the eligible project cost, although in major disasters in Puerto Rico that rate has been subject to public policy adjustments that the journalist must verify in the declaration and in amendments, not invent. There are also projectAmount, mitigationAmount, firstObligationDate, and lastObligationDate. Obligated ≠ disbursed: the funded project details dataset refers to obligation, not checks cashed or physical progress.
To contextualize by disaster, the same filter by disasterNumber allows you to see the distribution of rows. In the same query window, DR-4339 (Hurricane María, declaration on September 20, 2017) concentrated 11,352 rows of obligated PWs in PR; DR-4671 (Hurricane Fiona, September 21, 2022) had 2,858; DR-4336 (Hurricane Irma, September 10, 2017) 120; DR-4473 (Earthquakes, January 16, 2020) 793; and DR-4850 (Tropical Storm Ernesto, November 27, 2024) 283. Again: these are counts of worksheets in the dataset, not sums of millions or billions. They are useful to prioritize reporting and to detect if a municipality or damage category is overrepresented in project volume, not to invent a “total of aid”.
Damage categories (damageCategoryCode / damageCategoryDescrip) structure the infrastructure narrative. In live samples from DR-4339, for example, codes such as E (Buildings and Equipment) and G (Parks, Recreational Facilities, and Other Items) appear, along with the project size (projectSize: Large/Small), the municipality (county), the application title (applicationTitle), and the process status (projectProcessStep, for example Obligated or Pending Project Closeout Initial Review). A specific PW of María in the API sample showed federalShareObligated of 665,995.5 dollars for statewide field operations; another, in Toa Alta, 355,322.7 dollars. Citing a row as an educational example is legitimate; extrapolating that row to a “total for the Island” is not.
How to work with the dataset without misleading the public: (1) always separate obligated from awarded, allotted, and disbursed; (2) cross-check the applicantId with the sister dataset Public Assistance Applicants when it is necessary to identify the applicant; (3) use $select to fetch only the necessary fields and paginate with $skip/$top because the PR volume is large; (4) note the date of lastRefresh or the rundate from the metadata, because OpenFEMA updates and yesterday’s total is not tomorrow’s; (5) do not confuse a PW count with the progress of the work in the field. The transparency here is methodological: show the data pipeline so that the audience understands why two headlines may quote different figures without either necessarily being ‘theft’.
For Caribbean reporting, the value of this hub is practical. It allows you to ask COR3, a municipality, or a public agency: is this PW already obligated in OpenFEMA? When was the first and the last obligation? What category of damage does it cover? The amount you cite, is it federalShareObligated or projectAmount? This battery of questions turns a federal dataset into a tool for local scrutiny. It also allows you to compare Irma, María, the earthquakes, Fiona, and Ernesto using the same taxonomy, instead of mixing press releases with incompatible units.
This dataset does not include —and that must also be said— individual household assistance (Housing Assistance / IHP), HUD CDBG-DR/MIT funds, and DHS OIG audit findings. OpenFEMA PA is the X-ray of public assistance to governments and certain eligible applicants, not the complete map of recovery. Anyone covering housing, the electric grid, or mitigation must open other datasets in the same ecosystem, starting with the OpenFEMA Data Sets index and the declaration pages. Cousin of this note: none. Topic: economy. Primary source: OpenFEMA page of the dataset Public Assistance Funded Projects Details v2.