Skip to content
FinObservatory

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:

CodeOfficial variable nameOfficial definition / unitWhy it is on the page
RGDPReal Gross National Product/Gross Domestic ProductBillions of real dollars. Seasonally adjusted. Annual rate. Real GNP prior to 1992; real GDP 1992-present.Real activity level
CPICPI Inflation RateAnnualized percentage points. Seasonally adjusted. Based on quarterly average index level.Headline inflation
COREPCECore PCE Inflation RateAnnualized percentage points. Seasonally adjusted. Based on quarterly average index level.Core inflation measure the Fed watches closely
UNEMPCivilian Unemployment RatePercentage points. Seasonally adjusted. Quarterly average.Labor-market slack
TBOND10-Year Treasury Bond RatePercentage 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 value
  • 2: current-quarter nowcast
  • 3 to 6: one to four quarters ahead
  • A to D: current calendar year through three calendar years ahead
  • LR: 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 2 to 6
  • annual horizons A, B, and C

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 prior horizon='2'
  • four-quarters-ahead revision = latest horizon='6' minus prior horizon='6'
  • next-calendar-year revision = latest horizon='B' minus prior horizon='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 (2 to 6)
  • surveys shown: 2019Q1 through 2025Q2
  • realized line: quarterly average of monthly UNRATE from fred_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.parquet individual-respondent dispersion
  • probability-bin SPF series
  • any FinObservatory nowcast or forecast
  • any subscriber-only gating

This page is the consensus layer only.