Skip to main content
pyFIA’s estimators are the easiest way to work with FIA data — but sometimes you want the raw SQL: to validate a result against EVALIDator, to adapt a query for a one-off analysis, or to understand exactly how an estimate is built. This library is a collection of tested SQL queries that run directly against the FIA database (DuckDB or any engine with the standard FIADB schema). Each one is translated from Oracle EVALIDator and verified to match the official results.
These queries operate on the raw FIA tables (POP_STRATUM, TREE, COND, …) using EVALID-based filtering. For day-to-day analysis, prefer the Python API — e.g. volume() — which applies this same methodology for you.

Categories

Basic tree counts

Tree enumeration with diameter-based adjustment factors and population expansion.

Biomass & carbon

Species-specific biomass with moisture and specific-gravity adjustments.

Forest area

Area by forest type group from condition proportions.

Forest change

Area change over time using the subplot condition-change matrix.

Mortality

Growing-stock mortality by cause, disturbance, and with stratified variance.

Volume

Net merchantable volume by diameter class.

How these queries work

Every query follows the same EVALIDator pattern:
  1. EVALID filtering (POP_STRATUM.EVALID = …) selects one complete, valid evaluation.
  2. Adjustment factors (ADJ_FACTOR_MICR / SUBP / MACR) correct for the nested plot design, chosen by tree diameter.
  3. Expansion factors (EXPNS) scale plot measurements to population totals.
  4. Domain filters (STATUSCD, COND_STATUS_CD, …) restrict to the population of interest.
See How FIA estimation works for the methodology behind these pieces.
Source .sql files live in the repository under reference/queries/ — each page links to its query file.