Skip to main content
Data acquisition · Buying guide

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.

DDDataDwip Team · Reviewed by the delivery team
Published 31 Oct 2026 14 min read

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.

Service Level Agreement · Section 2 · Availability

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.

What it commits toThe API returns a response 99.9% of the time, excluding every circumstance in which a scraper actually breaks. A response containing zero records, or the wrong currency, counts as available.
Why it protects nobody"Changes to target sites" is the entire job. Excluding it from the SLA excludes the thing you are paying for. And the credit only exists if you notice, measure and file within five days.
What it should say insteadKeep uptime, it's fine as far as it goes. Then add the five data clauses below. Availability is a property of the pipe; you are buying what comes through it.

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.
Figure 1 · Indicator, objective, agreement: the same measurement at three levels of commitment
SLI · the measurement Share of expected records delivered, per source, per run. Defined precisely enough that two people get the same number. SLO · the vendor's internal target 98% over a rolling 30 days. This is where their alerting lives. You will rarely see this number. SLA · the contract 97% per source per run, or a service credit. Looser than the SLO on purpose. gap = their margin
Figure 1. A number in an SLA without the SLI underneath it is unenforceable, because nobody has agreed how to count. Ask for the measurement definition before you ask for the percentage.

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.

Figure 2 · The error budget in rows, for a source producing 10,000 records a day
95% quality 500 wrong rows a day · 182,500 a year 99% quality 100 a day · 36,500 a year 99.5% quality 50 a day · 18,250 a year 99.9% quality 10 a day · 3,650 a year Bar length = wrong rows per day, to scale. "Wrong" means failed validation; silent schema drift is on top of this.
Figure 2. DataHen puts typical vendor accuracy commitments at 95% to 99%. The difference between those two numbers is a factor of five in bad data reaching your customers.

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

Section 3 · 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.

What it commits toTwo different things, and you need both: the delivery lands when promised, and the data inside it is recent. A delivery that arrives at 06:00 containing Tuesday's prices is on time and stale.
Weak wordingData is refreshed regularly. Daily collection. Neither has a clock. "Daily" without a delivery time and a maximum data age means any time, any age.
Strong wordingA per-source delivery time in a named timezone, an on-time percentage per month, and a maximum age of records at delivery. All three numbers, in the contract, not in an email.
Numbers to ask for: on-time delivery ≥ 95% of scheduled runs per month; maximum record age at delivery stated per source (24 hours for daily sources is a reasonable default); the delivery time in your timezone.

Clause 2 · Coverage

Section 4 · 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.

What it commits toA floor per source per run, measured against a defined baseline the vendor has to show you. A source that quietly loses a category fails this clause on the day it happens.
Weak wordingThe 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.
Strong wordingPer source, per run, against a stated baseline, with the attempted-versus-captured count in the delivery report so you can check it without asking.
Numbers to ask for: ≥ 97% of expected records per source per run; the baseline method written down; missed pages logged and reported, not just counted.

Clause 3 · Quality

Section 5 · Data 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.

What it commits toA quality number with its denominator attached: records passing a written rule set, per field. Plus a duplicate ceiling, and canary records that catch the failures no rule catches.
Weak wording99% 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.
Strong wordingField-level pass rate against rules you both signed, with the rules in a schedule. A separate duplicate limit. Named reference records verified every run.
Numbers to ask for: ≥ 99% of records pass validation per field; duplicates ≤ 0.5%; a reference set per source re-checked every run; the validation rules as a schedule to the contract.

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.

Section 6 · Incident Detection and Repair

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.

What it commits toTwo clocks, started separately. A detection clock that forces the vendor to run data checks on every delivery, because that is the only way to meet it. A repair clock that includes the backfill.
Weak wordingWe 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.
Strong wordingHours to detect, hours to repair, proactive notification, and re-collection of the broken period as part of the repair, all in the clause.
Numbers to ask for: detection ≤ 4 hours; repair ≤ 24 business hours; notification from the vendor, not from you; backfill included in "repaired".

Clause 5 · Schema stability

Section 7 · Schema

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.

