Availability state
The base signal, per location scope.
- In-stock, out-of-stock, pre-order, discontinued
- Listed versus never-ranged as separate fields
- Low-stock hints as displayed
- Per-order quantity limits
- Backorder and lead time where shown
With stock-out duration measured, not just a flag on a run.
A flag saying out of stock today tells you almost nothing. A stock-out that started at 06:40, lasted four hours, showed a substitute and was replenished by lunchtime tells you what it cost and whether anyone noticed. The second dataset requires collecting the transitions, not the states.
Free pilot on your own sources, returned in 48 hours. No card, no trial clock — and you keep the sample data either way.
Last verified 5 August 2026 by the Actowiz Solutions Data Engineering team.
Stock and availability data records whether a product is purchasable: in-stock state, out-of-stock timing and duration, per-order quantity limits, low-stock hints, fulfilment options offered, pre-order and discontinued states, and replenishment events.
Almost every availability dataset samples states. The useful dataset captures transitions, and the difference is not cosmetic.
This is the field design decision that matters most.
listed records whether a product exists in that
retailer's or location's range at all.
in_stock records buyability where it is listed.
Merging them turns a commercial range gap into an apparent supply failure. We have watched brands escalate a 40% "unavailability" figure to supply chain and spend weeks discovering most of the gap was locations where the SKU was never ranged. Availability metrics are computed only across the listed population, so an on-shelf availability figure means what the phrase actually means.
Inventory depth, units on hand and allocation. A product being purchasable does not reveal how many units remain. Where a retailer displays a low-stock hint we capture it as displayed; we never estimate quantity.
Duration measurement is the core. Store-level and substitute capture are what supply teams build on.
The base signal, per location scope.
Where the commercial value sits.
The other half of the story.
What the shopper was offered instead.
How it can actually be received.
As fine as the retailer exposes.
A managed engagement, not a tool licence. We own the pipeline and everything that breaks in it.
Every engagement delivers a documented schema. These are the core fields; the full dictionary runs to 90+ and is agreed during scoping.
| Field | Type | What it captures | Refresh |
|---|---|---|---|
sku_key / retailer |
string | Product identity and retailer, joinable to pricing and content records | Every run |
location_scope / store_ref |
enum / string | Whether the record is national, area, zone or store level, and which location | Every run |
listed |
boolean | Whether the product is ranged here at all, separate from whether it is buyable | Every run |
in_stock / stock_state |
boolean / enum | Buyability plus a state enum covering pre-order and discontinued | Per cadence |
oos_since / oos_minutes_running |
timestamp / int | When the current stock-out began and how long it has run | Hourly tier |
oos_events_30d / oos_minutes_30d |
int | Event count and cumulative out-of-stock minutes over a trailing window | Daily |
availability_30d_pct |
decimal | Trailing availability computed across the listed population only | Daily |
substitute_shown / substitute_is_own_label
|
boolean | Whether an alternative was offered and whether it was own-label | Per cadence |
qty_limit / low_stock_hint |
int / string | Per-order caps and displayed low-stock text, captured as shown | Per cadence |
fulfilment |
array | Fulfilment methods offered at capture time | Per cadence |
event / event_at |
enum / timestamp | Transition records for stock-out and replenishment events | Hourly tier |
Availability percentages are computed only across the listed population. Including never-ranged locations in the denominator produces a figure that looks like a supply chain problem and is actually a range decision.
Availability exposure varies enormously by retailer. We confirm what each one publishes before build rather than assuming.
Some retailers expose availability only inside an add-to-basket flow. We do not add items to baskets or create accounts, so where availability is not publicly exposed we say so rather than substituting a national figure. Request a source we don't list →
We deliver into 40+ countries. These are the markets where this particular service is requested most, and the reason demand concentrates there.
| Market | Why demand concentrates here |
|---|---|
| United Kingdom | Grocery retailers expose store-level and click-and-collect availability more openly than most markets, which makes store-level analysis genuinely viable. |
| United States | Large store estates with widespread store stock checkers, and heavy demand from field sales teams prioritising visits. |
| India & GCC | Quick commerce dark stores where availability changes hourly and stock-outs are short, so duration capture matters most. |
| Germany & Netherlands | Strong online grocery with detailed fulfilment options exposed, supporting slot and method-level analysis. |
We run production collection across 40+ countries. Coverage depth varies by market and by source, so we confirm what is actually available for your specific markets during scoping rather than claiming uniform global coverage. Ask about a market we don't list →
Supply chain and availability leads dominate, with ecommerce and trade teams close behind.
Stock-outs at retailer level are invisible until sales dip, and by then the cause is unrecoverable and unattributable.
Hourly availability with stock-out start times, duration, replenishment events and trailing availability across your SKU and location set.
Lost sales from OOS
Your listings can be unbuyable at a retailer for hours without anyone noticing, while paid traffic keeps arriving.
Availability monitoring aligned to your trading hours with alerting, so spend is not driven to unbuyable listings.
Wasted media spend
Field visits are prioritised by intuition rather than by which stores actually have gaps.
Store-level availability where exposed, with repeat stock-out detection so visits target persistent problems.
On-shelf availability %
Supplier fill rate claims are hard to verify, and substitution is quietly moving volume to own-label.
Availability by SKU and store with substitution capture including own-label substitution flags.
Category availability
Forecasts are fitted to sales data that was suppressed by stock-outs nobody recorded.
Trailing out-of-stock minutes per SKU and location, so demand history can be corrected for suppressed availability.
Forecast accuracy
Availability is an observable operational quality signal ahead of reported performance.
Longitudinal availability panels by retailer, category and brand, computed on a consistent listed-population basis.
Signal lead time
Four patterns, with the outcome each is judged on.
Stock-out start times and durations are captured per SKU and location, producing cumulative out-of-stock minutes over trailing windows so the commercial cost can be sized rather than estimated.
Outcome: Lost-sales exposure quantified in minutes rather than described as a flag count.
Listed and in-stock are separate fields, and availability is computed only across the listed population, so never-ranged locations surface as a distinct range-gap metric.
Outcome: Supply chain effort directed at real stock-outs, with range gaps routed to a category conversation instead.
Where a retailer offers an alternative on an out-of-stock listing, the substitute is captured including whether it is own-label, with substitution frequency tracked by category.
Outcome: Volume leakage to own-label during stock-outs measured rather than suspected.
Availability is monitored at the cadence your paid traffic runs, so campaigns driving to unbuyable listings can be paused within the hour rather than the week.
Outcome: Paid spend stopped while listings are unbuyable instead of after the reporting cycle.
Clients rarely permit naming. These are real engagement shapes with identifying detail removed, so you can judge whether the work resembles your situation.
Availability was checked once daily, so short gaps between readings never appeared, and the reported availability figure was consistently better than field observations suggested.
Hourly collection with stock-out start timestamps, completed durations and replenishment events, plus availability computed across the listed population only.
Cumulative out-of-stock minutes revealed materially more exposure than the daily flag count had shown.
The category team knew branded stock-outs occurred but had no view of what shoppers were offered instead or how often it was own-label.
Substitute capture on out-of-stock listings including own-label substitution flags, with substitution frequency tracked by category.
Substitution patterns became measurable, informing both range and replenishment priorities.
Examples are anonymised at client request. Named references are available on request under NDA. See published case studies →
Before you commit to anything, we run this service against your own sources and send you the output. If the coverage isn't there, the sample will show you that too — which is the point. We would rather lose the deal at the pilot than at month three.
Same collection pipeline and same QA underneath. The difference is who holds the schedule and how the data reaches you.
We own the collection, the QA and the delivery. You receive clean data on a schedule and never touch a scraper.
Best fit: Teams who need the data, not the infrastructure.
The same collection pipeline exposed as an authenticated REST endpoint your systems query directly.
Best fit: Product and engineering teams building on live data.
A defined pull for a specific question — market sizing, diligence, a pitch, a one-off audit.
Best fit: Research, strategy and diligence work with a deadline.
Every engagement is quoted individually, because the honest answer depends on your scope: how many sources, how many records, how often, and how the data reaches you. We scope it with you, run a free pilot on your own sources, and then quote a fixed monthly figure — no per-request metering and no overage billing when volumes move. Request a quote and you will have a number after one call.
Transition capture requires continuous polling, which is where in-house availability projects quietly become daily snapshots.
| Consideration | In-house scraping team | Generic proxy / DIY tool | Actowiz managed feed |
|---|---|---|---|
| Time to first usable data | 6–12 weeks of engineering before anything is trustworthy | Days, but output needs manual cleanup before use | Free pilot in 48 hours, production in 5–10 business days |
| Who fixes it when a source changes | Your engineers, at the cost of their roadmap | You do — tools report failures, they don't resolve them | We do, same business day, inside the retainer |
| Data quality assurance | Whatever your team has time to build | None beyond HTTP success | Schema validation plus sampled human QA on every run |
| Compliance documentation | Rarely produced, then requested urgently by legal | Not provided; terms risk sits with you | Sources, method and lawful basis documented for review |
| Accountability | Distributed across a team with other priorities | A support ticket queue | A named engineer and an account owner |
| True annual cost | Engineer salaries, proxies, hosting, ongoing maintenance | Low licence fee plus significant hidden analyst time | One fixed monthly retainer, quoted after scoping |
Availability programmes focus almost entirely on detecting stock-outs. The restock event is equally informative and almost never captured, because capturing it requires continuous observation rather than periodic sampling.
Availability is polled continuously on the hourly tier, and transitions are written as event records with timestamps and the duration of the gap they closed. That last point matters: without it, you have two unlinked observations rather than one measured event.
The distinction between a long stock-out and a delisting is resolved by continued observation rather than assumed. Where a SKU has been unavailable long enough that a delist is plausible, we flag the ambiguity rather than deciding for you. This pairs naturally with catalog and assortment data, where delisting is the primary signal rather than an edge case.
Store-level availability is the most requested and least uniformly available field in this category. Retailers differ enormously in what they publish, and a vendor promising uniform store coverage is not describing reality.
We confirm per retailer which pattern applies before build, and
record location_scope on every record so you always
know what granularity a figure describes. Mixing store-level and
national records in one analysis without that field produces
conclusions that hold in neither.
Store-level collection also multiplies volume by store count, so we scope store sets deliberately — a representative sample across formats and regions usually answers the question that full-estate collection would answer at many times the cost.
Retailers, SKU set, location granularity and refresh cadence are scoped first, since store and zone counts drive volume.
You send us target sites, regions, SKUs or keywords. We return a field-level schema proposal, coverage estimate and refresh recommendation — usually within two working days.
We extract a real sample from your actual targets so you can inspect field fill rates, edge cases and match quality before any commitment.
Our engineers build extractors, then wire validation rules: type checks, range checks, duplicate detection and golden-record comparison against a manually verified subset.
Feeds run at your chosen cadence and land in the warehouse or bucket you already use. Schema changes are versioned and announced before they ship.
We watch coverage drift, fill rates and source changes daily. A named engineer owns your account, and layout breaks are fixed by us — not queued for you.
JSON, JSONL, CSV, Parquet or XLSX, delivered to Amazon S3, Google Cloud Storage, Azure Blob, SFTP, Snowflake, BigQuery, Databricks or a REST/GraphQL endpoint. Webhooks fire on completion, and every batch ships with a manifest containing row counts, schema version and QA results so your pipeline can fail loudly instead of silently ingesting a bad file.
We collect publicly displayed availability information. We do not add items to baskets, create customer accounts, use customer credentials or place orders to reveal availability that is not publicly exposed. Where availability is not public for a retailer, we state that rather than substituting a coarser figure.
These are contractual, not marketing copy. They appear in the engagement document.
| Commitment | What we hold ourselves to |
|---|---|
| Pilot turnaround | A real sample from your own sources within 48 hours of scoping, at no cost. |
| Go-live | Production collection running within 5–10 business days of sign-off. |
| Delivery punctuality | 99.5% on-schedule delivery, measured monthly and reported to you. |
| Breakage response | Source layout changes triaged same business day; critical sources inside 4 hours. |
| Data quality | Schema validation on every run plus sampled human QA before any delivery leaves us. |
| Escalation | A named engineer and an account owner, not a shared ticket queue. |
| Change requests | Field additions and source changes handled inside the retainer, not re-quoted. |
| Exit | Your historical data exported in full on request. No lock-in, no export fee. |
Plain definitions of the terms used on this page, so procurement and legal reviewers are working from the same vocabulary as your data team.
What supply chain, ecommerce and category teams ask during evaluation.
Because most stock-outs in fast-moving categories are short, so daily sampling misses them entirely and systematically understates the problem. It also cannot compute duration — two products flagged out of stock today may have been out for one hour and eleven days.
We capture transitions rather than states: stock-out start timestamps, running duration, event counts and cumulative out-of-stock minutes over trailing windows. That is what lets you size the commercial cost instead of counting flags.
Two separate fields, and it is the most consequential design
decision here. listed says whether the product is
ranged at that retailer or location at all;
in_stock says whether it is buyable where it is
listed.
Availability percentages are computed only across the listed population. Merging the fields turns a range gap into an apparent supply failure — we have seen brands escalate a 40% unavailability figure to supply chain and spend weeks discovering most of it was never-ranged locations.
Yes, as event records with timestamps and the duration of the gap they closed. Replenishment is as informative as the stock-out: recovery time distribution, replenishment cadence and repeat-offender patterns all come from it.
It requires continuous polling rather than sampling, which is why most availability datasets do not have it. On the hourly tier it is standard.
Where a retailer publishes it, yes — typically via a store stock checker or click-and-collect availability on the product page. Coverage varies enormously by retailer and we confirm the pattern per retailer before build.
Where availability is revealed only inside a basket flow, we
do not collect it, because that means creating sessions and
adding items. Every record carries
location_scope so you always know whether a
figure is store, area or national level.
No, and nobody scraping public pages does. Inventory depth, units on hand and allocation are internal retailer data.
Where a retailer displays a low-stock hint — "only 3 left" — we capture it exactly as displayed, as text or a number, without treating it as a verified quantity. Those hints are often thresholds rather than counts, and presenting them as inventory levels would be misleading.
We distinguish them where the evidence supports it, and flag the ambiguity where it does not. A product unavailable long enough that a delist is plausible carries a flag rather than a determination.
Continued observation resolves most cases: a delisted product typically disappears from the category listing entirely, while a stock-out usually remains listed as unavailable. For range analysis specifically, catalog and assortment data treats delisting as the primary signal.
Hourly where availability is the primary use case, several times daily otherwise. Daily is close to useless for transition capture — you will see that a product went out without seeing when, for how long, or whether it came back.
We scope which SKUs and locations justify hourly rather than applying it universally, since hourly collection across a full estate multiplies cost substantially for SKUs that rarely go out.
It can often explain them, and it is one of the more satisfying uses. Joining out-of-stock minutes per SKU and location to your own sales data usually accounts for a meaningful share of unexplained variance.
It also improves forecasting, because demand history suppressed by stock-outs is otherwise fitted as genuine low demand. Correcting for out-of-stock minutes is a straightforward adjustment once the duration data exists.
We quote individually. The dominant driver is locations multiplied by SKUs multiplied by frequency — store-level hourly collection is the most expensive configuration in our catalogue, and often unnecessary at full scope.
A defined SKU set at national online level with several-times-daily refresh sits at the lighter end. Store-level hourly across a large estate sits considerably higher. We design the location sample with you before quoting. One scoping call, a free pilot on your own SKUs within 48 hours, then a fixed monthly quote. Request a quote.
Send us a SKU list and retailers. We return availability with stock-out timing, duration and replenishment events within 48 hours.
Free pilot, no card, no obligation. We'll confirm which retailers expose store-level availability publicly.Our web scraping expertise is relied on by 4,000+ global enterprises including Zomato, Tata Consumer, Subway, and Expedia — helping them turn web data into growth.
Watch how businesses like yours are using Actowiz data to drive growth.
From Zomato to Expedia — see why global leaders trust us with their data.
Backed by automation, data volume, and enterprise-grade scale — we help businesses from startups to Fortune 500s extract competitive insights across the USA, UK, UAE, and beyond.
We partner with agencies, system integrators, and technology platforms to deliver end-to-end solutions across the retail and digital shelf ecosystem.
A national price average is the arithmetic mean of your best and worst markets. Why geo-resolved price collection changes the numbers, and how to do it correctly.
A one-time extraction of up to 50,000 Wegmans products with pricing and nutrition attributes. Why single-location scoping and attribute completeness decide whether a bulk catalogue is usable.
Brazil Car Rental Pricing Intelligence Report 2026 reveals rental price trends, market shifts, competitor rates, and opportunities for smarter pricing.
Whether you're a startup or a Fortune 500 — we have the right plan for your data needs.