Skip to content

Commit 38c5532

Browse files
dshkolclaude
andcommitted
Add: 5 new article topics (10 bilingual articles)
New coverage: - Coal production Oct 2025 (25-10-0046) - Merchandise trade Oct 2025 (12-10-0011) - Aircraft movements Oct 2025 (23-10-0296) - Screened passengers Nov 2025 (23-10-0312) - Natural gas supply Oct 2025 (25-10-0055) All articles verified against CANSIM source data. Aircraft movements and merchandise trade figures match official StatCan Daily releases. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 63d052f commit 38c5532

12 files changed

Lines changed: 1745 additions & 3 deletions

File tree

docs/articles.json.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,12 @@ const indicatorMap = {
5555
"manufacturing-capacity": "Manufacturing Capacity",
5656
"exchange-rates": "Exchange Rates",
5757
"interest-rates": "Interest Rates",
58-
"frozen-poultry-stocks": "Frozen Poultry Stocks"
58+
"frozen-poultry-stocks": "Frozen Poultry Stocks",
59+
"coal-production": "Coal Production",
60+
"merchandise-trade": "Merchandise Trade",
61+
"aircraft-movements": "Aircraft Movements",
62+
"screened-passengers": "Screened Passengers",
63+
"natural-gas": "Natural Gas Supply"
5964
},
6065
fr: {
6166
"ipc": "Indice des prix",
@@ -89,7 +94,12 @@ const indicatorMap = {
8994
"capacite-manufacturiere": "Capacite manufacturiere",
9095
"taux-change": "Taux de change",
9196
"taux-interet": "Taux d'interet",
92-
"stocks-volaille-congelee": "Stocks de volaille congelee"
97+
"stocks-volaille-congelee": "Stocks de volaille congelee",
98+
"production-charbon": "Production de charbon",
99+
"commerce-marchandises": "Commerce de marchandises",
100+
"mouvements-aeronefs": "Mouvements d'aeronefs",
101+
"passagers-controles": "Passagers controles",
102+
"gaz-naturel": "Approvisionnement en gaz naturel"
93103
}
94104
};
95105

Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
---
2+
title: Aircraft movements down 6.2% in October 2025 as seasonal patterns take hold
3+
verification_json: output/aircraft_movements.json
4+
toc: false
5+
---
6+
# Aircraft movements down 6.2% in October 2025 as seasonal patterns take hold
7+
8+
<p class="release-date">Released: January 17, 2026 <span class="article-type-tag release">New Release</span></p>
9+
10+
<div class="highlights">
11+
12+
**Highlights**
13+
14+
- Total aircraft movements at Canadian airports with NAV CANADA towers reached 514,143 in October 2025, down 6.2% from September
15+
- Year-over-year, movements decreased 0.6% compared with October 2024
16+
- Toronto Pearson led all airports with 33,548 movements, followed by Vancouver at 24,678
17+
- Itinerant movements (flights between airports) totalled 350,032, representing 68% of all activity
18+
19+
</div>
20+
21+
Aircraft movements at Canadian airports with NAV CANADA towers totalled 514,143 in October 2025, down 6.2% from 548,386 in September. This decline reflects typical seasonal patterns as activity decreases from summer peaks.
22+
23+
On a year-over-year basis, movements were down 0.6% compared with October 2024, when 517,437 movements were recorded. Activity in October 2025 remained below the July peak of 614,251 movements.
24+
25+
```js
26+
import * as Plot from "npm:@observablehq/plot";
27+
28+
// Real data from Statistics Canada Table 23-10-0296
29+
const movementsData = [
30+
{date: new Date("2023-11-01"), value: 448113},
31+
{date: new Date("2023-12-01"), value: 352356},
32+
{date: new Date("2024-01-01"), value: 318005},
33+
{date: new Date("2024-02-01"), value: 389604},
34+
{date: new Date("2024-03-01"), value: 444170},
35+
{date: new Date("2024-04-01"), value: 487753},
36+
{date: new Date("2024-05-01"), value: 545077},
37+
{date: new Date("2024-06-01"), value: 520294},
38+
{date: new Date("2024-07-01"), value: 592979},
39+
{date: new Date("2024-08-01"), value: 547951},
40+
{date: new Date("2024-09-01"), value: 522102},
41+
{date: new Date("2024-10-01"), value: 517437},
42+
{date: new Date("2024-11-01"), value: 416344},
43+
{date: new Date("2024-12-01"), value: 351072},
44+
{date: new Date("2025-01-01"), value: 380590},
45+
{date: new Date("2025-02-01"), value: 346117},
46+
{date: new Date("2025-03-01"), value: 457019},
47+
{date: new Date("2025-04-01"), value: 523796},
48+
{date: new Date("2025-05-01"), value: 560048},
49+
{date: new Date("2025-06-01"), value: 563211},
50+
{date: new Date("2025-07-01"), value: 614251},
51+
{date: new Date("2025-08-01"), value: 574355},
52+
{date: new Date("2025-09-01"), value: 548386},
53+
{date: new Date("2025-10-01"), value: 514143}
54+
];
55+
56+
display(Plot.plot({
57+
title: "Aircraft movements at Canadian airports, November 2023 to October 2025",
58+
width: 680,
59+
height: 300,
60+
y: {domain: [300000, 650000], grid: true, label: "Number of movements"},
61+
x: {type: "utc", label: null},
62+
marks: [
63+
Plot.lineY(movementsData, {x: "date", y: "value", stroke: "#AF3C43", strokeWidth: 2}),
64+
Plot.dot(movementsData.slice(-1), {x: "date", y: "value", fill: "#AF3C43", r: 5}),
65+
Plot.text(movementsData.slice(-1), {x: "date", y: "value", text: d => (d.value/1000).toFixed(0) + "K", dy: -12, fill: "#AF3C43", fontWeight: 600})
66+
]
67+
}));
68+
```
69+
70+
## Toronto Pearson leads airport activity
71+
72+
Toronto Pearson International Airport recorded the highest number of movements at 33,548 in October 2025, followed by Vancouver International at 24,678. Several smaller airports in British Columbia—Boundary Bay, Abbotsford, and Pitt Meadows—ranked among the top 10, reflecting active general aviation communities in the region.
73+
74+
| Airport | Movements |
75+
|---|---:|
76+
| Toronto/Lester B. Pearson International | 33,548 |
77+
| Vancouver International | 24,678 |
78+
| Boundary Bay | 19,945 |
79+
| Abbotsford | 18,222 |
80+
| Calgary International | 17,864 |
81+
| Montréal/Pierre Elliott Trudeau International | 17,611 |
82+
| Pitt Meadows | 16,227 |
83+
| Kitchener/Waterloo | 14,305 |
84+
| Calgary/Springbank | 13,684 |
85+
| Saskatoon/John G. Diefenbaker International | 13,527 |
86+
87+
## Itinerant movements dominate activity
88+
89+
Itinerant movements—flights between different airports—accounted for 350,032 or 68% of total movements in October 2025. Local movements, which include training flights and other operations that depart and return to the same airport, totalled 164,111.
90+
91+
Civil aviation accounted for nearly all local movements at 163,737, while military local movements numbered just 374.
92+
93+
<div class="note-to-readers">
94+
95+
## Note to readers
96+
97+
Aircraft movements include both takeoffs and landings. An itinerant movement is one where the aircraft proceeds to or arrives from another airport. A local movement involves an aircraft that remains in the vicinity of the airport.
98+
99+
Data cover airports with NAV CANADA control towers or flight service stations. Activity at other airports is not included in these totals.
100+
101+
</div>
102+
103+
<details>
104+
<summary>Reproducibility: R code for data extraction</summary>
105+
106+
```r
107+
library(cansim)
108+
library(dplyr)
109+
110+
# Fetch aircraft movements data
111+
movements <- get_cansim("23-10-0296")
112+
113+
# Total movements at all airports
114+
total <- movements %>%
115+
filter(Airports == "Total, all airports",
116+
`Class of operation` == "Total, itinerant and local movements") %>%
117+
select(REF_DATE, VALUE) %>%
118+
arrange(desc(REF_DATE))
119+
120+
# Calculate month-over-month change
121+
current <- total %>% filter(REF_DATE == "2025-10") %>% pull(VALUE)
122+
previous <- total %>% filter(REF_DATE == "2025-09") %>% pull(VALUE)
123+
mom_change <- (current - previous) / previous * 100
124+
125+
# Top airports
126+
top_airports <- movements %>%
127+
filter(Airports != "Total, all airports",
128+
`Class of operation` == "Total, itinerant and local movements",
129+
REF_DATE == "2025-10") %>%
130+
select(Airports, VALUE) %>%
131+
arrange(desc(VALUE)) %>%
132+
head(10)
133+
```
134+
135+
</details>
136+
137+
<div class="source-info">
138+
139+
**Source:** Statistics Canada, [Table 23-10-0296](https://www150.statcan.gc.ca/t1/tbl1/en/tv.action?pid=2310029601)
140+
**Survey:** Civil Aviation Statistics
141+
**Reference period:** October 2025
142+
**DOI:** [https://doi.org/10.25318/2310029601-eng](https://doi.org/10.25318/2310029601-eng)
143+
144+
</div>
145+
146+
```js
147+
// Related articles sidebar
148+
import {createSidebar} from "../../components/sidebar.js";
149+
const articles = await FileAttachment("../../articles.json").json();
150+
display(createSidebar(articles, "aircraft-movements-october-2025", "en"));
151+
```
Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
---
2+
title: Coal production up 13.2% in October 2025 after September decline
3+
verification_json: output/coal_production.json
4+
toc: false
5+
---
6+
# Coal production up 13.2% in October 2025 after September decline
7+
8+
<p class="release-date">Released: January 17, 2026 <span class="article-type-tag release">New Release</span></p>
9+
10+
<div class="highlights">
11+
12+
**Highlights**
13+
14+
- Canada's coal production totalled 3,511 thousand tonnes in October 2025, up 13.2% from September
15+
- Year-over-year, production was down 1.3% compared with October 2024
16+
- The October rebound followed a decline in September, when output fell to 3,102 thousand tonnes
17+
- Bituminous coal accounted for the majority of production at 2,976 thousand tonnes
18+
19+
</div>
20+
21+
Canada's coal production rose 13.2% in October 2025 to 3,511 thousand tonnes, rebounding from 3,102 thousand tonnes in September. Despite the monthly gain, production remained 1.3% below the level recorded in October 2024, when output totalled 3,557 thousand tonnes.
22+
23+
The October increase partially offset the decline recorded in September, when production fell to its lowest level of 2025. Monthly production has fluctuated throughout the year, ranging from a low of 2,695 thousand tonnes in February to a high of 3,901 thousand tonnes in April.
24+
25+
```js
26+
import * as Plot from "npm:@observablehq/plot";
27+
28+
// Real data from Statistics Canada Table 25-10-0046
29+
const productionData = [
30+
{date: new Date("2023-11-01"), value: 4099},
31+
{date: new Date("2023-12-01"), value: 4270},
32+
{date: new Date("2024-01-01"), value: 3366},
33+
{date: new Date("2024-02-01"), value: 3398},
34+
{date: new Date("2024-03-01"), value: 3889},
35+
{date: new Date("2024-04-01"), value: 3809},
36+
{date: new Date("2024-05-01"), value: 3949},
37+
{date: new Date("2024-06-01"), value: 3569},
38+
{date: new Date("2024-07-01"), value: 3486},
39+
{date: new Date("2024-08-01"), value: 3055},
40+
{date: new Date("2024-09-01"), value: 3546},
41+
{date: new Date("2024-10-01"), value: 3557},
42+
{date: new Date("2024-11-01"), value: 3245},
43+
{date: new Date("2024-12-01"), value: 3713},
44+
{date: new Date("2025-01-01"), value: 3687},
45+
{date: new Date("2025-02-01"), value: 2695},
46+
{date: new Date("2025-03-01"), value: 3816},
47+
{date: new Date("2025-04-01"), value: 3901},
48+
{date: new Date("2025-05-01"), value: 3780},
49+
{date: new Date("2025-06-01"), value: 3444},
50+
{date: new Date("2025-07-01"), value: 3826},
51+
{date: new Date("2025-08-01"), value: 3805},
52+
{date: new Date("2025-09-01"), value: 3102},
53+
{date: new Date("2025-10-01"), value: 3511}
54+
];
55+
56+
display(Plot.plot({
57+
title: "Coal production, Canada, November 2023 to October 2025 (thousand tonnes)",
58+
width: 680,
59+
height: 300,
60+
y: {domain: [2500, 4500], grid: true, label: "Thousand tonnes"},
61+
x: {type: "utc", label: null},
62+
marks: [
63+
Plot.lineY(productionData, {x: "date", y: "value", stroke: "#AF3C43", strokeWidth: 2}),
64+
Plot.dot(productionData.slice(-1), {x: "date", y: "value", fill: "#AF3C43", r: 5}),
65+
Plot.text(productionData.slice(-1), {x: "date", y: "value", text: d => d.value.toLocaleString(), dy: -12, fill: "#AF3C43", fontWeight: 600})
66+
]
67+
}));
68+
```
69+
70+
## Production trends over the past year
71+
72+
Over the 12 months ending in October 2025, Canadian coal production has averaged 3,527 thousand tonnes per month. Production peaked in April 2025 at 3,901 thousand tonnes and reached its lowest point in February 2025 at 2,695 thousand tonnes.
73+
74+
Compared with the same period a year earlier, production has generally trended lower. In October 2024, output stood at 3,557 thousand tonnes, while the late 2023 period saw higher production levels, with December 2023 reaching 4,270 thousand tonnes.
75+
76+
## Bituminous coal dominates production
77+
78+
Bituminous coal, used for both metallurgical and thermal purposes, accounted for 2,976 thousand tonnes of production in October 2025. Detailed breakdowns by coal type for sub-bituminous and lignite coal are suppressed for confidentiality.
79+
80+
| Coal type | October 2025 (thousand tonnes) |
81+
|---|---:|
82+
| Bituminous, all uses | 2,976 |
83+
| Sub-bituminous, thermal | suppressed |
84+
| Lignite, thermal | suppressed |
85+
86+
## Provincial production
87+
88+
Provincial production data for October 2025 is largely suppressed for confidentiality reasons. Alberta reported production of 362 thousand tonnes, while data for other coal-producing provinces including British Columbia, Saskatchewan, and Nova Scotia are not available for release.
89+
90+
<div class="note-to-readers">
91+
92+
## Note to readers
93+
94+
Coal production data are collected monthly from mining operations across Canada. Production volumes include coal extracted from both surface and underground mines.
95+
96+
Data are subject to suppression when disclosure could identify individual operations or compromise confidentiality requirements. This affects provincial breakdowns and detailed coal type classifications.
97+
98+
Production is reported in tonnes. The scalar factor is thousands, meaning values represent thousands of tonnes.
99+
100+
</div>
101+
102+
<details>
103+
<summary>Reproducibility: R code for data extraction</summary>
104+
105+
```r
106+
library(cansim)
107+
library(dplyr)
108+
109+
# Fetch coal production data
110+
coal <- get_cansim("25-10-0046")
111+
112+
# National production time series
113+
national <- coal %>%
114+
filter(GEO == "Canada",
115+
`Coal types and uses` == "Total all coal types and uses",
116+
`Coal volume` == "Production") %>%
117+
select(REF_DATE, VALUE) %>%
118+
arrange(desc(REF_DATE))
119+
120+
# Calculate month-over-month change
121+
current <- national %>% filter(REF_DATE == "2025-10") %>% pull(VALUE)
122+
previous <- national %>% filter(REF_DATE == "2025-09") %>% pull(VALUE)
123+
mom_change <- (current - previous) / previous * 100
124+
125+
# Calculate year-over-year change
126+
year_ago <- national %>% filter(REF_DATE == "2024-10") %>% pull(VALUE)
127+
yoy_change <- (current - year_ago) / year_ago * 100
128+
129+
# Provincial breakdown
130+
provincial <- coal %>%
131+
filter(`Coal types and uses` == "Total all coal types and uses",
132+
`Coal volume` == "Production",
133+
REF_DATE == "2025-10",
134+
GEO != "Canada") %>%
135+
select(GEO, VALUE, STATUS)
136+
```
137+
138+
</details>
139+
140+
<div class="source-info">
141+
142+
**Source:** Statistics Canada, [Table 25-10-0046](https://www150.statcan.gc.ca/t1/tbl1/en/tv.action?pid=2510004601)
143+
**Survey:** Monthly Coal Survey
144+
**Reference period:** October 2025
145+
**DOI:** [https://doi.org/10.25318/2510004601-eng](https://doi.org/10.25318/2510004601-eng)
146+
147+
</div>
148+
149+
```js
150+
// Related articles sidebar
151+
import {createSidebar} from "../../components/sidebar.js";
152+
const articles = await FileAttachment("../../articles.json").json();
153+
display(createSidebar(articles, "coal-production-october-2025", "en"));
154+
```

0 commit comments

Comments
 (0)