Numbers that keep moving after they are announced
The advance estimate of US GDP for the second quarter of 2020 was an annualised fall of 32.9 per cent. It now reads about 28 per cent. Neither number is wrong. The second one simply has more of the source data behind it, and every decision made in August 2020 was made on the first.
That is true of almost every economic statistic a dashboard shows: the figure on screen today is not the figure a reader saw on the day it was announced. A chart drawn from today’s numbers quietly answers a question nobody asked, and the gap between the two only shows up when someone goes looking for it.
The FRED dashboard demo is built to make that gap visible. It carries forty-seven headline US economic series (output, prices, jobs, interest rates, housing, trade, energy and the federal balance sheet) with the value as first published saved alongside the value as it stands today. Open it, tick a couple of series, and try the two controls under the headings below.
One stream, one router, four views
Everything on the page, the table of series, the chart, the KPI tiles and the month-by-month readings table, is drawn from a single stream of data handed to one Data Router. Tick a series in the table and nothing reloads: the router narrows what the chart, the tiles and the readings table receive, each through its own keyed update, so scroll position and sort order survive a change that would restart a page built the ordinary way. Untick it and the same thing runs in reverse.
That is the pattern worth taking away for your own dashboard, not just this one. A router in front of plain views means a table, a chart and a set of tiles can all read the same feed without any of them knowing the others exist, so a filter, a selection or a rewind reaches every view at once instead of being wired into each one separately.
Rewind the whole dashboard, or replay one series
Two controls put that same router to work on the calendar rather than a filter. A timeline across the top of the page lets you rewind the entire dashboard to any month back to 2015: move it and the tiles, the chart and the table all repaint with the numbers as they stood on that day, at the values published by then. Set it to 30 April 2020 and the federal funds rate reads 0.65, oil reads 20.51 and real GDP reads 18.99 trillion, because those were the published figures on that date, not the revised ones sitting in the snapshot today.
A second tab, “As first published”, does the same thing for one series at a time. Pick real GDP growth, nonfarm payrolls, the unemployment rate or one of the other headline series, choose a vintage, and a chart overlays the numbers as they were announced against the numbers as they stand now. It opens on the day that series’ biggest revision was first published, worked out from the data itself.
Both controls call the same one-liner on the router:
router.scrubTo('2020-04-30', { by: 'time' });
Every reading was pushed in as a change stamped with the day it was published, so a later revision is simply a later change to the same row. Moving the slider does not fetch anything new: it replays the stream up to that date and rebuilds every view from it.
The second line on every heading
A number is only useful next to its unit, and the table keeps the two together rather than making you check a legend. The Series column carries a name on its first line and the unit underneath it in the same cell, so “Real gross domestic product” reads “Chained 2017 dollars, billions” directly below it without a second look. Columns that could be misread carry the same treatment in the heading itself: “On a year earlier” is split into one column in percentage points and one in per cent, each heading naming which, because a 0.2-point move in an interest rate and a 0.2 per cent move in a price index are different facts wearing the same number.
The month-by-month readings table does the same for the series it pivots into columns: the heading’s first line is the series name, the second is its unit and its FRED identifier, in a smaller face, there for anyone who wants to look the series up and easy to ignore for anyone who does not.
A chart drawn from the same rows
The chart under the table is not a separate load with its own request. It reads from the same router as the table above it, so ticking a series adds its line without a refetch and unticking removes it the same way. Recession bands sit behind the lines as a declarative annotation layer rather than as rows in the data. Switch between level, change on the period before, change on a year earlier, or an index rebased to a chosen month, and the chart redraws from the rows it already has.
What this means for your own data
Most dashboards are built as if every number is final the moment it lands on screen. Revised data breaks that assumption quietly: the chart still draws, the tiles still update, and nobody notices that today’s picture is not the picture a decision was actually made on. Keeping the history and giving a reader a way to step back into it turns “what did we know then” from a question that needs a spreadsheet into a control on the page.
Try the dashboard against your own instinct for what the numbers “obviously” say, then rewind it to a date before you decide you were right.