Logiciel Contact Us
Success Stories Tech News Contact Us

Freshness SLA.

A freshness SLA is a specific agreement about how current data must stay, capping the allowed gap between a real-world event and that event appearing in the system people rely on.

01 / 09 Freshness SLA

Definition

A freshness SLA is a specific promise about how current a dataset has to be, an agreed limit on the gap between when something actually happened, a sale, a sensor reading, a support ticket, and when that event shows up, ready to query, in the system people rely on. It is usually written as a hard number: data must be no more than fifteen minutes old, or the table must finish its daily update by 6am, or new records must appear within one hour of the source event. Whatever the number, a freshness SLA answers exactly one question, how stale can this get before it counts as a problem, and it answers it precisely enough that nobody has to guess.

Freshness SLAs exist because stale data is one of the most common ways a data pipeline quietly fails without technically failing at all. A job can run every night without a single error and still leave a downstream table twelve hours behind where it should be, because the source system was slow, or a queue backed up, or a scheduled job simply runs later than it used to. Nobody notices a red error message, because there is not one. What there is instead is a dashboard that looks completely normal while describing yesterday's world, and a freshness SLA exists specifically to catch that gap before someone makes a decision on data that has quietly gone out of date.

The naive version of freshness is a vague sense that data updates "regularly" or "throughout the day," language that means something different to everyone reading it and gives nobody a way to tell when it has actually been violated. A real freshness SLA replaces that with a specific window and a specific measurement point, data must land within two hours of the source event, checked every fifteen minutes, alerting whoever owns the pipeline the moment the gap exceeds that window. Without the number and the check behind it, "fairly fresh" is not a commitment, it is a description that happens to sound like one.

By 2026, freshness SLAs are one of the more common data SLAs teams actually put into writing, more so than completeness or accuracy targets, largely because freshness is the easiest property to measure automatically and the easiest one for a business stakeholder to understand at a glance. Most data observability and orchestration tools now surface a freshness check as close to a default feature, tracking the gap between the last successful update and the current time and flagging it the moment it crosses a set threshold. It has become close to table stakes for any pipeline feeding something people check daily.

This page covers how freshness SLAs get set and monitored, how a freshness SLA sits inside the broader idea of a data SLA, how it differs from latency, and where committing to a tight freshness window is worth the engineering cost versus where it is not. The idea worth carrying forward is that freshness is really a question about trust in the moment someone looks at the data. A number that is accurate but eighteen hours old can be more dangerous than a number that is roughly right and current, because the person reading it usually has no way to tell which one they are looking at.

Key Takeaways

  • A freshness SLA sets a specific limit on how much time can pass between a real-world event and that event showing up in the data people rely on.
  • It exists because a pipeline can run without errors while quietly falling behind, leaving a dashboard that looks normal but describes an outdated state of the world.
  • A real freshness SLA has a hard number and an automated check behind it, not a vague description like 'updates regularly.'
  • By 2026, freshness is one of the most commonly monitored data SLA properties, since it is easy to measure and easy for stakeholders to understand.
  • Freshness is ultimately about trust at the moment of reading, since data that is technically accurate but badly out of date can mislead more than data that is roughly right and current.

How a Freshness SLA Works

A freshness SLA works by defining two points in time and agreeing on the maximum gap allowed between them: the moment the underlying event actually happened, and the moment that event is queryable in the system someone relies on. For a batch pipeline, that source moment might be "the transaction occurred" and the destination moment "the row appears in the reporting table." For a streaming pipeline, both moments can be seconds apart, but the same basic structure applies, an event time and an availability time, with the SLA capping the distance between them.

Thresholds usually get set per table or per pipeline rather than as one blanket number across an entire platform, since a table feeding a live operational dashboard has a very different reasonable freshness window than one feeding a monthly board report. Some teams go a level deeper and set thresholds per partition, so that a freshness SLA can flag a single region or a single day's data falling behind, even while the rest of the table looks perfectly current, which catches problems a table-level check would miss entirely.

Monitoring typically runs on a schedule that checks the gap between now and the last successful update, comparing it against the threshold at regular intervals, often every few minutes for something time-sensitive and every hour or so for something checked once a day. When the gap exceeds the agreed window, the check fires an alert rather than waiting for the next scheduled run of the pipeline itself, since a pipeline that has stopped running entirely will never trigger its own alert from the inside.

Real freshness SLAs also have to account for schedules that are not continuous, weekends when a source system does not send data, holidays when a business process pauses, maintenance windows when a warehouse is deliberately offline. A freshness check that does not account for these will fire constant false alarms every Saturday morning, and teams that ignore enough false alarms eventually start ignoring real ones too. Building the calendar logic into the check up front is tedious but saves the SLA from losing credibility within its first month.

