Data sources & methodology
How it works
- A Python pipeline fetches each source's public report page or PDF, parses the price tables, and turns them into one dataset: mart, province, sale date, class, 100-lb weight class, low/high/avg in CAD $/cwt.
- Marts that quote $/lb are multiplied by 100. USDA reports in US$ are converted at the exchange rate printed in the report.
- Weight classes are lined up on 100-lb bins (e.g. 500-600, 501-600 and 500-599 all become 500-599).
- If a source fails or only serves a bot-check page, it shows as unavailable. No prices are estimated, filled in or carried forward.
- Prices are the ranges each mart published, usually for top-quality cattle, and won't match every lot.
Source inventory (last pipeline run)
| Source | Prov | Format | Last run | Rows | Latest date | Notes |
|---|---|---|---|---|---|---|
| Calgary Stockyards (Strathmore) | AB | HTML (homepage table) | fetched | 15 | 2026-10-16 | |
| Southern Alberta Livestock Exchange (SALE, Fort Macleod) | AB | HTML (date-selectable print page) | fetched | 122 | 2026-10-15 | |
| Thorsby Stockyards | AB | HTML (date-selectable print page) | fetched | 177 | 2026-10-15 | |
| Olds Auction Mart | AB | HTML ($/lb) | fetched | 21 | 2026-10-13 | |
| North Central Livestock Exchange (Clyde) | AB | HTML | fetched | 18 | 2026-10-13 | |
| Viking Auction Market | AB | HTML (same platform as SALE/Thorsby) | failed | FetchError: latest report on site is 2023-09-12 (stale, not ingested) | ||
| VJV Ponoka (Vold, Jones & Vold) | AB | no machine-readable report found on site; feeder ranges available via Alberta WLMR | indirect | Prices ingested via the Alberta Weekly Livestock Market Review (Ponoka column). | ||
| VJV Westlock | AB | unknown (not found) | not scraped | |||
| VJV Beaverlodge | AB | unknown (not found) | not scraped | |||
| Foothills Auctioneers (Stavely) | AB | HTML page with no prices in static HTML (likely embedded/JS) | not scraped | |||
| Perlich Bros Auction Market (Lethbridge) | AB | page fetched but no prices in static HTML (likely image/JS) | not scraped | |||
| Medicine Hat Feeding Company | AB | PDF downloads (per sale) | not scraped | PDF links fetchable; parser not written in prototype. | ||
| Vermilion Livestock Exchange | AB | HTML (cows/bulls) + PDF presort price list (feeders) | not scraped | Fetchable; feeder prices only in PDF; parser not written yet. | ||
| Innisfail Auction Market | AB | Wix site (JS-rendered) | not scraped | Would need headless browser. | ||
| Stettler Auction Mart | AB | Wix site (JS-rendered) | not scraped | |||
| Balog Auction Services (Lethbridge) | AB | HTML site reachable over HTTPS; no weight-class price table found (sale listings/PDF brochures) | not scraped | |||
| Bow Slope Shipping Association (Brooks) | AB | HTML archive of dated reports; prices not present in static HTML (dynamic) | not scraped | |||
| Beaver Hill Auction Services (Tofield) | AB | reports page covers sheep & goat sales only | not scraped | |||
| Burnt Lake Livestock Mart (Red Deer) | AB | no market report link found | not scraped | |||
| Dryland Cattle Trading Corp | AB | markets page has no auction price table (dealer/order-buyer) | not scraped | Possibly the 'Dryden' in the brief - no Alberta mart named Dryden found. | ||
| Provost Livestock Exchange | AB | HTML index + PDF presort price list per sale (same template as Saskatoon/Vermilion) | not scraped | |||
| Picture Butte Auction Market | AB | HTTP 404 on homepage | not scraped | |||
| Heartland Livestock Yorkton | SK | HTML (range, avg, head) | fetched | 20 | 2026-10-14 | |
| Heartland Livestock Swift Current | SK | HTML | fetched | 14 | 2026-10-09 | |
| Heartland Livestock Moose Jaw | SK | PDF (scanned image) | failed | FetchError: latest report PDF is a scanned image with no text layer (needs OCR): https://www.hls.ca/MooseJaw/Market%20Reports/2026/October%2015,%202026%20-%20Presort/Moose%20Jaw%20Market%20Report%20-%20Presort%20October%2015,%202026.pdf | ||
| Northern Livestock Sales Prince Albert | SK | HTML (+ PDF archive) | fetched | 15 | 2026-10-10 | |
| Northern Livestock Sales Lloydminster | SK | HTML (+ PDF archive) | fetched | 19 | 2026-10-10 | |
| Northern Livestock Sales Meadow Lake | SK | HTML (+ PDF archive) | fetched | 15 | 2026-10-10 | |
| Saskatoon Livestock Sales | SK | HTML ($/lb, paged archive) | fetched | 87 | 2026-10-16 | |
| Mankota Stockmen's Weigh Co. | SK | HTML (low/high/avg/head/avg wt) | fetched | 651 | 2026-10-16 | |
| Johnstone Auction Mart (Moose Jaw) | SK | HTML (breeding stock/per-head results only) | not scraped | No weight-class feeder reports; pairs/bred cows/bull sales only. | ||
| Candiac Livestock Market | SK | no market report found on site | not scraped | |||
| Cowtown Livestock Exchange (Maple Creek) | SK | no market report link found | not scraped | |||
| Assiniboia Livestock Auction | SK | WordPress posts; no price table in static HTML (likely PDF/image) | not scraped | |||
| Weyburn Livestock Exchange | SK | WordPress report posts (latest Oct 19, 2026); prices not in post text (attachment/image) | not scraped | |||
| Whitewood Livestock Sales | SK | site unreachable over HTTPS (timeout); HTTP port 80 blocked from build box | not scraped | |||
| Kelvington Stockyards | SK | site unreachable over HTTPS (timeout); HTTP port 80 blocked from build box | not scraped | |||
| Spiritwood Stockyards | SK | site unreachable (timeout) | not scraped | |||
| Shaunavon Livestock Sales | SK | no website listed (phone only, SK gov list) | not scraped | |||
| Chopper K Auction Mart (Alameda) | SK | Facebook only | not scraped | |||
| Jack Auction Group | SK | contact for sale dates | not scraped | |||
| Grunthal Livestock Auction Mart | MB | HTML | fetched | 16 | 2026-10-13 | |
| Ste. Rose Auction Mart | MB | HTML | fetched | 21 | 2026-10-15 | |
| Taylor Auctions (Melita) | MB | HTML ($/lb) | fetched | 15 | 2026-10-12 | |
| Heartland Livestock Virden | MB | PDF (text layer) | fetched | 19 | 2026-10-14 | |
| Heartland Livestock Brandon | MB | page has calendar only; no report found | not scraped | |||
| Gladstone Auction Mart | MB | HTML blog posts (bot-protection challenge: HTTP 202 to scripts) | indirect | Prices ingested via Manitoba Agriculture weekly report. | ||
| Killarney Auction Mart | MB | PDF per sale (wp-content uploads; no index link found) | indirect | Prices ingested via Manitoba Agriculture weekly report. | ||
| Ashern Auction Mart | MB | HTML showlists (no price table found) | indirect | Prices ingested via Manitoba Agriculture weekly report. | ||
| Winnipeg Livestock Sales | MB | HTML | fetched | 19 | 2026-10-16 | |
| Pipestone Livestock Sales | MB | site unreachable (timeout) | not scraped | |||
| Manitoba Agriculture - Weekly cattle, sheep & goat prices | MB | PDF (text layer), one per Friday | fetched | 514 | 2026-10-09 | |
| Alberta Weekly Livestock Market Review (Gov. of Alberta, Canfax data) | AB | PDF (dense multi-column; text layer) | fetched | 214 | 2026-10-16 | |
| USDA AMS Weekly Canadian Livestock & Poultry Summary (ams_3213) | AB/SK | PDF (US$/cwt; converted) | fetched | 32 | 2026-10-03 | |
| Alberta Weekly Crop Market Review (feed grain bids) | AB | fetched | 15 | 2026-10-16 | ||
| USDA AMS National Grain & Oilseed Processor Feedstuff Report (ams_3511) | US | PDF (US$/short ton; converted) | fetched | 5 | 2026-10-16 | |
| Alberta Grains PDQ cash prices | AB/SK/MB | JS web app (CWRS, CPSR, durum, canola, yellow peas only - no feed barley) | not scraped | Not used: no feed grains; app is JS-driven. Feed barley comes from the Alberta Crop Market Review instead. | ||
| DryCountry Farm & Ranch weekly Alberta roundup (reference only) | AB | HTML articles | not scraped | Used only as a cross-check of Strathmore prices; not republished. | ||
| Gov. of Saskatchewan - livestock auction mart list | SK | directory only (links out to marts) | not scraped | |||
| Canfax auction market links (directory) | all | directory | not scraped |
Republishing
This prototype copies published price ranges and links back to each source. Before going public, get written OK from each mart (and check the government/USDA terms of use). Marts usually like the exposure, and the featured-listing model gives them a reason to say yes.