CEPI  ·  Methodology

Canada Economic Pulse Index (CEPI) — Methodology

Version 1.0 · Last Modified: 2026-03-02
Section 1

Overview

The Canada Economic Pulse Index (CEPI) is a daily composite index designed to measure real-time momentum in Canadian economic activity.

CEPI imagines Canada as if it were a tradable asset. It aggregates high-frequency throughput signals — including cross-border flows, transportation activity, currency stability, and monetary policy conditions — into a single, continuously updated index level.

CEPI is not a GDP forecast. It is not a long-term growth model. It is a structured measure of acceleration or deceleration in observable economic activity.

CEPI consists of two distinct layers:

  1. CEPI-D (Daily Pulse Index) — high-frequency composite updated daily.
  2. Structural Composite Index — quarterly composite built from core macroeconomic pillars.

All data sources, transformations, and weights are explicitly documented below.

Section 2

Design Principles

CEPI is governed by the following principles:

  • Transparency — All data inputs and transformations are published.
  • Reproducibility — A third party can reconstruct CEPI from this document.
  • Equal Weighting — All CEPI-D vectors contribute equally.
  • Lag Robustness — Explicit grace-period logic governs publication.
  • Layer Separation — Daily pulse and structural fundamentals are independent systems.
Section 3

Data Sources

3.1 Daily & High-Frequency Inputs (CEPI-D)

CEPI-D incorporates the following vectors:

Flow Signals

  • International arrivals by air (daily)
  • International arrivals by land (daily)
  • Cross-border truck entries (daily)

Financial Signals

  • CAD/USD daily average exchange rate
  • CAD/EUR daily average exchange rate
  • CAD/GBP daily average exchange rate
  • CAD/CNY daily average exchange rate
  • CAD/JPY daily average exchange rate

Monetary Policy

  • Bank of Canada target overnight rate (daily)

Transportation Activity

  • Domestic aircraft movements (weekly)
  • Transborder aircraft movements (weekly)

Freight Activity

  • National railway carloadings (monthly)

All vectors are version-locked and monitored for availability.

Section 4

CEPI-D Construction

4.1 Daily Spine

Let:

t ∈ {t0, t0 + 1, …, T}

Where:

  • t0 = canonical start date (2025-07-01)
  • T = publication end date, determined by grace logic

All vectors are mapped onto a common daily calendar spine.

4.2 Grace Period Logic

Define:

  • targetEnd = yesterday (UTC calendar date)
  • seriesMaxi = most recent available date for series i

Each series has a maximum permitted lag:

Series Grace Window
Arrivals / Trucks7 days
FX (USD, EUR, GBP)3 days
FX (CNY, JPY)60 days
Policy Rate60 days

Lag is defined as:

lagi = targetEnd − seriesMaxi

If lagi > gracei, then:

graceEnd = min(seriesMaxi)

Otherwise:

graceEnd = targetEnd

The index publishes through spineEnd = graceEnd. Any previously computed values beyond spineEnd are pruned.

4.3 Forward Fill

Sparse series are forward-filled onto the daily spine:

xt = vt      if observation exists at t
xt = xt−1   otherwise

This avoids artificial zeros during short reporting gaps.

4.4 Flow Transformations

For daily flow-type series:

Step 1 — 7-Day Rolling Sum

RSt = Σk=06 xt−k

Step 2 — Year-over-Year Growth (Preferred)

YoYt = (RSt − RSt−365) / RSt−365

Fallback (if insufficient history):

Momentumt = (RSt − RSt−28) / RSt−28

Step 3 — Expanding Z-score

Zt = (signalt − μ1:t) / σ1:t

Step 4 — Winsorization

Extreme values are clamped to reduce tail distortions.

Step 5 — Nonlinear Scaling

St = tanh(Zt / 2)

4.5 FX Stability Signal

Exchange rate stability is computed via rolling realized volatility. Let σc,t denote the 30-day rolling volatility for currency c.

Signal:

Signalc,t = −σc,t

Currency weights are derived from export shares:

wc = exportSharec

Basket signal:

FXt = Σc wc · Signalc,t

Standardization and scaling follow the same Z-score and tanh transformation.

4.6 Policy Rate Signal

The policy rate signal is constructed from first differences:

Δrt = rt − rt−1

Then standardized and scaled as above.

4.7 Weekly & Monthly Inputs

Weekly and monthly inputs are forward-filled to the daily spine before transformation.

Section 5

CEPI-D Composite Formula

Let there be N vectors. Each vector contributes Si,t.

Equal-weight composite:

CEPIt = 100 + 10 · (1/N · Σi=1N Si,t)

The base level is anchored at 100 at the canonical start date.

Section 6

Structural Composite Index (Quarterly)

Quarterly pillars:

  • Real GDP per capita
  • Business investment per worker
  • Business R&D intensity
  • Labour productivity
  • Export diversification

Structural momentum:

Momentumstructural = slope3y − slope10y

Nowcast momentum:

Momentumnowcast = slope1y − slope10y

Standardized and scaled to:

Index = 50 + 25 · score
Section 7

Export Diversification Score

Herfindahl–Hirschman Index:

HHI = Σ si2

Diversification score:

D = 1 − HHI
Section 8

Publication Policy

  • CEPI-D updates daily.
  • Structural index updates only when all pillars are available.
  • Trade data may lead the structural composite.
  • Quarter mismatches are disclosed.
Section 9

Revision Policy

  • All source revisions propagate automatically.
  • Composite recalculated on each run.
  • Methodology changes increment the version number.
  • All changes are documented within this file.
Section 10

Limitations

  • High-frequency data exhibits volatility.
  • Weekend and holiday distortions exist.
  • Forward-fill assumes short persistence.
  • Grace logic introduces bounded estimation risk.
  • Structural data is release-lagged.
Section 11

Change Log

Version 1.0  ·  2026-03-02
  • Initial public release.
  • Grace period framework formalized.
  • Equal-weight CEPI-D composite locked.