A Freshness SLA Compared to a General Data SLA

A general data SLA is the umbrella agreement covering however many properties matter for a given pipeline, freshness, completeness, accuracy, availability, sometimes all at once. A freshness SLA is one slice of that umbrella, focused entirely on timing. Plenty of pipelines have a freshness SLA and nothing else formally agreed, which works fine as long as freshness really is the property that matters most for that particular use case.

The tradeoff of focusing on freshness alone is that it leaves a real gap uncovered: data can arrive exactly on time and still be wrong, missing rows, broken joins, bad values, and a freshness only SLA will not catch any of that. A pipeline can hit its freshness target every single day for months while quietly delivering corrupted data the whole time, and nobody watching only the freshness metric would ever know.

A full data SLA closes that gap by adding completeness and accuracy checks alongside the timing check, but it costs more to build and maintain. Each additional dimension needs its own definition, its own threshold, and its own monitoring, and negotiating all of that with a consuming team takes longer than agreeing on a single freshness number everyone already intuitively understands. The extra work is worth it once a pipeline matters enough that being merely on time is no longer a strong enough guarantee for the people relying on it.

In practice, most teams start with a freshness SLA because it is the easiest to define and the easiest to sell to a stakeholder, and expand into completeness and accuracy once the pipeline has proven important enough to justify the extra work. That progression is usually fine, as long as everyone remembers that a freshness SLA alone is a partial guarantee, not a full one, and does not get treated as proof that the data is trustworthy in every sense that matters.

What Makes Freshness Different From Latency

Latency measures how long it takes a single piece of data to travel from source to destination, the time between a record entering the pipeline and that same record landing in its final table. Freshness measures something related but distinct: how much time has passed between now and the last successful update, which describes the current state of the whole table rather than the trip taken by any one record. They are cousins, but they answer different questions.

The gap between the two shows up clearly when a pipeline stops running. A pipeline can have excellent latency, each record that does make it through arrives in under a second, and still have terrible freshness, because the pipeline itself has been down for six hours and nothing new has come through at all during that time. Latency describes the speed of the pipeline when it is working. Freshness describes whether the pipeline is actually working right now.

The reverse confusion also happens. A table can look perfectly fresh on average, the last update landed twenty minutes ago, while individual records inside it took wildly different amounts of time to arrive, some in seconds, some held up for hours by a slow upstream dependency. A freshness metric measured at the table level can hide exactly the kind of per-record delay that a latency metric would expose, so relying on freshness alone to judge pipeline health misses real problems sitting underneath the average.

Which metric to prioritize depends on what you are actually trying to guarantee. If the consumer cares whether the table as a whole reflects a recent enough state of the world, freshness is the right thing to promise and monitor. If the consumer cares about how quickly any individual event gets processed, say for a fraud check that has to react within seconds, latency is the metric that actually matters, and a freshness SLA alone would not catch a slow outlier hiding inside an otherwise healthy average.

Where a Freshness SLA Fits and Where It Does Not

A freshness SLA fits naturally wherever the value of the data depends heavily on how recent it is. Inventory levels feeding a purchasing decision, operational metrics a team checks every morning, pricing data that needs to reflect the market as it stands right now, all of these lose real value the moment they go stale, and a freshness SLA gives everyone a shared, checkable definition of how stale is too stale.

It also fits well ahead of anything that acts automatically and quickly on incoming data, fraud detection, real time personalization, alerting systems that watch for anomalies as they happen. In these cases the entire value of the system depends on reacting to something close to the present moment, and a freshness SLA, tightly monitored, is often the single most important guarantee in the whole pipeline, more important even than completeness or accuracy for that specific use case.

It fits poorly for long-range historical analysis, where a data warehouse is being queried to understand a trend across the last two years, and whether the most recent partition landed six hours or sixteen hours ago changes nothing about the conclusion. Committing to a tight freshness window here is engineering effort spent protecting against a delay that nobody analyzing the data would ever notice or care about.

It also fits poorly as the only guarantee on a pipeline where the real risk is not staleness but wrongness. A freshness SLA that is met perfectly every day can create a false sense that the data is under control, while the actual problem, a broken transformation quietly corrupting values, sails through completely unmonitored because nobody set up a check for it. A freshness SLA answers only one question, and it is worth being honest about which question actually matters most for a given pipeline before deciding that answering it is enough.

How to Set a Freshness SLA Well

Set the threshold based on how the data actually gets used, not on a round number that sounds reasonable. If the dashboard in question is checked once each morning, a freshness SLA of thirty minutes is solving a problem nobody has, while a target of "before 8am" solves the one that actually exists. Ask what decision the data feeds and how often that decision gets made, and let the answer drive the number rather than picking something that just sounds tight enough to be impressive.

