Measurement one of two

How complete is California's historical fire perimeter record?

FRAP publishes the answer in prose: the dataset is the most complete digital record of fire perimeters in California, and it is still incomplete. This page turns that sentence into counts, per year and per field, so anyone building on the data can see the shape of what is there before they rely on it.

Three states, field by field

A cell can hold a value, hold a published code or marker meaning the value could not be determined, or hold nothing. Counting only the third of those would make several fields here look complete when they are not. Cause is the clearest case: no cause cell is empty, and a large share of them carry the published code for Unknown / Unidentified. Collection method behaves the same way, which is what FRAP's release note about editing null collection methods to Unknown describes.

Perimeter fields, each counted in three states
FieldRecorded valueRecorded as unknownEmpty cellValue presentSplit
Year
YEAR_
23,25707799.7%
IRWIN ID
IRWINID
3,633019,70115.6%
Alarm date
ALARM_DATE
17,95005,38476.9%
Containment date
CONT_DATE
10,716012,61845.9%
Fire name
markers: n/a (72), none (1), unknown (12). Basis: inferred. At least one value this field declares is documented nowhere, and was read off the acquired file by this project. See docs/MARKERS.md
FIRE_NAME
16,666856,58371.4%
Local incident number
markers: 00000000 (12,469). Basis: inferred. At least one value this field declares is documented nowhere, and was read off the acquired file by this project. See docs/MARKERS.md
INC_NUM
9,91012,46995542.5%
Fire number (historical use)
markers: 00000000 (3,620), <null> (3). Basis: inferred. At least one value this field declares is documented nowhere, and was read off the acquired file by this project. See docs/MARKERS.md
FIRE_NUM
13,5213,6236,19057.9%
Cause
markers: 14 (10,514). Basis: published. Every value this field declares is a code in the layer's own coded-value domain, or a value the publisher's documentation states
CAUSE
12,82010,514054.9%
Collection method
markers: 8 (15,081). Basis: published. Every value this field declares is a code in the layer's own coded-value domain, or a value the publisher's documentation states
C_METHOD
8,25315,081035.4%
Management objective
OBJECTIVE
23,063027198.8%
Reporting agency
AGENCY
23,28604899.8%
Unit
UNIT_ID
23,27406099.7%
State
STATE
23,33400100.0%
GIS calculated acres
GIS_ACRES
23,33400100.0%
Complex name
COMPLEX_NAME
618022,7162.6%
Complex ID
markers: 00000000 (1). Basis: inferred. At least one value this field declares is documented nowhere, and was read off the acquired file by this project. See docs/MARKERS.md
COMPLEX_ID
583122,7502.5%
Decade
DECADES
18,06405,27077.4%

Markers listed under a field name are the exact text this project reviewed for that field before counting it as a marker rather than as a value. A field number of all zeros, for instance, is counted apart from recorded numbers, because reading it as an identifier would make thousands of unrelated fires appear to share one incident.

Each field also carries the basis its markers rest on. A published basis means the value is a code in the layer's own domain, which anyone can re-read at the endpoint listed under Provenance below. An inferred basis means the publisher documents no such code and this project read the value off the file. Both are counted the same way; they are not worth the same confidence, so the page says which is which rather than leaving a reader to assume. The full audit, with the evidence and the effect of each call on the numbers above, is in docs/MARKERS.md.

Records per year, and IRWIN linkage inside each year

IRWIN is the federal incident identifier that links a perimeter to a federal incident record. FRAP's own release notes describe the newly added Global ID as covering records "pre-dating IRWIN IDs", so its absence on older records is expected rather than surprising. What the dataset does not publish alongside itself is where the identifier starts appearing and how much of each recent year carries one. Years no record names are absent from this table rather than shown as years with zero fires, because the data cannot tell the difference between a year with no fires and a year whose fires are missing.

