Web Data SLAs Explained: What Freshness, Coverage and Quality Guarantees to Demand From a Data Vendor
Most web data SLAs are uptime SLAs wearing a data SLA's clothes. "99.9% availability" means the API answered the phone. It says nothing about whether the price field was right, whether half the catalogue was missing, or how long a broken source stayed broken. This is a clause-by-clause walk through a real data vendor SLA: what each term actually commits the vendor to, the wording that quietly commits them to nothing, and the numbers to ask for instead.
In this article
The short version
- Uptime is the easiest thing for a vendor to promise and the least useful thing for you to receive. A web data SLA needs five separate commitments: freshness, coverage, quality, detection-and-repair time, and schema stability.
- Every number needs a measurement method written next to it. "99% accuracy" with no stated denominator is a marketing claim with a percent sign.
- At 10,000 records a day, 99% quality is 100 wrong rows every day. Decide what your product can absorb before you accept a number.
- The clauses that separate a real SLA from a decorative one are usually the quiet ones: exclusions, how credits are claimed, and whether you can leave.
- A pilot with written acceptance criteria is worth more than any clause. Negotiate the SLA against pilot results, not against a proposal.
The SLA you'll be offered
Here is a lightly edited version of an SLA we were shown by a prospect last quarter. Their incumbent vendor had sent it as proof of reliability. The prospect's data team had just spent eleven days chasing a pricing anomaly that turned out to be a currency field that had silently switched from GBP to EUR on one source.
2.1 The Provider shall use commercially reasonable efforts to make the Service available with a Monthly Uptime Percentage of at least 99.9%.
2.2 "Available" means the Service API responds to requests. Downtime caused by scheduled maintenance, third-party website restrictions, or changes to target sites is excluded from the calculation.
2.3 In the event the Monthly Uptime Percentage falls below 99.9%, the Customer may request a service credit by submitting a claim within five (5) business days of the end of the affected month.
This is not an unusual document. Public SLAs from web scraping API providers tend to look the same: one published scraping-API SLA commits to a 99% monthly uptime target, allocates credits "based on the actual duration of service downtime" with no stated bands, requires a claim "within a specific timeframe" it does not specify, excludes third-party website restrictions, and says nothing at all about data accuracy or freshness. DataHen's guide to enterprise scraping SLAs describes the pattern from the vendor side: most agreements guarantee delivery volume, carve out maintenance, third-party failures and source-site blocking, and leave the client to detect breaches and file for credits.
None of this is malicious. Uptime is what infrastructure teams know how to measure, and vendors write SLAs for the things they can measure. The problem is that the thing you need measured is different.
Three words that make SLAs readable
The site reliability discipline that grew up inside Google sorted this out years ago, and borrowing its vocabulary makes every SLA conversation shorter. The SRE definitions, from Google's SRE book:
- An SLI (indicator) is the measurement itself. Good events divided by total events, over a window. Share of expected records delivered per source per run.
- An SLO (objective) is the target the provider holds itself to internally. 98% coverage over 30 days.
- An SLA (agreement) is the external contract that attaches consequences to missing a target. 97% coverage, or a credit. The SLA threshold is normally looser than the internal SLO, so the provider's alarms fire before yours would.
Two habits follow from this. First, for every percentage in a vendor's SLA, ask for the SLI: measured against what denominator, over what window, by whom. Second, ask what their internal SLO is. A vendor whose SLO and SLA are the same number has no margin, which means you will be the one who finds out when they miss.
What 99% means at your volume
SRE also gives us the error budget: one minus the objective, expressed in whatever unit hurts. For uptime that is minutes a month. 99.9% is about 43 minutes of downtime per month; 99% is about 7.2 hours. For data, the unit that hurts is wrong rows.
This is the exercise to do before any negotiation: take your actual daily volume, apply the vendor's proposed quality number, and look at the row count. Then ask whether your product can absorb that many wrong values a day, and what each one costs when a customer finds it first. For a pricing product, a wrong price is a support ticket at best and a refund at worst. For a model training pipeline, it may be invisible and permanent.
The right target is the one your product can tolerate, not the one with the most nines. Each additional nine is dramatically more expensive to deliver, because catching the last 0.1% means checks that catch things no automated rule finds. There is a fuller account of those checks in why web scrapers break and how to catch them in hours.
The clauses, one by one
What follows is the structure of a web data SLA that actually protects the buyer. For each clause: the wording as it should appear, what it commits the vendor to, the weak version to reject, and the number to ask for. The specimen wording is drawn from our own agreement, lightly generalised; you are welcome to lift it.
Clause 1 · Freshness
3.1 The Provider shall deliver each scheduled dataset by the agreed delivery time for that source, such that at least 95% of scheduled deliveries in any calendar month arrive on time.
3.2 Records in each delivery shall have been collected no more than 24 hours before delivery, except where a longer collection window is specified for the source in Schedule A.
Data is refreshed regularly.
Daily collection.Neither has a clock. "Daily" without a delivery time and a maximum data age means any time, any age.
Clause 2 · Coverage
4.1 For each source listed in Schedule A, each run shall capture not less than 97% of the Expected Records for that source.
4.2 "Expected Records" means the record count established during the Pilot for that source, adjusted by the rolling 30-day median of subsequent runs, and reported to the Customer with each delivery.
The Provider shall deliver a minimum of 1,000,000 records per month.An aggregate volume guarantee. Forty sources can hit a total while three of them are dead.
Clause 3 · Quality
5.1 At least 99% of records in each delivery shall pass the Validation Rules in Schedule B, applied per field.
5.2 Duplicate records, identified by the primary key in Schedule B, shall not exceed 0.5% of any delivery.
5.3 The Provider shall maintain a set of reference records for each source, agreed with the Customer, and shall verify each delivery against them.
99% data accuracy.Accuracy against what? Measured by whom? One overall percentage lets a vendor average a perfect title field against a broken price field and still hit the number.
Clause 4 · Detection and repair
This is the clause almost no vendor volunteers, and it is the one that decides how much a breakage costs you. Sources change structure about 2.6 times a year each. At 40 sources that is a break every three or four days. What matters is not whether breaks happen but how long each one runs before it is caught, and how long it stays broken after that.
6.1 The Provider shall detect any failure of a source to meet Sections 3 to 5 within 4 hours of the affected run, and shall notify the Customer without waiting to be asked.
6.2 The Provider shall restore the affected source to compliance within 24 business hours of detection, and shall re-collect records for the affected period.
We monitor continuously.
Issues are resolved promptly.Neither is a number. "Monitor" with no detection target is an intention. "Resolved" without backfill leaves the bad window in your warehouse.
Clause 5 · Schema stability
7.1 The Provider shall give not less than 30 days' written notice of any change to field names, types, units or structure in the delivered schema.
7.2 Additive changes (new fields) may be made on 7 days' notice. No change shall alter the meaning of an existing field without a new field name.
The Provider reserves the right to improve the data format from time to time.That sentence has broken more downstream pipelines than any anti-bot vendor.
Clause 6 · Support
8.1 The Provider shall respond to Customer issues within 2 business hours, with business hours defined as 09:00 to 18:00 in the Customer's timezone, and shall provide a named escalation contact.
8.2 Response times under 8.1 are separate from, and do not extend, the repair times under Section 6.
24/7 support.Usually a ticket queue. And "response" with no "resolution" lets a vendor acknowledge at hour one and fix at week two.
Clause 7 · Reporting and remedies
9.1 Each delivery shall be accompanied by a quality report stating coverage, validation pass rate and duplicate rate for that delivery. The Provider shall issue a monthly SLA compliance report.
9.2 Where any target in Sections 3 to 6 is missed, the Provider shall apply a service credit automatically to the next invoice, without requiring a claim. Credits in any month are capped at 25% of the monthly fee.
9.3 If targets are missed in any three months of a rolling six, the Customer may terminate on 30 days' notice without penalty.
Customer may request a credit by submitting a claim within five business days.A credit you must detect, prove and file for inside a week is designed not to be paid.
Clause 8 · Exclusions and exit
Read this one last and most carefully, because it is where good clauses go to die.
10.1 The targets in Sections 3 to 6 do not apply during scheduled maintenance notified 72 hours in advance, or where the Customer has not provided access or credentials it agreed to provide.
10.2 Where a source becomes permanently unavailable (the site closes, or lawfully prohibits collection), the Provider shall notify the Customer within 2 business days and the source shall be removed from Schedule A rather than excluded from measurement.
10.3 On termination for any reason, the Customer retains all delivered data and the source code of the collectors built for it.
Excluding third-party website restrictions or changes to target sites.This is the clause in the opening example. It excludes the entire category of thing the vendor exists to handle.
Have a vendor SLA in front of you right now?
Send it over and we'll mark it up against these eight clauses, free, within two business days. No deck, no pitch, just the annotated document back.
Grade a vendor's SLA
Tick each thing the agreement in front of you actually commits to in writing. Not what the sales deck says, not what the account manager promised on the call: what is in the signed document.
Biggest gaps
Weights reflect how much each term changes what you actually receive. A model, not legal advice.
Uptime SLA vs data SLA, side by side
The same five situations, under the two kinds of agreement. The uptime SLA column is the opening example; the data SLA column is the eight clauses above.
| What happens | Under an uptime SLA | Under a data SLA |
|---|---|---|
| A source's price field goes blank for a week | Not a breach. API was available. | Breach of quality (clause 3) and detection (clause 4). Credit applied; backfill owed. |
| A category vanishes from the nav, volume drops 30% on one source | Not a breach. Aggregate volume still met. | Breach of coverage (clause 2) on that source. Visible in the delivery report that day. |
| Anti-bot update blocks a source for three days | Excluded. "Third-party website restrictions." | Inside the SLA (clause 8). Repair clock runs from detection. |
Vendor renames price to pricing.amount over a weekend | Permitted. "May improve the format from time to time." | Breach of schema notice (clause 5). |
| You notice the problem; nobody told you | Your job. File a claim within five days. | Their breach of proactive notification (clause 4). Credit is automatic either way. |
The pattern is that an uptime SLA makes every real failure either invisible or excluded. Which is not a reason to distrust the vendor. It is a reason to insist the document describe the service you are buying.
How ours reads, and what to ask us
The specimen clauses above are a lightly generalised version of the agreement behind our dedicated data acquisition teams, so it is fair to say where the real numbers land and where you should push.
- Freshness: 95% of scheduled deliveries on time. Coverage: at least 97% of expected records per source per run. Quality: 99% of records pass validation, duplicates under 0.5%, verified against six validation layers on every delivery.
- Detection and repair: breakages detected within 4 hours and fixed within 24 business hours, with the window re-collected. Schema: 30 days' notice for breaking changes. Support: 2 business hours, with IST overlap for US and UK mornings, in a shared channel.
- Remedies: service credits capped at 25% of the monthly fee. SLAs start after the onboarding month, because the first month is spent establishing the baselines the SLA measures against.
- Exit: you keep the code and the data, after the pilot and after any term.
Three things worth asking us, or any vendor, before signing. Ask for the exclusions list in writing, and read it against clause 8. Ask what the internal SLO is behind each SLA number. And ask to see a real weekly source-health digest from a current client, with the client's name removed, so you know what the reporting in clause 7 looks like in practice rather than in a schedule.
If the numbers above are more than you need, that is useful information too. A one-off dataset does not need a repair clock; our web scraping services page is the right starting point for that, and enterprise web crawling for very large one-time crawls. The maths on when an ongoing team beats an in-house hire is in the true cost of an in-house web scraping engineer. And every source, under any of these arrangements, goes through a terms and robots review first, as set out in web scraping laws and ethics.
Two places where these clauses are running in production: a daily hotel rate pipeline across OTAs, where the freshness clause does the work, and a continuous tyre pricing feed, where schema stability matters most because the data feeds a pricing model directly.
Frequently asked questions
What should a web data SLA include?
Five commitments beyond uptime: freshness (delivery time and maximum data age), coverage (expected records per source per run), quality (field-level validation pass rate and a duplicate ceiling), detection and repair times for breakages, and a notice period for schema changes. Each needs its measurement method written next to it, automatic credits for misses, and a short, specific exclusions list that does not exclude site changes.
What is a reasonable data freshness SLA?
Two numbers together: an on-time percentage for scheduled deliveries (95% per month is a defensible floor) and a maximum age of records at delivery (24 hours for daily sources). A delivery time with no maximum data age lets a vendor deliver stale data punctually.
What does a 99% data quality SLA actually mean?
It depends entirely on the denominator. The useful version is "99% of records pass a written set of validation rules, measured per field". At 10,000 records a day that still allows 100 wrong rows daily, so check whether your product can absorb that before accepting it. "99% accuracy" with no stated rules or measurement method is a marketing claim.
How are web scraping SLAs different from API uptime SLAs?
An uptime SLA measures whether the service responded. A web scraping SLA has to measure what came back: whether all the expected records arrived, whether the fields were populated and valid, how recent the data was, and how quickly a broken source was detected and fixed. Most published scraping-API SLAs cover only uptime and explicitly exclude changes to target sites, which is the main thing that goes wrong.
What service credit should a data vendor SLA offer?
Credits as a percentage of the monthly fee, applied automatically to the next invoice without a claim process, with a stated monthly cap. 25% of the monthly fee is a common ceiling. More important than the percentage is a termination right if targets are missed in, say, three months of a rolling six, so chronic underperformance has an exit rather than a discount.
Should the SLA apply during the pilot?
The pilot should be measured against the proposed SLA numbers, which is how you find out whether they are achievable on your sources. But credits usually start after the onboarding month, because the baselines the SLA measures against (expected records per source, reference records) are established during it. Ask for the pilot scorecard to use the same metrics and definitions as the contract.
Want the SLA tested on your sources before you sign anything?
A 4-week pilot starts at $3,000, runs against the numbers above from day five, and ends with a scorecard in the same terms as the contract. If it misses in two of four weeks, you walk away with the code and the data.
Related reading
- Google SRE book, Chapter 4, as summarised in ClickHouse, SLO, SLI and SLA explained — definitions and error-budget arithmetic
- DataHen, What SLAs should you expect from an enterprise web scraping provider — typical vendor commitments and accuracy ranges
- Scrapingdog, Service Level Agreement — a published scraping-API SLA, cited as an example of uptime-only terms
- dbt Labs, Data SLAs: best practices — the data-SLA dimensions and example targets
- DataDwip, Dedicated data acquisition teams — the SLA figures quoted for our own agreement
Specimen clauses are illustrative and not legal advice; have your counsel adapt them. Figures current as of October 2026.