Within the FOMC long-run natural-rate band (4.0–5.0%). Product defaults unchanged.
Tier A default holds
Underwriting posture unchanged. KYC income-verification copy standard. No retier banner.
Macro context sits beneath every institutional product decision — credit tiers, AML thresholds, margin calls, advisor copy — but it almost never appears in the UI. This concept takes four Federal Reserve series (UNRATE · CPI · 10Y Treasury · VIX) and reshapes them from chart-library demo into the information object a senior PM, risk lead, or portfolio manager actually reads: latest value, YoY delta, 5-year percentile, regime band. One line of product intent per series. No forecasting theater.
When unemployment moves 0.6 points in a quarter, a consumer credit app should be quietly retiering its default risk thresholds — not waiting for a quarterly model refresh. When CPI prints above 3% YoY, the advisory copy in a wealth platform needs to stop saying "with inflation near target." When VIX closes below 15, margin-call calibration can ease; when it prints above 30, it must tighten. The reason these adjustments happen slowly today is not that the data is unavailable — it's that the data is not designed as a product input. This concept fixes that.
FRED publishes over 800,000 time series. The selection problem is itself the first design decision. Four series earn their panel because each maps cleanly to a product default a mid-sized fintech already sets — and gets wrong by default because the context isn't surfaced.
Drives default risk tier thresholds in consumer credit products. When unemployment rises above regional norms, tier cut-offs should tighten and onboarding copy should acknowledge the macro environment.
Anchors inflation-adjusted thresholds in AML monitoring and the baseline assumption in every piece of advisor copy that says "with inflation near target." The 2% target is an editorial default; CPI YoY is the observed truth.
The benchmark rail for every fixed-income advisor UI. Portfolio valuation deltas, discount-rate assumptions, and rate-sensitive product card copy all inherit from this single number.
Position-sizing defaults, margin-call stress calibration, and "market stress" dashboard pills all respond to VIX regime. Volatility is the single most under-represented signal in consumer investing UIs.
Each of the above is an interesting research series. None of them changes a product default in the next 24 hours. The bar for inclusion is: does this number alter a decision a product team would make this week? These four pass. Others fail.
Forecasting is a different product than sensing. Cones imply probabilistic claims this surface does not make. The Kronos-inspired prediction cone lives in the AI trading demo, not here. Macro Signal reports; it does not predict.
Every panel carries the same four-line information object — and in exactly that rank order, because that's the order a risk or product lead actually reads:
The current print, in its native unit, tabular-numerals. No compression, no abbreviation. 4.3% reads; 4.30% reads; "4.3% unemployment" does not — the label is already carrying that work.
Percentage-point deltas for rates (UNRATE, DGS10). Percent-change for indices (CPI, VIX). The distinction is not pedantic — a 0.1 point rise in unemployment is a different statement than a 0.1% rise in an index, and the colour coding inverts: for UNRATE and VIX, up is red; for CPI, deviation from 2% is red. Designed so a red glyph always means the same thing to the reader: default may need to tighten.
"4.3% unemployment" reads differently at the 67th percentile than at the 15th. The percentile is the single field that most consumer dashboards omit, and it's the field that converts an isolated number into a product decision. Tone-mapped: 0–35 good (green), 35–65 neutral, 65–85 elevated (amber), 85+ alert (red).
Full employment · Expansion · Slowdown · Recessionary. Calm · Normal · Anxious · Panic. These are not technical bands — they are the language a product copywriter or a compliance officer can use downstream without translation. The current band is highlighted in its tone colour; the others stay dim as reference vocabulary.
The line enters once on mount. It never ticks, pulses, or breathes. Animation on financial data introduces perceived latency — professionals notice, and they stop trusting the surface. Provenance dot is the single live element on the panel.
The chart is a shape, not a table. If the reader needs a specific value, the KPI row above carries it. A crosshair with a tooltip duplicates the work and doubles the read time.
Two series on one axis is a research tool, not a product surface. The panel is the unit. If a PM needs to see CPI and DGS10 together, they open two panels — which is exactly what this grid already gives them.
The data is 100% Federal Reserve. There is no model, so there is nothing to label. Adding a "powered by AI" badge to a surface that reports BLS prints would be a form of trust laundering.
FRED's fredgraph.csv endpoint returns a valid CSV but does not include a CORS header,
which blocks browser-side fetch. Three options were on the table:
.github/workflows/fred-refresh.yml in the repo plan.data/fred/macro.json. Zero runtime dependency. The honest trade is freshness: the dashboard shows the data as of build time, not live.
Option 3 is the right call for a concept deliverable because it lets the design conversation be about
the information object, not the infrastructure. The same module (js/modules/macro-signal.js)
works against any same-origin macro.json — swap the build-time file for a nightly-refreshed
one and the UI layer doesn't change.
Macro Signal is designed as a component, not a page. In the portfolio's own product set, it has three obvious homes:
--accent, --space-*, --text-*).prefers-reduced-motion honoured — no entrance stagger, no crosshair magnet.All series sourced from the Federal Reserve Bank of St. Louis (FRED) public API. Fetched via the fredapi Python client at build time and committed as a single JSON artifact. No intraday polling, no live credentials in the browser, no quota exposure. Ed's Python pipeline handles the fetching, schema normalization, and JSON shaping — the page reads a static artifact.
Four routing rules, rebuilt as a sandbox. Move the slider for each series to simulate next month's print — the regime chip, the routing destination, and the downstream product surface all re-evaluate live. This is what the panel does in production when FRED publishes a revision. The sliders aren't cosmetic — they expose the logic that makes the panel a product input rather than a chart library demo.
Within the FOMC long-run natural-rate band (4.0–5.0%). Product defaults unchanged.
Tier A default holds
Underwriting posture unchanged. KYC income-verification copy standard. No retier banner.
Above the FOMC 2% target. Inflation disclosure copy live on advisory surfaces.
Disclosure banner active
Advisor disclosure chip visible on every allocation screen. AML notional cap × 1.1.
Between real-neutral (~2.5%) and policy-tight (~4.5%). Duration tilt is neutral.
Bond explorer · YTM sort
Default sort remains yield-to-maturity ascending. No duration-risk banner on portfolio view.
Between the 20y median (~15) and the anxious threshold (20). Standard position sizing.
Standard position sizer
Default position size at 100% of account-tier ceiling. No stress pill on open orders.
The playground runs on the same regime table the production panel reads. Thresholds at 4.5 / 6.0 / 8.0 (UNRATE), 2.0 / 3.0 / 5.0 (CPI), 2.5 / 4.5 / 5.0 (DGS10), and 15 / 20 / 30 (VIX) live in a single config surfaced to product leads — not buried in a chart component.
A routing line in a diagram is an assertion. Four UI mockups are the evidence. Each card below is a realistic slice of the downstream screen the panel re-defaults. Typography, component shapes, and copy voice are portfolio-grade — because the hand-off from panel to product happens at this fidelity, not at the block-diagram level.
A component is not finished when it renders the happy path. It is finished when every state has been drawn and reasoned about. The anatomy breakdown shows the eight elements a single panel carries; the state gallery below is the full matrix of what the panel looks like when the data is slow, wrong, missing, or changing in front of you.
FRED endpoint unreachable. Last known print: 18.2 · 3 days ago.
Release delayed · no new print since Feb 12, 2026.
Regime moved Expansion → Slowdown. Retier trigger fired.
| Latest | YoY | Pct | Regime | |
|---|---|---|---|---|
| UNRATE | 4.3% | +0.4pp | 72 | Full emp. |
| CPI | 3.3% | +0.4pp | 84 | Above |
| DGS10 | 4.3% | +0.6pp | 72 | Normal |
| VIX | 18.2 | −2.1 | 40 | Normal |
Four live demos stitched into one shell. Each tab is a working tool — not a screenshot — so a visiting hiring manager can feel how a macro print propagates through a product surface in under a second. Built with the same wiring as the production rollout: FRED & BLS primary sources, CBOE white-paper thresholds, Wolfsberg risk posture. Portfolio fixture sourced from the FinceptTerminal open-source demo book.
Sixteen composite regimes where unemployment meets inflation. Click a cell to see the named regime, a confidence score, and the three product surfaces it triggers.
Drag the points — or pick a historical preset — to reshape the curve. The inversion detector, recession probability and product surfaces update in real time. Sources: Federal Reserve H.15, Campbell-Harris inversion literature, NY Fed yield-curve model.
Real portfolio sourced from the FinceptTerminal open-source demo book. Slide rate, equity, and volatility shocks to watch position-level P&L, margin requirement, VaR and the recommended hedge refresh live.
| Sym | Name | Qty | Price | Market value | Stressed Δ$ | Δ % |
|---|
Eighteen macro releases filtered by impact. Each flagged row shows the product surface that should be readied — advisor disclosures, tier reviews, cross-border watchlists. Feed originates from the ForexFactory scrape in the FinceptTerminal repo; product-default mappings are additions by this team.
| Time (UTC) | Ccy | Event | Impact | Forecast | Previous | Product surface |
|---|
Eighteen curated institutional headlines ranked by impact and routed to the product surface that should react. Filter by category, search by keyword, and watch the pinned spotlight for the highest-impact item first. Feed pattern inspired by the open-source TrendRadar approach — RSS-first, multi-source, product-default routing.
Five tabs sharing one source of truth: the same four FRED series that drive the production signal panel further up the page feed regime classification, curve sandbox, stress test, calendar and news radar — the only way a platform earns the right to call itself one. Every tab routes to the same product defaults that ship on the real signal panel.
The panel is cosmetic if it does not terminate in a default somewhere downstream. Each of the four series is mapped to a concrete surface and a concrete change — at threshold boundaries, the product does work on its own. The wiring below is the routing contract. It is the reason a PM signs off on the panel in the first place, and it is what a risk officer asks to see second (right after provenance).
Fourteen product surfaces routed from four macro series. Every routing rule is a version-controlled constant the panel surfaces — the panel is the human-readable face of a config file a PM can sign off on in a review. If a threshold moves, the panel regenerates and the routing changes with it. Designers do not own the numbers; designers own the routing. That is the job.
FRED.org owns the data. Bloomberg Terminal owns the traders. Refinitiv Eikon owns the sell-side desks. Koyfin owns the independent analyst. TradingView owns the retail chartist. Each makes a different set of trade-offs on the same four primitives. The teardown below is the reason this panel exists: the product-routing column is empty for every incumbent — not because they can't build it, but because their business model does not reward it.
| Capability | FRED.org | Bloomberg Terminal | Refinitiv Eikon | Koyfin | TradingView | This panel |
|---|---|---|---|---|---|---|
| Latest-print chrome | Numeric in table row | Orange RT print · BLP ticker | Headline card · refresh ticker | Numeric above chart | Last price in crosshair | Tabular · unit · YoY sub |
| YoY delta semantics | Absent (raw series only) | CHG · user picks window | Comparable period toggle | YoY default + %Δ | Chart annotation only | Unit-aware (pp vs %) |
| 5-year percentile context | Absent | HP() formula · user build | Via workspace template | Absent | Absent | First-class KPI row |
| Regime bands with names | Absent | EE<GO> custom only | Absent | Absent | User-drawn zones | Named · colour + word |
| Product-routing intel | Out of scope | Out of scope | Out of scope | Out of scope | Out of scope | Trigger · Now · Surface |
| Annotation priority | NBER recession bars | News stream inline | Reuters alerts | Note pin on chart | Community ideas feed | Regime cross only |
| Mobile reading density | Desktop-only table | Desktop client | App · feature-parity gap | Web-responsive | Native mobile parity | Single-col 375px stack |
| Licensing posture | Free · public domain | Subscription · ~$32K/yr | Subscription · ~$22K/yr | SaaS · tiered | Freemium · ads | Build-time · free |
Swipe horizontally on mobile. The product-routing intel row is the claim: nobody else treats a macro print as a product input. Every incumbent treats it as content. That is the gap. Senior product designers at fintech companies live in that gap.
A regime band is only as legitimate as the source that backs the boundary. Round numbers — 4% unemployment, 2% inflation, 30 VIX — feel arbitrary in a product until you can point at the BLS methodology paper, the FOMC statement, the CBOE white paper, or the NBER recession dating committee. The log below is what I hand to a risk officer when they ask "why that number and not a different number".
| Series | Boundary | Regime transition | Source | Why this number |
|---|---|---|---|---|
| UNRATE | 4.5% | Full employment → Expansion | BLS CES & CPS methodology (2024 revision) | Natural-rate centre of 4.0–5.0% band published by FOMC SEP median since 2019. |
| UNRATE | 6.0% | Expansion → Slowdown | Sahm Rule · FRB Finance & Economics Discussion 2019-055 | Three-month avg rising 0.5pp above 12-mo low — threshold aligns with documented recession trigger. |
| UNRATE | 8.0% | Slowdown → Recessionary | NBER Business Cycle Dating Committee | Sustained print > 8% has coincided with every declared US recession since 1948. |
| CPIAUCSL | 2.0% YoY | Below target → On target | FOMC Statement of Longer-Run Goals (Jan 2012, reaffirmed annually) | Explicit Fed target. Below-target is as much a policy signal as above-target. |
| CPIAUCSL | 3.0% YoY | On target → Above target | FOMC SEP symmetric tolerance band | SEP median forecast band rarely prints above 3% in equilibrium — crossing this is a stance change. |
| CPIAUCSL | 5.0% YoY | Above target → Overheating | BLS CPI-U series · historical 5y percentile | Pre-2021 5-year max was 2.9% YoY. 5% is the 99th percentile of the post-1990 distribution. |
| DGS10 | 2.5% | Low rate → Normal | FRB H.15 Release · 20-year median | Post-GFC 20-year median approximates the real-rate-plus-target-inflation long-run anchor. |
| DGS10 | 4.5% | Normal → Elevated | FOMC Summary of Economic Projections · long-run neutral | Above SEP long-run neutral (~2.5%) plus SEP long-run inflation (~2%) puts 4.5% at policy-tight. |
| DGS10 | 5.0% | Elevated → Crisis | BIS Quarterly Review (Dec 2023) · duration stress | Print > 5% triggered MBS convexity hedging cascades (2023) and UK LDI crisis (2022). |
| VIXCLS | 15 | Calm → Normal | CBOE VIX White Paper (2019 rev) · 20y median | Long-run median on the published CBOE history — below this print, hedging demand collapses. |
| VIXCLS | 20 | Normal → Anxious | CBOE VIX · 5y rolling 75th percentile | Option-implied vol enters the top quartile of the trailing distribution. |
| VIXCLS | 30 | Anxious → Panic | CBOE VIX · every crisis print since 1990 | LTCM, dot-com, GFC, Euro debt, COVID, 2022 rate shock — every crisis crossed 30. |
A pattern without a name is hard to reuse. After three stints across wealth, trading, and compliance surfaces, the shape below kept re-emerging — always the same anatomy, always the same failure modes. I call it the Product-Routed Signal Panel. It sits adjacent to (but is not) a dashboard, a news strip, or a market-data card. The distinction matters because each adjacent pattern has a different success metric.
Miss one and it degrades to a different (weaker) pattern.
Not an appendix — a provenance trail. If the numbers and the vocabulary on this page look authoritative, it is because they are borrowed from institutions that took decades to make them so.
Every problem we solve for clients has multiple valid approaches — different costs, different ROI, different risk profiles. These threads show how the approach on this page compares to others in the portfolio.
How upstream regulation and macro prints become downstream product defaults and Legal-safe disclosure.
Portfolio-level math primitives — HHI, beta, VaR, regime — rendered into UI defaults and AI-assisted decision surfaces.