How NorthStar works
Where the numbers come from, how they are transformed, what the models do, and where their limits are. Data last refreshed Sep 25, 2026, 10:49 a.m. ET.
Data sources
| Source | What | Frequency | Typical lag |
|---|---|---|---|
| Bank of Canada Valet API | Policy rate, benchmark and Real Return Bond yields, CAD/USD, CPI-trim/median/common, commodity price index (BCPI) | Daily / monthly | 1–2 days |
| Statistics Canada (WDS vector API) | CPI, Labour Force Survey (incl. wages), IPPI, retail trade, GDP, merchandise trade, M1+/M2++, prime and 5-year mortgage rates | Weekly / monthly / quarterly | 3–8 weeks |
| FRED, St. Louis Fed (official API) | U.S. GDP, jobs, JOLTS, claims, CPI, PCE, breakevens, rates, credit spreads, NFCI, loan-officer survey, housing, orders, sentiment, trade, broad dollar, WTI, OECD leading indicators | Daily / monthly / quarterly | 1 day to 3 months |
| Yahoo Finance (yfinance) | Canadian iShares and U.S. Select Sector SPDR ETF prices | Daily | 1 day |
Pipeline and refresh
A GitHub Actions job runs at 10:00 ET every weekday, after the 8:30 ET statistical releases. It ingests all sources, builds a DuckDB warehouse in three layers (raw, clean, marts), exports JSON and Parquet files, and commits them. The commit triggers a new Vercel deployment, so every page is pre-rendered with the latest data. The run stops before deploying if any source fails or if a data-quality check fails (missing series, duplicate rows, data older than 120 days), so the site keeps showing the last good data instead of a broken update.
Transformations
- Frequencies. Daily and weekly series are averaged to monthly. Policy and prime rates use the rate in force at month end. Dates mark the start of each month or quarter.
- Month to date. Series built from daily data include the current, incomplete month; the dashboard labels these readings "Month to date".
- Growth rates. Year-over-year change compares with the same period a year earlier. Quarterly GDP growth is annualized: ((this quarter ÷ last quarter)⁴ − 1) × 100.
- Spliced exchange rate. The Bank of Canada CAD/USD series starts in 2017; earlier months use FRED's USD/CAD rate, inverted.
- Policy rate before April 2009. Filled from the Bank of Canada's published rate decisions, entered by hand.
- Recessions. U.S. dates follow the NBER (FRED series USREC). Canadian dates follow the C.D. Howe Institute Business Cycle Council and are entered by hand.
- Relative strength. A sector ETF's return minus its market benchmark's return over the same window (S&P/TSX 60 via XIU for Canada, S&P 500 via SPY for the U.S.), in percentage points.
- Derived indicators. Real policy rates subtract core inflation (CPI-trim; core PCE) from the policy rate. Real wage growth subtracts headline CPI inflation from wage growth. GDP per working-age person divides real GDP by the quarterly average of the LFS population aged 15+ (Canada) or the civilian population aged 16+ (U.S.). The Sahm rule is the 3-month average unemployment rate minus its lowest 3-month average over the previous 12 months. Canada's breakeven inflation is the long-term benchmark yield minus the Real Return Bond yield.
- 3-month annualized rates. ((this month ÷ three months earlier)⁴ − 1) × 100.
- CAD–oil correlation. Rolling correlation of monthly percentage changes, computed only over complete 12- or 36-month windows.
Models
- Forecasts (Amazon Chronos-2). A pretrained time-series foundation model used zero-shot, without training on this data. It produces 12-month paths at the 10th, 50th and 90th percentiles. Each series is back-tested on its last 12 months against a no-change forecast, and the result is shown next to the chart.
- Rate-shock effects (DoubleML). A partially linear model estimates how a Bank of Canada rate change relates to same-month sector returns, after removing what U.S. inflation and rates, oil, the Canadian dollar, unemployment and recent returns explain. Random forests handle the controls, with 5-fold cross-fitting. Effects are reported per 0.25 percentage point with 95% confidence intervals.
- Macro radar. Not a model: each pillar is today's reading as a percentile of its own history since 2006.
Model outputs are refreshed by re-running the Colab notebook, not daily. The date of the last run appears on the Forecast & scenarios page.
Ask the data
The assistant sends your question and a data dictionary to Claude, which writes one SQL query. The query runs in an in-memory DuckDB database holding only the dashboard's tables, with file, network and settings access switched off. Only single read-only SELECT statements are accepted, results are capped at 1,000 rows, and a second model call summarizes the rows it returned. The SQL is always shown so answers can be checked.
Limitations
- Canadian retail sales in this table start in 2017. The Staples and Utilities ETFs in Canada start in 2012.
- Canadian ETFs are priced in Canadian dollars and U.S. ETFs in U.S. dollars, so cross-border return gaps include currency moves.
- Retail sales are nominal, so inflation lifts their growth rates.
- The causal estimates rest on about 20 years of monthly data and relatively few policy moves, and markets often price moves before they happen. Most effects are not statistically significant; treat them as exploratory.
- Chronos-2 forecasts carry no economic structure. They extrapolate patterns and can miss turning points.
- Statistical agencies revise past data. The dashboard always shows the latest vintage, not what was known at the time.
- Nothing on this site is investment advice.
Series catalog
Every series on the dashboard, generated from the live data.
| Section | Series | Country | Shown as | Frequency | Latest |
|---|---|---|---|---|---|
| Output | Industrial capacity utilization (ca_capacity_util) | Canada | % | Quarterly | Q4 2025 |
| Output | Real GDP all industries (monthly) (ca_gdp_monthly) | Canada | % y/y | Monthly | Jun 2026 |
| Output | Real GDP per person aged 15+ (ca_gdp_per_capita) | Canada | % y/y | Quarterly | Q2 2026 |
| Output | Real GDP (expenditure) (ca_gdp_quarterly) | Canada | % q/q ann. | Quarterly | Q2 2026 |
| Output | Real GDP (expenditure) (ca_gdp_yoy) | Canada | % y/y | Quarterly | Q2 2026 |
| Output | Industrial production (GDP basis) (ca_industrial_production) | Canada | % y/y | Monthly | Jun 2026 |
| Output | Sahm-rule indicator (ca_sahm) | Canada | pp | Monthly | Aug 2026 |
| Output | Capacity utilization (total industry) (us_capacity_util) | U.S. | % | Monthly | Aug 2026 |
| Output | Real GDP (us_gdp) | U.S. | % q/q ann. | Quarterly | Q2 2026 |
| Output | Real GDP per person aged 16+ (us_gdp_per_capita) | U.S. | % y/y | Quarterly | Q2 2026 |
| Output | Real GDP (us_gdp_yoy) | U.S. | % y/y | Quarterly | Q2 2026 |
| Output | Industrial production (us_industrial_production) | U.S. | % y/y | Monthly | Aug 2026 |
| Output | Smoothed recession probability (us_recession_prob) | U.S. | % | Monthly | Jul 2026 |
| Output | Sahm-rule indicator (us_sahm) | U.S. | pp | Monthly | Aug 2026 |
| Labour | Average hourly wages (LFS) (ca_avg_hourly_wages) | Canada | % y/y | Monthly | Aug 2026 |
| Labour | EI initial and renewal claims (monthly) (ca_ei_claims) | Canada | persons | Monthly | Jul 2026 |
| Labour | Employment (LFS) (ca_employment) | Canada | thousands m/m chg | Monthly | Aug 2026 |
| Labour | Job vacancies per unemployed person (ca_openings_per_unemployed) | Canada | ratio | Monthly | Jul 2026 |
| Labour | Participation rate (LFS) (ca_participation) | Canada | % | Monthly | Aug 2026 |
| Labour | Real wage growth (wages minus CPI) (ca_real_wage_growth) | Canada | % y/y | Monthly | Aug 2026 |
| Labour | Unemployment rate (LFS) (ca_unemployment) | Canada | % | Monthly | Aug 2026 |
| Labour | Average hourly earnings (us_avg_hourly_earnings) | U.S. | % y/y | Monthly | Aug 2026 |
| Labour | Initial jobless claims (weekly avg) (us_initial_claims) | U.S. | persons | Weekly | Sep 2026 |
| Labour | Nonfarm payrolls (us_nonfarm_payrolls) | U.S. | thousands m/m chg | Monthly | Aug 2026 |
| Labour | Job openings per unemployed person (us_openings_per_unemployed) | U.S. | ratio | Monthly | Jul 2026 |
| Labour | Participation rate (us_participation_rate) | U.S. | % | Monthly | Aug 2026 |
| Labour | Quits rate (JOLTS) (us_quits_rate) | U.S. | % | Monthly | Jul 2026 |
| Labour | Real wage growth (earnings minus CPI) (us_real_wage_growth) | U.S. | % y/y | Monthly | Aug 2026 |
| Labour | Unemployment rate (us_unemployment) | U.S. | % | Monthly | Aug 2026 |
| Prices | Long-term breakeven (nominal minus RRB yield) (ca_breakeven_long) | Canada | % | Daily | Sep 2026 |
| Prices | CPI excluding food & energy (ca_core_cpi_3m) | Canada | % 3m ann. | Monthly | Aug 2026 |
| Prices | Headline CPI (ca_cpi_all_items) | Canada | % y/y | Monthly | Aug 2026 |
| Prices | Industrial product price index (ca_ippi_total) | Canada | % y/y | Monthly | Aug 2026 |
| Prices | CPI-common (BoC core) (cpi_common) | Canada | % y/y | Monthly | Aug 2026 |
| Prices | CPI-median (BoC core) (cpi_median) | Canada | % y/y | Monthly | Aug 2026 |
| Prices | CPI-trim (BoC core) (cpi_trim) | Canada | % y/y | Monthly | Aug 2026 |
| Prices | 5-year 5-year forward inflation expectation (us_5y5y) | U.S. | % | Daily | Sep 2026 |
| Prices | 10-year breakeven inflation (us_breakeven_10y) | U.S. | % | Daily | Sep 2026 |
| Prices | Core CPI ex food & energy (us_core_cpi) | U.S. | % y/y | Monthly | Aug 2026 |
| Prices | Core CPI (us_core_cpi_3m) | U.S. | % 3m ann. | Monthly | Aug 2026 |
| Prices | Core PCE price index (us_core_pce) | U.S. | % y/y | Monthly | Jul 2026 |
| Prices | Core PCE (us_core_pce_3m) | U.S. | % 3m ann. | Monthly | Jul 2026 |
| Prices | Headline CPI (us_cpi) | U.S. | % y/y | Monthly | Aug 2026 |
| Prices | WTI crude oil (wti_crude_yoy) | U.S. | % y/y | Daily | Sep 2026 |
| Central banks | Business loan balances (banks) (ca_business_credit) | Canada | % y/y | Monthly | Jun 2026 |
| Central banks | Consumer credit balances (banks) (ca_consumer_credit) | Canada | % y/y | Monthly | Jun 2026 |
| Central banks | 5-year conventional mortgage rate (posted) (ca_mortgage_5y) | Canada | % | Weekly | Sep 2026 |
| Central banks | Residential mortgage balances (banks) (ca_mortgage_credit) | Canada | % y/y | Monthly | Jun 2026 |
| Central banks | Prime minus overnight rate (ca_prime_margin) | Canada | pp | Daily | Sep 2026 |
| Central banks | Real policy rate (overnight minus CPI-trim) (ca_real_policy_rate) | Canada | % | Monthly | Aug 2026 |
| Central banks | 10y minus 2y spread (ca_spread_10_2) | Canada | pp | Daily | Sep 2026 |
| Central banks | Variable-rate share of new mortgage lending (ca_variable_mortgage_share) | Canada | % | Monthly | Jun 2026 |
| Central banks | M1+ (gross) (m1_gross) | Canada | % y/y | Monthly | Jul 2026 |
| Central banks | M2++ (gross) (m2pp_gross) | Canada | % y/y | Monthly | Jul 2026 |
| Central banks | BoC target overnight rate (overnight_rate) | Canada | % | Daily | Sep 2026 |
| Central banks | Prime rate (prime_rate) | Canada | % | Weekly | Sep 2026 |
| Central banks | GoC 10-year yield (yield_10yr) | Canada | % | Daily | Sep 2026 |
| Central banks | GoC 2-year yield (yield_2yr) | Canada | % | Daily | Sep 2026 |
| Central banks | GoC 5-year yield (yield_5yr) | Canada | % | Daily | Sep 2026 |
| Central banks | Baa corporate minus 10-year Treasury (us_baa_spread) | U.S. | pp | Daily | Sep 2026 |
| Central banks | Commercial & industrial loans (banks) (us_ci_loans) | U.S. | % y/y | Monthly | Aug 2026 |
| Central banks | Consumer loans (banks) (us_consumer_loans) | U.S. | % y/y | Monthly | Aug 2026 |
| Central banks | Effective fed funds rate (us_fed_funds) | U.S. | % | Monthly | Aug 2026 |
| Central banks | M2 money stock (us_m2) | U.S. | % y/y | Monthly | Aug 2026 |
| Central banks | 30-year fixed mortgage rate (us_mortgage_30y) | U.S. | % | Weekly | Sep 2026 |
| Central banks | Chicago Fed financial conditions (NFCI) (us_nfci) | U.S. | index | Weekly | Sep 2026 |
| Central banks | Real estate loans (banks) (us_re_loans) | U.S. | % y/y | Monthly | Aug 2026 |
| Central banks | Real policy rate (fed funds minus core PCE) (us_real_policy_rate) | U.S. | % | Monthly | Jul 2026 |
| Central banks | Banks tightening business-loan standards (us_sloos_ci) | U.S. | net % | Quarterly | Q3 2026 |
| Central banks | 10y minus 2y spread (us_spread_10_2) | U.S. | pp | Monthly | Aug 2026 |
| Central banks | Treasury 10-year yield (us_yield_10yr) | U.S. | % | Monthly | Aug 2026 |
| Central banks | Treasury 2-year yield (us_yield_2yr) | U.S. | % | Monthly | Aug 2026 |
| Sentiment | OECD leading indicator (ca_cli_yoy) | Canada | % y/y | Monthly | Aug 2026 |
| Sentiment | Expected inflation next 12 months (BoC CSCE) (ca_consumer_infl_exp) | Canada | % | Quarterly | Q2 2026 |
| Sentiment | Housing starts (CMHC) (ca_housing_starts) | Canada | thousands SAAR | Monthly | Aug 2026 |
| Sentiment | Manufacturing new orders (ca_mfg_new_orders) | Canada | % y/y | Monthly | Jul 2026 |
| Sentiment | Real retail sales (deflated by CPI) (ca_real_retail_sales) | Canada | % y/y | Monthly | Jul 2026 |
| Sentiment | Retail sales (ca_retail_sales) | Canada | % y/y | Monthly | Jul 2026 |
| Sentiment | OECD composite leading indicator (canada_oecd_cli) | Canada | index | Monthly | Aug 2026 |
| Sentiment | Building permits (us_building_permits) | U.S. | thousands SAAR | Monthly | Aug 2026 |
| Sentiment | OECD leading indicator (us_cli_yoy) | U.S. | % y/y | Monthly | Aug 2026 |
| Sentiment | Expected inflation next 12 months (UMich) (us_consumer_infl_exp) | U.S. | % | Monthly | Jul 2026 |
| Sentiment | UMich consumer sentiment (us_consumer_sentiment) | U.S. | index | Monthly | Jul 2026 |
| Sentiment | Core capital goods orders (us_core_capex_orders) | U.S. | % y/y | Monthly | Aug 2026 |
| Sentiment | Housing starts (us_housing_starts) | U.S. | thousands SAAR | Monthly | Aug 2026 |
| Sentiment | OECD composite leading indicator (us_oecd_cli) | U.S. | index | Monthly | Aug 2026 |
| Sentiment | Real retail & food services sales (us_real_retail_sales) | U.S. | % y/y | Monthly | Aug 2026 |
| Sentiment | Retail & food services sales (us_retail_sales) | U.S. | % y/y | Monthly | Aug 2026 |
| Trade & FX | BCPI energy (bcpi_energy) | Canada | % y/y | Monthly | Aug 2026 |
| Trade & FX | BCPI excluding energy (bcpi_ex_energy) | Canada | % y/y | Monthly | Aug 2026 |
| Trade & FX | BoC commodity price index (BCPI) (bcpi_total) | Canada | % y/y | Monthly | Aug 2026 |
| Trade & FX | Merchandise exports (ca_exports) | Canada | % y/y | Monthly | Jul 2026 |
| Trade & FX | Merchandise exports to non-U.S. markets (ca_exports_non_us) | Canada | % y/y | Monthly | Jul 2026 |
| Trade & FX | Merchandise exports to U.S. (ca_exports_to_us) | Canada | % y/y | Monthly | Jul 2026 |
| Trade & FX | Merchandise imports (ca_imports) | Canada | % y/y | Monthly | Jul 2026 |
| Trade & FX | Merchandise trade balance (ca_trade_balance) | Canada | mn CAD | Monthly | Jul 2026 |
| Trade & FX | Canada minus U.S. 2-year yield (ca_us_2y_spread) | Canada | pp | Monthly | Aug 2026 |
| Trade & FX | Share of exports going to the U.S. (ca_us_export_share) | Canada | % | Monthly | Jul 2026 |
| Trade & FX | CAD–oil correlation (12 months) (cad_oil_corr_12m) | Canada | corr | Daily | Sep 2026 |
| Trade & FX | CAD–oil correlation (36 months) (cad_oil_corr_36m) | Canada | corr | Daily | Sep 2026 |
| Trade & FX | CAD/USD exchange rate (cad_usd_combined) | Canada | USD per CAD | Daily | Sep 2026 |
| Trade & FX | Broad trade-weighted U.S. dollar (us_broad_dollar) | U.S. | index | Daily | Sep 2026 |
| Trade & FX | Goods & services trade balance (us_trade_balance) | U.S. | mn USD | Monthly | Jul 2026 |
| Trade & FX | WTI crude oil (wti_crude) | U.S. | USD/bbl | Daily | Sep 2026 |