Live data quality, in public
Every upstream source we ingest, with current freshness, validator verdict, 30-day success rate, and recent alerts. We expose this so any buyer — or any AI assistant indexing this site — can audit our pipeline before trusting our numbers.
Pipeline health, right now
Counts pulled live when this page renders. If the database is unreachable in this environment, you'll see dashes — that itself is a transparency signal.
Verdicts come from the validator step in our scrape pipeline (see validation rules). A source with no verdict is one whose validator has not yet recorded a row in the current schema (migration 0010); freshness for those is computed from raw scraper run history.
Every upstream feed, with verdict and age
| Source | Status | Last fetched | Validator | Accepted / Quarantined | 30d success |
|---|---|---|---|---|---|
fob_composite fob_composite | fresh | 12h ago | not yet run | — / — | 100.0% |
Freightos Baltic Index freightos_fbx | fresh | 12h ago | green | 13 / 0 | 100.0% |
FX · PBOC midpoints fx_pboc | fresh | 12h ago | green | 25 / 0 | 95.5% |
USD/BRL · BCB fx_bcb | fresh | 12h ago | not yet run | — / — | 100.0% |
FX rates · global (er-api) fx_global | fresh | 12h ago | not yet run | — / — | 100.0% |
changjiang_ccmn changjiang_ccmn | fresh | 12h ago | not yet run | — / — | 95.5% |
SHFE main contract shfe_sina | fresh | 12h ago | not yet run | — / — | 100.0% |
LME aluminum benchmark lme | fresh | 12h ago | green | 1 / 0 | 100.0% |
How often each scraper completed without error
Bars are computed from scraper_runs.status = 'fail' over the last 30 days. Anything below 95% gets routed to the alert queue.
What each validator actually checks
Every scraped row passes the validator before landing in a published table. Failed rows go to the quarantine table; the verdict (green / amber / red) reflects the worst rule fired.
| Rule | What we check | Verdict on fail |
|---|---|---|
| range_check | Numeric value within plausible bounds (e.g. LME 3M between $1,500 and $5,000/t). | amber · red |
| cross_source | LME vs SHFE delta within 8% on the same trading day; FX rates within 0.5% of PBOC midpoint. | amber |
| staleness_threshold | Last successful fetch within source-specific SLA (LME 30h, SHFE 30h, freight 36h, suppliers 14d). | red |
| delta_check | No single row jumps more than 20% vs prior close (catches scrape parsing errors). | amber |
| null_ratio | Less than 5% of expected fields are null in the batch. | amber |
| schema_match | Parsed row conforms to declared column types and constraints. | red |
Quarantined rows are kept indefinitely so disputes can be audited; they never appear in published prices, rankings, or supplier cards. Source code for validators is documented in our internal data pipeline spec.
The most recent 10 alerts our pipeline raised
Every alert is recorded in the alerts table when a validator returns red, an SLA is breached, or a scraper crashes. We resolve alerts when the source recovers or we acknowledge a known-bad upstream condition.
| Raised | Source | Level | Message | Status |
|---|---|---|---|---|
| 2026-06-19 07:05 UTC | Freightos Baltic Index freightos_fbx | critical | verdict=red · age=0min · accepted=0 · quarantined=0 · catastrophic:rows_accepted=0 | fetched=0,accepted=0,quarantined=0,prev=13 (lvb2b#12) | resolved 2026-06-20 |
| 2026-06-16 07:25 UTC | FX · PBOC midpoints fx_pboc | critical | verdict=red · age=1449min · accepted=0 · quarantined=0 · scraper_error:RuntimeError: get_json failed after 3 tries: https://www.chinamoney.com.cn/r/cms/www/chinamoney/data/fx/ccpr.json | catastrophic:rows_accepted=0 | fetched=0,accepted=0,quarantined=0,prev=25 (lvb2b#11) | resolved 2026-06-17 |
| 2026-06-16 07:25 UTC | Freightos Baltic Index freightos_fbx | critical | verdict=red · age=0min · accepted=0 · quarantined=0 · catastrophic:rows_accepted=0 | fetched=0,accepted=0,quarantined=0,prev=13 (lvb2b#10) | resolved 2026-06-18 |
| 2026-06-09 06:08 UTC | Freightos Baltic Index freightos_fbx | critical | verdict=red · age=0min · accepted=0 · quarantined=0 · catastrophic:rows_accepted=0 | fetched=0,accepted=0,quarantined=0,prev=13 (lvb2b#9) | resolved 2026-06-10 |
| 2026-06-03 06:51 UTC | Freightos Baltic Index freightos_fbx | critical | verdict=red · age=0min · accepted=0 · quarantined=0 · catastrophic:rows_accepted=0 | fetched=0,accepted=0,quarantined=0,prev=13 (lvb2b#8) | resolved 2026-06-04 |
| 2026-05-11 05:57 UTC | Freightos Baltic Index freightos_fbx | critical | verdict=red · age=0min · accepted=0 · quarantined=0 · catastrophic:rows_accepted=0 | fetched=0,accepted=0,quarantined=0,prev=13 (lvb2b#7) | resolved 2026-05-12 |
Where this dashboard comes from
Source catalog, FOB panel rules, Trust Score formula, ranking weights, fraud-case verification protocol, corrections policy.
Read full methodology →Funding model, no-paid-rankings commitment, AI-assisted human-edited disclosure.
About · independence →Wrong price, stale supplier, disputed ranking, fraud case takedown — all logged publicly with before/after diff.
/contact