Perimeter records per fire year, with IRWIN ID coverage inside each year
Fire year Records IRWIN ID present IRWIN ID absent Present Split
18781010.0%
18951010.0%
18961010.0%
18985050.0%
1900120120.0%
19021010.0%
19032020.0%
19051010.0%
19064040.0%
1907100100.0%
1908160160.0%
1909240240.0%
1910900900.0%
191116601660.0%
1912560560.0%
1913840840.0%
191410501050.0%
191513201320.0%
191613101310.0%
191726602660.0%
191812901290.0%
191916501650.0%
192013101310.0%
192116001600.0%
192211601160.0%
192312501250.0%
192424802480.0%
1925910910.0%
192618801880.0%
1927990990.0%
192816701670.0%
192915401540.0%
193010701070.0%
193121502150.0%
193211601160.0%
1933730730.0%
193413201320.0%
1935810810.0%
193612301230.0%
1937590590.0%
193810001000.0%
193915101510.0%
1940880880.0%
194111101110.0%
194210101010.0%
194311401140.0%
194413501350.0%
194514801480.0%
194610201020.0%
194712101210.0%
1948650650.0%
194917001700.0%
195022602260.0%
195121902190.0%
195217201720.0%
195321702170.0%
195415701570.0%
195517101710.0%
195613301330.0%
195715301530.0%
195816701670.0%
195920402040.0%
196014201420.0%
196116701670.0%
196210901090.0%
1963780780.0%
196413701370.0%
1965590590.0%
196613201320.0%
196711101110.0%
196821002100.0%
196913101310.0%
197023302330.0%
197110901090.0%
197215401540.0%
197315001500.0%
197420602060.0%
197521002100.0%
197613301330.0%
197716701670.0%
197815201520.0%
197936503650.0%
198031903190.0%
198127102710.0%
198214501450.0%
198315901590.0%
198421102110.0%
198521002100.0%
198617201720.0%
198728402840.0%
198825602560.0%
198917901790.0%
199017401740.0%
1991870870.0%
199219501950.0%
199317101710.0%
199421702170.0%
199520602060.0%
199631703170.0%
199718801880.0%
199816301630.0%
199927402740.0%
200018001800.0%
200120702070.0%
200224402440.0%
200333903390.0%
200427602760.0%
200530403040.0%
200631403140.0%
200734803480.0%
200843904390.0%
200925402540.0%
201020702070.0%
201131703170.0%
201235103510.0%
201329602960.0%
20142361528464.4%
201531417314155.1%
201636321215158.4%
201761141419767.8%
201841621120550.7%
20193182289071.7%
20205044574790.7%
20213883216782.7%
20223072911694.8%
20232852691694.4%
202455343611778.8%
20255214695290.0%
No year recorded770770.0%

Surviving records against the published collection criteria

FRAP names the acreages agencies submit against, and separately records that some fires are missing for having been "too small for the minimum cutoffs". These are counts of records that are present and sit below each named acreage. A record below a threshold is not an error and is not evidence of one: the criteria quoted are the current ones, earlier eras used different cutoffs that this project has not established, and a fire may be submitted for reasons other than size. The counts are here so that a reader can see how much of each decade sits near the numbers FRAP names.

Surviving perimeter records per decade against each published collection acreage
Decade Records Acreage recorded Under 10 acresUnder 50 acresUnder 300 acres
1870s11000
1890s77000
1900s707021339
1910s1,3241,32473236774
1920s1,4791,47981233748
1930s1,1571,157108270694
1940s1,1551,15570226564
1950s1,8191,819122320737
1960s1,2761,27699316627
1970s1,8791,8792706221,138
1980s2,2062,2061845681,291
1990s1,9921,9921795711,170
2000s2,9052,9052651,1392,018
2010s3,4293,4298431,9292,734
2020s2,5582,5587051,5982,112
No year recorded77770743

Records sharing an identifier

FRAP states that known errors "include duplicate fires". These are counts of records that share an identifier or an identifying combination. They are candidates and nothing more. Deciding that two records describe one fire is a judgment about geometry and history, and this project downloads no geometry and makes no such judgment. Each row keys only the records carrying every part of that key, so a low count is never produced by missing values quietly padding the total.

