Compare › Methodology › Data quality
Data quality: how fresh every dealer price is right now
(when this hourly run began reading dealer pages; the page generated time is in the footer)
As of Nov 11, 8:53 AM ET, 112 of 178 tracked dealer prices (63%) are fresh, meaning read from the dealer's product page within the last 120 minutes. 10 of 15 dealers have at least one fresh price. Only fresh prices are ranked. This page is rebuilt by every hourly refresh from the same data as the price tables.
Freshness rules
Dealer prices and spot are refreshed every hour, around the clock (24/7), usually around 44 minutes past the hour. A dealer price older than 120 minutes is never ranked or called the cheapest: it shows as a dated “See price” link instead (one short price feed: older than 60 minutes). The premium index is marked stale after 70 minutes, which means the next hourly refresh is late or was missed.
Each tracked dealer-and-product pair is in exactly one of these states on every run:
- Fresh price: A price was read from the dealer's product page and checked within the last 120 minutes. Only these prices are ranked.
- Out of stock: We read the dealer's page and the dealer marks the product out of stock or sold out.
- No price: We read the page but found no usable single-unit price, or the price failed our sanity check (at or below melt value, or far above it), or the product is missing from the dealer's feed.
- Page unreadable: The dealer's page could not be fetched or read on this run (for example a timeout or an error page). We try again on the next hourly run.
- Not checked recently: Not checked recently: the dealer blocks automated requests or its terms do not allow automated collection, its feed is older than the freshness limit, or the last price is older than 120 minutes.
Dealer freshness and check results
| Dealer | Last successful check | Fresh now | Out of stock | No price | Page unreadable | Not checked recently | 7-day pages read / unreadable | Why prices are excluded |
|---|---|---|---|---|---|---|---|---|
| APMEX | Nov 11, 8:59 AM ET | 100% (17 of 17) | 0 | 0 | 0 | 0 | 2920 / 4 | — |
| Agate Metals | Nov 11, 9:00 AM ET | 100% (16 of 16) | 0 | 0 | 0 | 0 | 2722 / 30 | — |
| Bullion Standard | Nov 11, 9:00 AM ET | 100% (15 of 15) | 0 | 0 | 0 | 0 | 2578 / 2 | — |
| Golden Eagle Coins | Nov 11, 8:54 AM ET | 100% (2 of 2) | 0 | 0 | 0 | 0 | 344 / 0 | — |
| Summit Metals | Nov 11, 9:00 AM ET | 93% (14 of 15) | 1 | 0 | 0 | 0 | 2579 / 1 | dealer marks it out of stock (1) |
| SD Bullion | Nov 11, 8:59 AM ET | 88% (14 of 16) | 2 | 0 | 0 | 0 | 2718 / 34 | dealer marks it out of stock (2) |
| At Cost Metals | Nov 11, 9:00 AM ET | 75% (12 of 16) | 0 | 4 | 0 | 0 | 2752 / 0 | not listed, sold out, or failed the price sanity check (4) |
| Monument Metals | Nov 11, 9:00 AM ET | 73% (11 of 15) | 0 | 4 | 0 | 0 | 2580 / 0 | not listed, sold out, or failed the price sanity check (4) |
| MintBuilder | Nov 11, 9:00 AM ET | 62% (8 of 13) | 2 | 3 | 0 | 0 | 2236 / 0 | price rejected: at or below melt value (3); dealer marks it out of stock (2) |
| Hero Bullion | Nov 11, 8:59 AM ET | 18% (3 of 17) | 14 | 0 | 0 | 0 | 2924 / 0 | dealer marks it out of stock (14) |
| BGASC | — | 0% (0 of 5) | 0 | 0 | 0 | 5 | 0 / 0 | dealer blocks automated requests (5) |
| JM Bullion | — | 0% (0 of 7) | 0 | 0 | 0 | 7 | 0 / 0 | dealer blocks automated requests (7) |
| Kitco | Nov 11, 3:01 AM ET | 0% (0 of 16) | 0 | 2 | 0 | 14 | 196 / 0 | dealer's product feed is older than the freshness limit (14); product not in the dealer's feed (2) |
| Money Metals Exchange | — | 0% (0 of 5) | 0 | 0 | 0 | 5 | 0 / 0 | dealer blocks automated requests (5) |
| Provident Metals | — | 0% (0 of 3) | 0 | 0 | 0 | 3 | 0 / 0 | dealer blocks automated requests (3) |
Fresh prices by product
| Product | Fresh share | Out of stock | No price | Page unreadable | Not checked recently |
|---|---|---|---|---|---|
| 1 oz American Gold Eagle | 67% (8 of 12) | 1 | 0 | 0 | 3 |
| 1/10 oz American Gold Eagle | 55% (6 of 11) | 1 | 1 | 0 | 3 |
| 1 oz American Gold Buffalo | 54% (7 of 13) | 2 | 1 | 0 | 3 |
| 1 oz Canadian Gold Maple Leaf | 62% (8 of 13) | 2 | 0 | 0 | 3 |
| 1 oz South African Gold Krugerrand | 54% (7 of 13) | 2 | 0 | 0 | 4 |
| 1 oz British Gold Britannia | 40% (2 of 5) | 2 | 1 | 0 | 0 |
| 1 oz Austrian Gold Philharmonic | 80% (8 of 10) | 0 | 0 | 0 | 2 |
| 1 oz Gold Bar | 36% (4 of 11) | 2 | 3 | 0 | 2 |
| 1 oz American Silver Eagle | 54% (7 of 13) | 0 | 2 | 0 | 4 |
| 1 oz Canadian Silver Maple Leaf | 73% (8 of 11) | 1 | 0 | 0 | 2 |
| 1 oz British Silver Britannia | 78% (7 of 9) | 1 | 0 | 0 | 1 |
| 1 oz Silver Buffalo Round | 75% (6 of 8) | 1 | 0 | 0 | 1 |
| 10 oz Silver Bar | 50% (6 of 12) | 1 | 2 | 0 | 3 |
| 1 Kilo Silver Bar | 70% (7 of 10) | 1 | 2 | 0 | 0 |
| 100 oz Silver Bar | 78% (7 of 9) | 1 | 0 | 0 | 1 |
| 90% "Junk" Silver – $1 Face Value | 75% (6 of 8) | 0 | 1 | 0 | 1 |
| 1 oz American Platinum Eagle | 80% (8 of 10) | 1 | 0 | 0 | 1 |
Rounding and purity
Bullion Price Check uses one rounding and purity rule for melt and inventory figures in the API and MCP tools (melt_value, quote, junk_silver_melt, and the inventory tools): karat purity is the exact fraction k/24 (so 14k is 14/24; 24k is 24/24 — pass purity 0.999 when that is the intended fineness); a caller-supplied purity fraction is used as given; arithmetic is done at full precision; US dollar amounts are rounded half-up to the nearest cent only when displayed. Intermediate fields such as fine troy ounces may be shown to more than two decimals for inspection, but they are not used as pre-rounded inputs to the dollar figure. The same lot, with the same weight, purity and spot, returns the same melt value in each of those tools.
Price history retention
Every hourly refresh appends one point per product (spot, lowest fresh price and each dealer's fresh price) to the price history. The public file for each product, /data/history/<product>.json, keeps the most recent 2,000 points (about 80 days at one refresh an hour). Nothing is deleted from the full record: each point is also written to a monthly archive, /data/history/archive/<product>/<YYYY-MM>.json (schema version 1), and every refresh is a versioned commit in our source repository, so any past snapshot can be rebuilt. The check log behind this page keeps 30 days of runs.
Download this data
Machine-readable copy: /data/data-quality.json (same numbers as this page, CC BY 4.0, cite Bullion Price Check with the timestamp). How prices are collected and how dealers can dispute a price: data provenance · methodology · developer docs · API and MCP changelog.