Banbura 2013 - News Decomposition and Real-Time Vintages

Summary

A nowcast revises only because of news: the part of a release that differs from the model’s expectation. The revision equals a weighted sum of news terms with model-implied weights, which generalises the Kalman update to asynchronous releases and lets one say which release moved the nowcast and why.

Overview

Setup: consecutive vintages ; . Data revisions of past observations are abstracted away in the theory (the application separates them: total change = effect of news + effect of revisions).

Main Content

News

with : the part of each new figure orthogonal to (unexpected relative to the model).

Nowcast revision as weighted news

By the projection property of conditional expectation,

with . Components for a diagonal : and ; the Kalman filter and smoother supply the moments. If there is no news the nowcast is not revised. Filter uncertainty decreases with the release and that reduction decomposes along the same lines.

Contrast with the “change in overall contribution” measure of Bańbura & Rünstler (2011): that also changes when correlated predictors are exploited without new information, so news is the better tool for attributing revisions. Partial models (bridge, MIDAS) have no joint model and cannot produce news.

Real-time design. Out-of-sample evaluation uses true data vintages from ALFRED (St. Louis Fed), not “pseudo real time” with final revised data, which ignores revisions that can be sizable (Croushore 2011). Updates at the 7th, 14th, 21st and 28th of each month; model re-estimated each time.

Application findings (US GDP, 24 series). Total filter uncertainty from the start of the quarter to the GDP release falls 0.066 → 0.015; 92% of the reduction comes from macro (monthly/weekly) releases, 8% from daily financial data; the large spikes are the employment report, smaller ones industrial production; previous-quarter GDP matters little once current-quarter information arrives. In the 2008Q4 nowcast, September industrial production (published mid-October) caused the largest downward revision, confirmed by later surveys and hard data; daily financial news was large but volatile and of mixed sign, so net effects cancel.

Examples

Scalar news

Prior nowcast of quarterly growth 0.5%. A release has model expectation 100.0 and prints 98.0 (news ). With weight the nowcast falls by to 0.20. A print of 100.0 would change nothing even if its level is strong.

import numpy as np
def news_weights(Pxx, Zy, Zr, H):
    """Pxx: prior state cov (smoother) for stacked [target-state, release-state]; Zy,Zr: loading rows."""
    cov_yA = Zy @ Pxx @ Zr.T
    cov_AA = Zr @ Pxx @ Zr.T + H
    return cov_yA @ np.linalg.inv(cov_AA)        # D_{v+1}

Connections

For E98 (real-time GDP/GDI vintages) a vintage-specific “revision noise” term plays the role of data revisions separated from news. Marketing: attribute changes in a latest-weeks MMM estimate to specific data feeds arriving.

See Also

Banbura et al 2013 - Now-casting and the Real-Time Data Flow - Overview · The Kalman Filter