Expectations / Methodology
Survey of Professional Forecasters expectations layer: methodology
This route is a read-only expectations layer over data/parquet/spf_point.parquet, the normalized point-forecast export built by scripts/build_spf.py. It publishes what the Federal Reserve Bank of Philadelphia's Survey of Professional Forecasters (SPF) respondents said. It does not fit a model, smooth a series, or infer any missing expectation off-platform.
1. Source and local coverage
- Primary source: Federal Reserve Bank of Philadelphia, Survey of Professional Forecasters (SPF).
- Cadence: quarterly. Per the Philadelphia Fed SPF FAQ, the questionnaire is sent on the day the BEA releases its first estimate of GDP, the deadline is about 10 days later, and publication is about three days after the deadline.
- Local parquet on disk:
spf_point.parquet, 86,074 rows,kind='point'only, surveys from 1968Q4 through 2026Q2. - Current official site status: the Philadelphia Fed had already published 2026Q3 on August 14, 2026 when this page was built. The page states this plainly and still reports the repo-local 2026Q2 vintage, because the publication boundary here is the local parquet, not the live website.
2. What is selected
The page surfaces five headline SPF variables from the broader file:
| Code | Official variable name | Official definition / unit | Why it is on the page |
|---|---|---|---|
RGDP | Real Gross National Product/Gross Domestic Product | Billions of real dollars. Seasonally adjusted. Annual rate. Real GNP prior to 1992; real GDP 1992-present. | Real activity level |
CPI | CPI Inflation Rate | Annualized percentage points. Seasonally adjusted. Based on quarterly average index level. | Headline inflation |
COREPCE | Core PCE Inflation Rate | Annualized percentage points. Seasonally adjusted. Based on quarterly average index level. | Core inflation measure the Fed watches closely |
UNEMP | Civilian Unemployment Rate | Percentage points. Seasonally adjusted. Quarterly average. | Labor-market slack |
TBOND | 10-Year Treasury Bond Rate | Percentage points. Not seasonally adjusted. Quarterly average. | Long risk-free rate |
The full SPF parquet carries many more variables (NGDP, EMP, INDPROD, HOUSING, BOND, BAABOND, long-horizon inflation series, implied real rates, and others). They stay in the file but are not surfaced on this page.
3. Mean versus median
The SPF parquet carries both stat='mean' and stat='median'. The route exposes that choice explicitly in the URL and on the page header:
?stat=median= the median consensus?stat=mean= the mean consensus
No chart or table mixes the two silently. Every figure on a given render uses exactly one statistic.
4. Horizon grammar
The SPF point sheets use the Philadelphia Fed's horizon grammar, preserved verbatim in the parquet:
1: prior quarter's preliminary value2: current-quarter nowcast3to6: one to four quarters aheadAtoD: current calendar year through three calendar years aheadLR: long-run value (not used on this route)
The page's quarterly path begins at 2, not 1, because horizon 1 is not a forward quarter.
5. What each exhibit computes
Latest path table
For the latest survey round in the local parquet, the table shows:
- quarterly horizons
2to6 - annual horizons
A,B, andC
These are direct SPF point forecasts from spf_point.parquet. No transformation is applied other than row/column layout.
Revision table
For the same five variables, the revision table compares the latest local survey against the immediately previous local survey:
- current-quarter nowcast revision = latest
horizon='2'minus priorhorizon='2' - four-quarters-ahead revision = latest
horizon='6'minus priorhorizon='6' - next-calendar-year revision = latest
horizon='B'minus priorhorizon='B'
These are differences between two published SPF consensus points, not model-implied deltas.
Vintage chart
The vintage chart uses UNEMP because it has the cleanest realized comparator already on disk:
- each thin line is one SPF unemployment forecast path from survey quarter through four quarters ahead (
2to6) - surveys shown: 2019Q1 through 2025Q2
- realized line: quarterly average of monthly
UNRATEfromfred_macro.parquet
Why UNEMP and not an inflation series for the realized line? Because UNEMP maps directly to the observed quarterly average unemployment rate. For CPI and core PCE, the official SPF definitions are based on quarterly average index levels and annualized inflation arithmetic, so a truthful realized comparison would need a carefully matched transformation. This route deliberately avoids improvising that transformation.
6. Out of scope by design
spf_micro.parquetindividual-respondent dispersion- probability-bin SPF series
- any FinObservatory nowcast or forecast
- any subscriber-only gating
This page is the consensus layer only.