Three conventions, applied everywhere, chosen so that arithmetic never silently loses precision or meaning.
`price_minor: 19800` is $198.00. Floating-point money is a bug waiting for a rounding boundary; every monetary field in the API is an integer and a currency code.
Comparisons rank on landed cost, but sticker and shipping are carried as their own fields. Collapsing them loses information that cannot be recovered, and some callers genuinely need the sticker figure. Where a seller does not expose shipping, the field is null rather than zero — assuming zero is the most common way a comparison quietly becomes wrong.
`observed_at` is when the source said it. `ingested_at` is when we learned it. They differ, sometimes by a lot, and anything time-sensitive needs both.
{ "price_minor": 19800, "currency": "USD",
"shipping_minor": null,
"observed_at": "2026-09-07T14:02:11Z",
"ingested_at": "2026-09-07T14:02:44Z" }