---
name: statcan-fertilizer-shipments-ingestion
description: "How to get Statistics Canada Fertilizer Shipments data into a pandas DataFrame and Parquet: access, the request, the format, limits, quirks and terms."
---

# Load Canadian fertilizer shipments into pandas and Parquet

Source entry: https://signal-lab-jet.vercel.app/datasets/statcan-fertilizer-shipments
Provider: https://www150.statcan.gc.ca/t1/tbl1/en/tv.action?pid=3210003901
Checked against the provider's documentation: 2026-11-01

## Access
- No account or key. The official bulk ZIP contains the full CSV and a metadata CSV.

## Request
```bash
curl -O 'https://www150.statcan.gc.ca/n1/en/tbl/csv/32100039-eng.zip'
```

## Format
ZIP containing a CSV with reference year, geography, nutrient, cumulative period, unit, scalar, vector, value and status fields, plus a metadata CSV.

## Load into pandas and Parquet
Needs Python 3 with requests, pandas and pyarrow.
```python
"""Statistics Canada fertilizer table 32-10-0039-01 -> pandas -> Parquet."""
import io
import zipfile
import requests
import pandas as pd

URL = "https://www150.statcan.gc.ca/n1/en/tbl/csv/32100039-eng.zip"
r = requests.get(URL, timeout=60)
r.raise_for_status()
with zipfile.ZipFile(io.BytesIO(r.content)) as z:
    df = pd.read_csv(z.open("32100039.csv"))
df.to_parquet("statcan_fertilizer_shipments.parquet", index=False)
print(len(df), "rows", df["REF_DATE"].min(), "to", df["REF_DATE"].max(),
      df["GEO"].nunique(), "geographies", df["Fertilizer nutrient content"].nunique(), "nutrients")
```
Run by us on 2026-11-01 (python 3.13.5 | pandas 3.1.0 | pyarrow 26.0.0 | requests 2.34.2). Result: 3200 rows 2006/2007 to 2025/2026 10 geographies 4 nutrients

## Limits
- Rate limit: Not stated.
- The table is annual and uses four cumulative checkpoints within each fertilizer year.
- The tested bulk file contains 3,200 rows.

## Quirks
- The four Period values are cumulative checkpoints; do not add them together.
- VALUE is expressed in metric tonnes with SCALAR_FACTOR set to thousands, so preserve or apply the scalar explicitly.
- Geographies mix individual provinces with regional aggregates.

## Terms and attribution
- The Statistics Canada Open Licence permits reuse and value-added products under its conditions.
- The specified Statistics Canada source notice must be maintained.
- Terms page: https://www.statcan.gc.ca/en/terms-conditions/open-licence

## Sources
- https://www150.statcan.gc.ca/t1/tbl1/en/tv.action?pid=3210003901: "Data on fertilizer shipments within Canada by nutrient content such as nitrogen, phosphate, potash and sulphur."
- https://www.statcan.gc.ca/en/terms-conditions/open-licence: "Statistics Canada grants you a worldwide, royalty-free, non-exclusive licence"
- https://www.statcan.gc.ca/en/terms-conditions/open-licence: "Reproduced and distributed on an "as is" basis with the permission of Statistics Canada."

## Help improve this skill
Missing a source, or see something to improve? Call the MCP tool suggest_source or feedback (or POST /api/suggest or /api/feedback). Reviewed ideas: https://signal-lab-jet.vercel.app/agent-suggestions

Information for educational purposes only. Free tiers, limits and licenses belong to the providers and may change; check the provider's own terms before using the data.
