Case study
Sixteen economic and market dashboards built in R and Quarto, pulling public data at render time through a charting package I wrote to keep them consistent.
Sixteen economic and market dashboards covering inflation, the jobs report, interest rates, monetary policy, housing, energy, consumer conditions, GDP by industry and by state, and market and volatility updates.
Each page is a literate document rather than a report: prose explaining what an indicator actually measures, interleaved with the R that fetches the series and draws the chart. Nothing is a pasted screenshot, and no figure is maintained by hand.
Public economic data is free, deep, and almost unusable raw. The series that matter are scattered across FRED, BLS, BEA, and market feeds under opaque symbol codes, and the interesting question is usually a transformation (year over year, a rolling average, a state-by-state comparison) rather than the raw level.
The usual workaround is to pull a series into a spreadsheet, chart it, and screenshot the chart. That chart is wrong a month later and nobody notices. Anything worth publishing had to refresh itself.
Every page is a Quarto document with R chunks that pull each series at render time through tidyquant's FRED interface, reshape it with tidyverse and timetk, and render an interactive Plotly chart with hover labels, plus reactable and gt tables where a table reads better than a chart. Freeze is deliberately off, so a render is a fresh pull and a published chart cannot quietly go stale.
The part that matters is that I stopped copy-pasting chart code between pages. The ticker universe, the cleaning functions, the plotting wrapper, the recession shading, and the palette live in one R package of my own that all sixteen pages call into, so a change to the house style lands everywhere at once. It is version-pinned and reused by a second property, which is what took it from a personal convenience to shared infrastructure.
The parts worth pointing at
Where the engineering decisions actually mattered.
This is the analytics counterpart to the product work elsewhere on this site. Happy to get into the R package, the pull-at-render-time model, or how one package ended up serving two very different sites.