The credibility of a reference comes from how its data is stored, not from how its charts look. Four principles govern the Cavport data model.
Each source row is stored once. Every revision becomes a new vintage with its own validity window, so history can always be reconstructed as it was known at the time. Nothing is silently corrected in place.
There is no column called "origin" anywhere in the schema, because the word hides at least six different facts. Cavport stores production country, processing country, the seller's market, the destination market and, only where legally determined, the customs origin, each with its own basis and confidence. A Paris retailer selling Chinese caviar is recorded as produced in China, sold from France, with the customs origin left blank unless a determination exists.
In the current snapshot only about 16% of listings state any production origin, all of it from seller text at low confidence, so no origin-specific price is published, and the earlier "origin premia" are withdrawn.
CITES and customs records are never merged without provenance. The caviar HS code (1604.31) and the substitute code (1604.32) are never combined, and the pre-2012 legacy code that merged them is flagged out of caviar-only series. Re-exports are tracked so transit hubs are never counted as producers, and exporter and importer figures are stored side by side with their gap shown as a reporting asymmetry. A unit value derived from trade data is labelled a trade unit value and never called a market price.
Production observations are typed at the schema level. A mixed-egg category can never feed a caviar aggregate, live-weight sturgeon feeds only the pipeline chart, and forecast rows feed only forecast charts. Confidence tiers (A, B, C) and resolution flags (species, country, product) travel with every row, so a chart can refuse to draw what is not yet good enough.
The production observation record, in outline:
production_observations obs_id, source_id, jurisdiction, species_code, product_type CAVIAR | FISH_EGGS_MIXED | STURGEON_LIVEWEIGHT | OTHER, observation_period, quantity, unit, value, currency, status OFFICIAL | PROVISIONAL | ESTIMATED | MODELLED | INFERRED | UNRESOLVED | FORECAST, confidence_tier A | B | C, species_resolution, country_resolution, product_resolution, release_date, vintage, revision_of, valid_from, system_from (bitemporal)The origin record, which stores the six facts the word "origin" usually hides, each with its own basis and confidence:
product_origin observation_id, production_country, production_country_basis CITES_DOC | DNA_PLUS_DOC | LABEL_DECLARED | SELLER_TEXT | UNKNOWN, farm_id, production_system, cites_source_code, cites_permit_ref, processing_country, original_repack_status ORIGINAL | REPACK | UNKNOWN, seller_market, destination_market, customs_origin, resolution_confidence HIGH | MEDIUM | LOW | NONEThe CITES and customs record, where the two domains are stored side by side and never merged without provenance:
trade_records domain CITES | CUSTOMS, -- never merged without provenance year, period, exporter, importer, origin_country, is_reexport, species_code, cites_source_code, cites_purpose, -- CITES only term, hs_code 1604.31 | 1604.32, -- caviar vs substitutes, never combined reporter_side EXPORTER | IMPORTER, quantity, unit, declared_value, value_currency, vintage, system_fromConfidence tiers (A, B, C) and the source hierarchy, from official caviar statistics down to biomass proxies, decide what a chart is allowed to draw. A derived trade unit value is labelled as such and never shown as a market price, and apparent consumption is production plus imports minus exports, with re-exports excluded and the stock-change and asymmetry caveats attached.
The full source register behind every production and trade figure is part of the methodology and is available to institutional and authority users. See Methodology and Governance.