Canadian payroll employment & earnings intelligence (monthly)
Monthly Canadian payroll-labour intelligence from Statistics Canada's Survey of Employment, Payrolls and Hours (table 14-10-0223-01, industrial aggregate excluding unclassified businesses, seasonally adjusted): payroll employment and average weekly earnings (incl. overtime) for Canada and the 13 provinces/territories over the trailing 120 months. Per geography x month: employment and earnings levels, MoM and YoY growth, 3-month-moving-average YoY momentum, share of national payroll employment, earnings indexed to the national value, documented 0-100 payroll-vitality and earnings scores with per-month provincial ranks, jobs surge/slump and 12-month record flags, and month-level employment breadth. SEPH counts occupied payroll positions (CRA payroll census + Business Payrolls Survey), not people; self-employed excluded. Statistics Canada Open Licence (commercial reuse allowed); source: Statistics Canada.
- Source
- Statistics Canada
- Rows
- 1,680
- Columns
- 24
- Source cadence
- Monthly
- Last refreshed
- Sep 29, 2026
- Theme
- economy
| Column | Type | Description |
|---|---|---|
| month | date | date (unit: Reference month (first day of month). Monthly, seasonally adjusted SEPH estimates.) |
| country_code | string | string (unit: Constant "CAN" (ISO alpha-3) so the rows join cleanly against other normalized hub datasets.) |
| province_code | string | string (unit: ISO 3166-2 geography code: CA for the Canada total, CA-ON / CA-QC / ... for the 10 provinces, CA-YT / CA-NT / CA-NU for the territories.) |
| province_name | string | string (unit: Canonical province/territory name.) |
| payroll_employment | float | number (unit: SEPH payroll employment: occupied payroll positions (persons), monthly, seasonally adjusted, industrial aggregate excluding unclassified businesses [11-91N]. A person with two payroll jobs counts twice; self-employed excluded. Never imputed.) |
| avg_weekly_earnings | float | number (unit: Average weekly earnings including overtime for all employees (current dollars), monthly, seasonally adjusted, [11-91N]. Gross taxable payroll before source deductions. Never imputed.) |
| emp_mom_pct | float | number (unit: Month-over-month percent change of payroll employment (seasonally adjusted).) |
| emp_yoy_pct | float | number (unit: Year-over-year percent change of payroll employment.) |
| emp_yoy_3mma_pct | float | number (unit: 3-month moving average of emp_yoy_pct: the noise smoother for the YoY read.) |
| earn_mom_pct | float | number (unit: Month-over-month percent change of average weekly earnings (seasonally adjusted).) |
| earn_yoy_pct | float | number (unit: Year-over-year percent change of average weekly earnings.) |
| emp_share_national_pct | float | number (unit: The geography's share of national payroll employment that month, in percent. Null on the Canada row.) |
| earn_index_national | float | number (unit: The geography's average weekly earnings as an index of the national value (Canada = 100). Null on the Canada row.) |
| vitality_score | float | number (unit: Documented 0-100 payroll-vitality composite: 100 * min-max-within-month of clip(emp_yoy_pct, -8, +8) across the 13 provinces/territories; a degenerate month scores 50.0. High = payroll employment running hot vs the rest of the country that month. Null on the Canada row.) |
| vitality_rank | integer | integer (unit: Per-month rank of vitality_score across the 13 provinces/territories, 1 = hottest; ties broken by emp_yoy_pct desc then province_code asc. Null on the Canada row.) |
| earnings_score | float | number (unit: Documented 0-100 earnings-momentum composite: 100 * min-max-within-month of clip(earn_yoy_pct, -6, +6) across the 13 provinces/territories. Null on the Canada row.) |
| earnings_rank | integer | integer (unit: Per-month rank of earnings_score across the 13 provinces/territories, 1 = fastest wage growth; ties broken by earn_yoy_pct desc then province_code asc. Null on the Canada row.) |
| jobs_surge_flag | integer | integer (unit: 1 when emp_yoy_pct >= +3.0 (a hot payroll month for that geography), else 0.) |
| jobs_slump_flag | integer | integer (unit: 1 when emp_yoy_pct <= -2.0 (a contracting payroll month), else 0.) |
| record_high_flag | integer | integer (unit: 1 when payroll employment equals the trailing-12-month maximum (inclusive window, requires the full 12 months), else 0.) |
| breadth_share | float | number (unit: Month-level attribute, repeated on every row: the share of the 13 provinces/territories with positive emp_yoy_pct that month, in percent. Null when year-over-year history is unavailable (the first 12 fetched months).) |
| as_of | string | string (unit: Latest reference month present in the fetched panel (YYYY-MM); identical across rows and across runs on the same published vintage.) |
| source_table | string | string (unit: Statistics Canada table number: 14-10-0223-01.) |
| row_hash | string | string (unit: Deterministic 16-hex row id: sha256("SEPH|<province_code>|<month>").) |
First 10 sample rows — a preview, not the complete dataset.
| month | country_code | province_code | province_name | payroll_employment | avg_weekly_earnings | emp_mom_pct | emp_yoy_pct | emp_yoy_3mma_pct | earn_mom_pct | earn_yoy_pct | emp_share_national_pct | earn_index_national | vitality_score | vitality_rank | earnings_score | earnings_rank | jobs_surge_flag | jobs_slump_flag | record_high_flag | breadth_share | as_of | source_table | row_hash |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2016-08-01 | CAN | CA | Canada | 15,683,854 | 958.3 | -0.095 | 1.017 | 1.013 | 0.083 | 1.45 | — | — | — | — | — | — | 0 | 0 | 0 | 69.231 | 2026-07 | 14-10-0223-01 | 5a68431e1faf390f |
| 2016-08-01 | CAN | CA-AB | Alberta | 1,935,830 | 1,119.62 | -0.648 | -3.361 | -3.384 | -0.239 | -0.423 | 12.343 | 116.834 | 0 | 13 | 34.206 | 12 | 0 | 1 | 0 | 69.231 | 2026-07 | 14-10-0223-01 | c8ef958d72496688 |
| 2016-08-01 | CAN | CA-BC | British Columbia | 2,100,030 | 922.43 | 0.093 | 3.365 | 3.177 | 0.402 | 1.562 | 13.39 | 96.257 | 88.158 | 2 | 63.01 | 8 | 1 | 0 | 1 | 69.231 | 2026-07 | 14-10-0223-01 | 26b2fe162d0fcbee |
| 2016-08-01 | CAN | CA-MB | Manitoba | 588,855 | 892.07 | 0.392 | 1.175 | 0.772 | 0.147 | 1.15 | 3.755 | 93.089 | 59.455 | 7 | 57.024 | 10 | 0 | 0 | 1 | 69.231 | 2026-07 | 14-10-0223-01 | b5cbcbe90b294538 |
| 2016-08-01 | CAN | CA-NB | New Brunswick | 302,922 | 870.15 | 0.138 | 1.637 | 1.556 | -0.519 | 2.109 | 1.931 | 90.801 | 65.505 | 5 | 70.935 | 3 | 0 | 0 | 0 | 69.231 | 2026-07 | 14-10-0223-01 | dc61bf0c7cc1661c |
| 2016-08-01 | CAN | CA-NL | Newfoundland and Labrador | 214,382 | 1,013.25 | -0.026 | -1.622 | -1.68 | -0.816 | 0.713 | 1.367 | 105.734 | 22.8 | 11 | 50.684 | 11 | 0 | 0 | 0 | 69.231 | 2026-07 | 14-10-0223-01 | 522507f7f233bd1d |
| 2016-08-01 | CAN | CA-NS | Nova Scotia | 398,068 | 846.89 | 0.205 | 0.246 | -0.32 | 0.182 | 2.009 | 2.538 | 88.374 | 47.282 | 9 | 69.49 | 6 | 0 | 0 | 0 | 69.231 | 2026-07 | 14-10-0223-01 | 573c9519eb58910c |
| 2016-08-01 | CAN | CA-NT | Northwest Territories | 26,424 | 1,362.46 | -0.788 | -3.038 | -3.147 | -1.691 | -2.781 | 0.168 | 142.175 | 4.234 | 12 | 0 | 13 | 0 | 1 | 0 | 69.231 | 2026-07 | 14-10-0223-01 | 77139d4a41a865f3 |
| 2016-08-01 | CAN | CA-NU | Nunavut | 14,949 | 1,266.99 | 0.525 | 4.269 | 2.361 | 0 | 2.047 | 0.095 | 132.212 | 100 | 1 | 70.034 | 5 | 1 | 0 | 1 | 69.231 | 2026-07 | 14-10-0223-01 | d57180dfdb2334d4 |
| 2016-08-01 | CAN | CA-ON | Ontario | 6,070,312 | 979.11 | -0.077 | 1.87 | 1.921 | 0.193 | 2.063 | 38.704 | 102.172 | 68.566 | 4 | 70.271 | 4 | 0 | 0 | 0 | 69.231 | 2026-07 | 14-10-0223-01 | fc01ff0c34cf2daf |
- Current
20260929T034320Z-d529835be975 · sha256 d529835be975…
1,680 rows · first snapshot
Point any LLM at the metadata endpoint — the documentation above is machine-readable too (JSON-LD + Croissant).
curl "https://datazimuts.com/v1/datasets/ca_seph_payroll_intel/ca_payroll_employment_earnings_monthly" | jq '{title, rows, columns_count, license}'import requests
ds = requests.get("https://datazimuts.com/v1/datasets/ca_seph_payroll_intel/ca_payroll_employment_earnings_monthly").json()
print(ds["title"], ds["rows"], "rows")
# Sample rows for an LLM context window
for row in ds.get("sample_rows", [])[:5]:
print(row)API endpoint: https://datazimuts.com/v1/datasets/ca_seph_payroll_intel/ca_payroll_employment_earnings_monthly
Tip: fetch /llms.txt for the full machine-readable catalog.
Where this data comes from and what was made from it. Other people's work shows as counts; only shared projects are named.
Cite this snapshot
Pinned to snapshot 20260929T034320Z-d529835be975 and its content hash, so readers get exactly the data you used.
Statistics Canada. (2026). Canadian payroll employment & earnings intelligence (monthly) [Data set, snapshot 20260929T034320Z-d529835be975, sha256 d529835be975]. Datazimuts. Retrieved 2026-09-30, from https://datazimuts.com/en/datasets/ca_seph_payroll_intel/ca_payroll_employment_earnings_monthly?snapshot=20260929T034320Z-d529835be975
@misc{dz_ca_seph_payroll_intel_ca_payroll_employm_d529835b,
title = {{Canadian payroll employment \& earnings intelligence (monthly)}},
author = {{Statistics Canada}},
year = {2026},
publisher = {Datazimuts},
howpublished = {\url{https://datazimuts.com/en/datasets/ca_seph_payroll_intel/ca_payroll_employment_earnings_monthly?snapshot=20260929T034320Z-d529835be975}},
note = {Snapshot 20260929T034320Z-d529835be975, sha256 d529835be9756bab0cdf09f4dbf790c834bd538c39a460014c5b5cd32c125218; accessed 2026-09-30}
}Embed a table or a chart
Paste this into any page. The embed is pinned to the same snapshot, follows the reader's light or dark setting, and always shows the source, license and a link back.
<iframe src="https://datazimuts.com/embed/chart?dataset=ca_seph_payroll_intel%2Fca_payroll_employment_earnings_monthly&lang=en&theme=auto&snapshot=20260929T034320Z-d529835be975&x=month&y=payroll_employment&agg=avg" title="Canadian payroll employment & earnings intelligence (monthly)" width="100%" height="380" style="border:0" loading="lazy"></iframe>
Ask about this dataset. Answers come only from its catalog record, measured profile and change history, and list the facts they used.