API: What Are Inferred documents And 5 Day Out Of Stock Methodology?
EDITED's data is crawl-based: it reflects what EDITED observed on a retailer's site. When an option isn't freshly crawled on a given day, EDITED infers that day by carrying the most recent observation forward, so a daily series stays stable rather than flickering as products are delisted and re-listed. Any value carried forward this way, most importantly in_stock, is marked as inferred, and you can filter inferred records out.
How the 5-day fill works
When EDITED crawls an option on a given day (call it day n), that day's data (including its in_stock status) is replicated forward for up to five days (days n+1 to n+5). This keeps the data stable when retailers delist and re-list options a few days later instead of leaving them out of stock, and when there are gaps in EDITED's own crawling (for example long-running crawls that don't finish within 24 hours). Those inferred days keep the day-n in_stock status, unless EDITED receives fresh data for the option, which overwrites the inferred days from that point on.

When an option is out of stock
An option counts as out of stock only when all its linked SKUs are out of stock; in_stock reports whether at least one SKU is still in stock. If EDITED hasn't crawled the option again by day n+6, it is treated as out of stock from that day on: in_stock is reported as false, and every child SKU carries out_of_stock: true, regardless of the option's previous in_stock status. A fresh crawl at any point resets this window.
Example
- Day 1: EDITED crawls Option A and sees it out of stock, so in_stock is false. Days 2 to 6 are inferred from day 1 and stay out of stock.
- Day 4: EDITED crawls again and sees it in stock. This fresh reading overwrites the inferred days 4 to 6; days 5 to 9 are then inferred from day 4 and show in_stock: true.
- Day 10: with no new crawl since day 4, Option A is treated as out of stock again (in_stock: false, and each child SKU out_of_stock: true).
Working with inferred data
- Inferred records carry an inferred field set to true; freshly observed records don't have the field. That flag is how you tell them apart.
- To restrict a query to freshly observed records, use the not_inferred: true filter.
See also: Inferred data & out-of-stock (public docs) for the high-level concept.