Ground the target in what the pipeline can actually deliver given its upstream dependencies, not in what would be ideal in a perfect world. If a source system only exports data every four hours, no amount of downstream engineering will make the freshness SLA tighter than that four hour ceiling, and setting one anyway just guarantees a permanently broken commitment. Look at the slowest link in the whole chain before agreeing to a number, since that link sets the real floor.

Build calendar awareness into the check itself, accounting for weekends, holidays, and known maintenance windows where no new data is expected. A freshness alert that fires every Saturday because the source system does not run on weekends trains everyone to ignore alerts on principle, and once people start ignoring alerts as a habit, a real Tuesday afternoon failure gets the same shrug as a routine Saturday one.

Monitor the gap continuously rather than only checking at the moment a scheduled job finishes, since the real risk is a pipeline that has stopped running altogether and will therefore never report its own freshness from the inside. An external check comparing the current time against the last successful update, running independently of the pipeline's own schedule, is what actually catches a silent failure, rather than a check embedded inside a job that never gets the chance to run.

Pair the freshness SLA with at least a basic completeness or accuracy check, so that hitting the freshness target does not get mistaken for the data being fully trustworthy. A pipeline that is always on time and sometimes wrong is a worse outcome than one that is occasionally a little late and always correct, and a freshness SLA on its own has no way to tell you which situation you are actually in.

Best Practices

  • Set the freshness threshold based on how often the data is actually consumed, not on an arbitrary round number.
  • Ground the target in the pipeline's real upstream constraints, since no downstream fix beats a slow source system.
  • Build weekends, holidays, and maintenance windows into the check so false alarms do not train people to ignore real ones.
  • Monitor the gap between now and the last update continuously, rather than only at the moment a scheduled job finishes.
  • Pair a freshness SLA with a completeness or accuracy check so being on time is never mistaken for being correct.

Common Misconceptions

  • A freshness SLA is not a full data SLA; it says nothing about whether the data is complete or accurate, only whether it is recent.
  • A freshness SLA is not the same as low latency; a pipeline can process each record quickly and still be stale if it stops running entirely.
  • A freshness SLA is not something to check only when a job finishes; the real risk is a pipeline that never runs at all, which needs an independent check.
  • A freshness SLA is not automatically appropriate for every table; long-range historical data often does not benefit from a tight freshness commitment.
  • A freshness SLA is not a guarantee of trust on its own; data can be perfectly on time and still be wrong underneath.
Keep exploring

Related terms.

Questions

Frequently asked.

What is a freshness SLA?

A freshness SLA is a specific agreement about how current data must be, defined as the maximum allowed time between a real-world event and that event becoming available in the system people rely on, checked automatically and enforced with an alert when it slips.

How is a freshness SLA different from a data SLA?

A data SLA can cover several properties at once, freshness, completeness, accuracy, and availability. A freshness SLA is narrower, focused only on timing, and it is common for a pipeline to have a freshness SLA without a full data SLA covering everything else.

Is freshness the same as latency?

No. Latency measures how long a single record takes to travel through a pipeline. Freshness measures how much time has passed since the last successful update to the whole table, so a pipeline can have fast latency and still look stale if it has simply stopped running.

How do you set a good freshness threshold?

A good threshold comes from how the data is actually used, how often a decision gets made from it, and what the slowest upstream source in the pipeline can realistically support, not from picking a round number that sounds appropriately tight.

What happens when a freshness SLA is breached?

A monitoring system typically fires an alert to the pipeline owner once the gap between now and the last successful update crosses the agreed threshold, prompting an investigation into whether the source is late, the pipeline failed, or a downstream step is stuck.

Does a freshness SLA guarantee the data is correct?

No. A freshness SLA only measures how recent the data is, not whether the values inside it are accurate or complete. Data can meet its freshness target every day while still containing errors that a separate accuracy check would be needed to catch.

Do freshness SLAs need to account for weekends and holidays?

Yes, in most cases. Source systems often do not send new data on weekends or holidays, and a freshness check that ignores that will fire false alarms regularly, which trains teams to dismiss alerts and makes the SLA less useful over time.

Which pipelines need a tight freshness SLA?

Pipelines feeding fast decisions or automated actions, like fraud detection, live pricing, or daily operational dashboards, benefit most from a tight freshness commitment. Long-range historical analysis usually does not, since a few hours of lag rarely changes the conclusions drawn from it.

Next step

Put Freshness SLA into practice.

If you're building this into a real product - governed, secured, and scaled - we can help. Talk to the engineers who ship it.

Book an Intro Call