What it commits toDrift on the vendor's side arrives as a scheduled change, never a surprise. The second sentence is the important one: a price that starts including tax is a new field, not a changed one.
Weak wordingThe 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.
Strong wordingA notice period for breaking changes, a shorter one for additive changes, and a rule that semantic changes get new names.
Numbers to ask for: 30 days for breaking changes; 7 days for additive; meaning changes require a new field.

Clause 6 · Support

Section 8 · Support and Escalation

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.

What it commits toA human answers inside a defined window in your working day, and a fast reply does not reset the repair clock.
Weak wording24/7 support. Usually a ticket queue. And "response" with no "resolution" lets a vendor acknowledge at hour one and fix at week two.
Strong wordingResponse time in business hours defined in your timezone, a named person, and an explicit statement that response and repair are different clocks.
Numbers to ask for: ≤ 2 business hours to respond, in your timezone; a named escalation contact; a shared channel rather than a ticket form.

Clause 7 · Reporting and remedies

Section 9 · Reporting, Credits and Termination

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.

What it commits toYou can see the numbers without asking. Credits happen to you rather than being something you apply for. And chronic failure has an exit.
Weak wordingCustomer 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.
Strong wordingPer-delivery QA report, monthly compliance report, automatic credits with a stated cap, and a termination right triggered by a defined pattern of misses.
Numbers to ask for: credits applied automatically; a cap you can live with (25% of the monthly fee is a common ceiling, and a vendor who offers it is telling you they expect to hit their numbers); termination after three misses in six months.

Clause 8 · Exclusions and exit

Read this one last and most carefully, because it is where good clauses go to die.

Section 10 · Exclusions

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.

What it commits toA short, specific list of exclusions, none of which is "the website changed". Dead sources come off the schedule visibly instead of being quietly averaged out. You leave with the code.
Weak wordingExcluding 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.
Strong wordingExclusions enumerated, each with a notification duty. Anti-bot changes and layout changes are explicitly inside the SLA. Code and data ownership stated in the same section as exit.
What to ask for: the exclusions list in writing before anything else; confirmation that site changes and blocking are covered, not excluded; code and data ownership on exit.

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.

Uptime only
0 / 33 points

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 happensUnder an uptime SLAUnder a data SLA
    A source's price field goes blank for a weekNot 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 sourceNot 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 daysExcluded. "Third-party website restrictions."Inside the SLA (clause 8). Repair clock runs from detection.
    Vendor renames price to pricing.amount over a weekendPermitted. "May improve the format from time to time."Breach of schema notice (clause 5).
    You notice the problem; nobody told youYour 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.

    Figure 3 · Where the SLA gets negotiated: against pilot results, not against a proposal
    1 · Source audit Agree the source list and the expected-record baselines per source 2 · 4-week pilot Run against the proposed numbers, daily deliveries, every check tracked 3 · Scorecard Measured freshness, coverage, quality and repair time vs targets 4 · Contract Set thresholds from what the pilot proved, with the measurement attached If the pilot misses the targets in two of four weeks, the numbers were wrong or the vendor was. Either way you found out before signing.
    Figure 3. A pilot is the only way to turn an SLA from a promise into a measurement. Write the acceptance criteria before it starts, in the same terms the contract will use.

    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.

    DD

    DataDwip TeamDataDwip runs managed data acquisition for data-product companies in the US, UK and Europe: 1,000+ websites monitored, 50 million records delivered, 5.0 average rating across 38 verified reviews on Clutch and GoodFirms. This article was reviewed by the engineers who run our dedicated teams and the people who negotiate our contracts. About us.

    Related reading

    Sources
    1. Google SRE book, Chapter 4, as summarised in ClickHouse, SLO, SLI and SLA explained — definitions and error-budget arithmetic
    2. DataHen, What SLAs should you expect from an enterprise web scraping provider — typical vendor commitments and accuracy ranges
    3. Scrapingdog, Service Level Agreement — a published scraping-API SLA, cited as an example of uptime-only terms
    4. dbt Labs, Data SLAs: best practices — the data-SLA dimensions and example targets
    5. 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.