The year, unit and incident-number row depends on one judgment call worth stating plainly. The all-zeros local incident number is counted as a placeholder rather than as a number, so records carrying it are not keyed. Reading it as a number instead would key 22,361 records and report 12,230 of them as sharing a key, nearly all of that produced by unrelated fires in one unit and one year sharing a value that stands in for no number. That counterfactual is counted rather than asserted: it is in the JSON artifact beside this page under marker_counterfactuals. Nothing FRAP publishes documents the all-zeros value, so the call is an inference from the file, and docs/MARKERS.md sets out the evidence behind it.

Perimeter records sharing an identifier or an identifying combination
Key Records carrying the whole key Distinct keys Keys used more than once Records sharing a key
irwin_id
Records sharing one IRWIN ID. IRWIN is the federal incident identifier, so a repeat means two perimeter records point at one federal incident.
3,6333,618823
year_unit_incident_number
Records sharing a fire year, reporting unit and local incident number. Local incident numbers repeat between units by design, so the unit is part of the key; without it this count would be inflated by unrelated fires.
9,9019,644119376
year_name_acres
Records sharing a fire year, fire name and GIS acreage rounded to the nearest acre.
16,59616,5613166

Methodology and the caveats this page operationalizes

Every measurement on this page exists because the dataset's own documentation says the limitation is there. The quotes below are California Department of Forestry and Fire Protection's words, taken from the dataset description on the retrieval date, beside what this project counted in response.

Completeness

Although the dataset represents the most complete digital record of fire perimeters in California, it is still incomplete, and users should be cautious when drawing conclusions based on the data.

Counted as: Records per fire year, published as counts of what is present, with no year interpolated and no year invented for a record that carries none.

Missing perimeters

This data should be used carefully for statistical analysis and reporting due to missing perimeters (see Use Limitation in metadata). Some fires are missing because historical records were lost or damaged, were too small for the minimum cutoffs, had inadequate documentation or have not yet been incorporated into the database.

Counted as: Records per decade counted against each acreage named in the published collection criteria, so a reader can see how much of each decade sits near the cutoffs.

Collection criteria

CAL FIRE (including contract counties) submit perimeters ≥10 acres in timber, ≥50 acres in brush, or ≥300 acres in grass, and/or ≥3 impacted residential or commercial structures, and/or caused ≥1 fatality. All cooperating agencies submit perimeters ≥10 acres.

Counted as: The 10, 50 and 300 acre thresholds are the ones counted against, and they are labelled as the current criteria rather than applied backwards to eras whose cutoffs this project has not established.

Duplicates and generalization

Other errors with the fire perimeter database include duplicate fires and over-generalization. Additionally, over-generalization, particularly with large old fires, may show unburned “islands” within the final perimeter as burned.

Counted as: Counts of records sharing an identifier or an identifying combination, published as candidates. Over-generalization is a property of the polygons, which this project does not download and does not assess.

IRWIN linkage

A new field, Global ID, was added to provide a unique ID to track all fire records in this dataset including those pre-dating IRWIN IDs.

Counted as: IRWIN ID coverage per year, which shows where the federal identifier begins to appear and how much of each recent year carries one.

Null to Unknown

A count of 12,097 fires' collection methods were edited from Null values to Unknown.

Counted as: Collection method counted in three states rather than two, so the cells this edit moved are visible as recorded unknowns instead of disappearing into an apparently complete field.

Provenance

Dataset
California Historical Fire Perimeters
Publisher
California Department of Forestry and Fire Protection, Fire and Resource Assessment Program
Landing page
https://data.cnra.ca.gov/dataset/california-historical-fire-perimeters
Layer read
California Fire Perimeters (all)
Endpoint
https://services1.arcgis.com/jUJYIo9tSA7EHvfZ/arcgis/rest/services/California_Historic_Fire_Perimeters/FeatureServer/0/query
Licence
Creative Commons Attribution
Version
firep25_1
Retrieved
2026-08-07
Acquired
23,334 records, 7,964,688 bytes
SHA-256
9be7bcb9c08f6813ba13263eabebc96256f0ea8fb0e809ad8a4171046466a16a

Attributes were read without geometry, so nothing on this page describes the shape, extent or accuracy of any polygon. Over-generalization, which FRAP lists among the known issues, is a property of the geometry and is therefore outside what this page measures.