build_data_20260918 returns a data frame containing geocoded location-project-year military construction spending data, for projects in the United States and overseas.
Format
A data frame of location-project-year observations including the following variables:
fiscal_yearFiscal year of the project.
state_countryTwo-letter state or country code as reported. Overseas codes mix ISO2C with legacy FIPS 10-4 and DoD codes.
state_country_nameReadable form of the state or country as reported. The only form available for codes such as ZU (Unspecified Worldwide Locations), which have no country identifier.
iso3cISO three character country code. NA for unspecified and worldwide locations. The 392 lines of FY2007-FY2016 that are filed under "Unspecified Worldwide Locations" but name a U.S. installation in their project title (
"USA-224: Fort Hood, TX") carry"USA";state_countryandlocation_nameare left as the report prints them, and the installation and state are inlocation_full_name.gwcodeGleditsch and Ward country code. The G&W list has no code for a dependency, so territories carry the custom codes the troop data use for the same places: Puerto Rico 6, Greenland 1002, Diego Garcia 1004, Guam 1008, the Northern Mariana Islands 1011, the U.S. Virgin Islands 1013, Wake Island 1014, American Samoa 1041 and Ascension Island 1042. NA for unspecified and worldwide locations.
location_nameInstallation or location, in title case with initialisms preserved. The reports write the same place in block capitals one year and title case the next; a derived list of protected tokens keeps forms like
"MCAS Iwakuni","MacDill AFB"and"RAF Lakenheath"intact.location_name_reported,project_title_reportedThe location and project title as the source sheet wrote them, before case harmonization.
location_full_nameThe address sent to the geocoder: the location followed by the country, or by the state and
"United States". NA for rows that are not geocoded.location_codeComptroller location code.
latitude,longitudeCoordinates of the location, kept only where the geocoded point falls inside the country or state the row is filed under. NA for rows filed under no country (unspecified, worldwide and classified locations), for locations that are a label rather than a place (
"Various Locations"), and where no point inside the country or state was found. A point inside the right country is not always the installation: a geocoder that does not know a place answers with the centre of the country, or with another place of the same name. The installations found to be placed that way are corrected by hand (geo_sourceis"manual"); the few that could not be located have no coordinates.geo_sourceWhere the coordinates came from: the geocoding service that resolved the location (
"arcgis"for every geocoded row in the current data), or"manual"for a point entered by hand fromdata-raw/geocode_overrides.csv, which records what each point is and the page it was read from.organizationService or agency, harmonized across years to full names:
"Army","Navy","Air Force","Defense-Wide","Special Operations Command"and other defense agencies. Marine Corps construction is carried in the Navy accounts and has no value of its own; guard and reserve components appear inappn_title.organization_reportedThe organization string as the source sheet wrote it, before harmonization.
project_number,project_titleProject identifier and description. The title is in title case with initialisms preserved.
appn_amount,auth_amount,auth_appn_amount,toa_amountAppropriation, authorization, authorization of appropriation, and total obligational authority, in thousands of current US dollars. Negative values occur for rescissions and reprogramming.
appn_titleAppropriation account title.
budget_activityBudget activity number. Meaningful only within an appropriation account: activity 1 is major construction in the MILCON accounts but FY 2005 BRAC, new construction or direct loan subsidy in others.
budget_activity_titleBudget activity, harmonized to one label per activity across years. The source workbooks write these inconsistently, with case variants, abbreviations, truncations and typos.
budget_activity_title_reportedThe budget activity label as the source sheet wrote it, before harmonization.
facility_category_title_reportedThe facility title as the source sheet wrote it, before case and abbreviation harmonization.
facility_category_code,facility_category_titleThe three-digit DoD facility category code and its title, in sentence case with initialisms preserved. One code maps to exactly one title.
facility_group_titleThe coarse level of the DoD facility taxonomy, in sentence case. The reports carry it under three different headers – "Facility Group Title", "Fiscal Category Title", and, in the most recent years, the facility category column – and all three are collected here. Kept separate from
facility_category_title, the finer three-digit level of the same taxonomy, though the split is a reconstruction rather than something the reports maintain;get_builddata()therefore searches both columns from its singlefacility_categoryargument.transaction_typeType of budget action, where reported (
"BUDGET","REPROGRAM", rescissions). NA for most rows.sheet_typeWhich kind of sheet the row came from:
"base"for regular fiscal-year sheets, or"oco"for an overseas contingency operations exhibit. The other supplemental exhibits restate lines of the regular sheets and are not in the data.source_file,source_sheet,source_rowWorkbook and sheet the row was read from, and its position in that sheet counting from 1 below the header. Together they identify one line of one report. A report can list two projects that agree in every other column, and this is what tells them apart.
report_yearLatest fiscal year covered by the source workbook, i.e. the report vintage. Consecutive reports restate the same fiscal years, and every fiscal year here comes from the most recent report that covers it.
is_requestTRUE where the row is a budget request rather than an enacted figure: the fiscal year is the terminal year of its source report, or the row comes from a request sheet. That is all of FY2016, whose later reports are not among the source files, and 26 lines of FY2010 from the overseas contingency operations request sheet (
"C1_2010_OCO_Req") that are on no enacted sheet.classificationSecurity classification marking carried on the row,
"U"for unclassified. FY2011 onward.dollar_typeKind of dollar figure the row reports (
"Budget"or"Congressional Rescission"). FY2003-FY2005.existing_missionWhether the project supports an existing mission, as reported. FY2003-FY2005.
peProgram element. FY2003-FY2004.
percent_recapitalizationShare of the project classed as recapitalization. No values: only the FY2008 report printed it, and the years it covers are taken from later reports.
state_country_sortSort key the source sheet used for the state or country column. FY2006.
Value
Returns the full data frame containing location-project-year observations of U.S. military construction spending, compiled from the DoD Comptroller Annual Report C-1 exhibits. All amounts are in thousands of current US dollars. Each fiscal year is taken from the most recent report that covers it, so a project-year appears once, and each row is one line of that report.
Year coverage
The C-1 exhibit layout changed over time, and a later
report does not always print what an earlier one did, so several fields are
reported only for a subset of years: transaction_type and
appn_title FY2001-FY2002; pe FY2003-FY2004;
dollar_type and existing_mission FY2003-FY2005;
location_code FY2000-FY2006; facility_category_code FY2000
and FY2003-FY2006; project_number FY2000-FY2006 and FY2013 onward;
state_country_sort FY2006; classification FY2011 onward;
facility_category_title FY2003-FY2005, FY2007-FY2021 and FY2026;
facility_group_title FY2000 and FY2007 onward;
state_country_name FY2006 and FY2009 onward. FY2006 reports
appropriations only, so toa_amount, auth_amount,
auth_appn_amount and budget_activity_title are missing for
that year; toa_amount and auth_appn_amount are also missing
for FY2000, and budget_activity_title for FY2000 and FY2008. The
workbooks that supply FY2004-FY2007 give the service of an Army, Navy or
Air Force line in their "Treasury Agency" column rather than under
"Organization"; organization is filled from it, and
organization_reported holds the letter printed there ("A",
"N" or "F"). The series runs FY2000 through FY2026.
