The failure mode that should scare data teams more than an outage is the one that doesn't announce itself. An outage pages you. This doesn't. A field quietly stops populating, or starts arriving in a different unit, or a nightly feed silently half-fails — and everything downstream keeps running, with total confidence, on bad data. The dashboards render. The models score. The report ships. And the number has been wrong for a month before a human happens to notice something implausible.
Why your existing monitoring misses it
You already have great application observability: uptime, latency, error rates, traces. If an API goes down you know in seconds. But that stack watches the pipes, not the water. A pipeline can be perfectly healthy — job succeeded, table landed, row count nonzero — while the data flowing through it is garbage. Green dashboards, wrong numbers.
Data observability closes that gap by monitoring the data itself, the way you monitor services:
- Freshness — did this table update when it should have?
- Volume — is the row count within expected bounds? (A feed that drops from 1M to 400K rows "succeeded.")
- Distribution — did a column's mean, null rate, or cardinality shift?
- Schema — did a field get added, dropped, renamed, or retyped?
- Lineage — when something breaks, what's downstream and who's affected?
A concrete check
Most silent breaks are catchable with cheap statistical assertions run on every load:
def check_column(df, col, baseline):
null_rate = df[col].isnull().mean()
assert null_rate <= baseline[col]["max_null_rate"], \
f"{col} null rate {null_rate:.2%} exceeds baseline"
# distribution drift on a numeric field
if baseline[col]["numeric"]:
z = abs(df[col].mean() - baseline[col]["mean"]) / baseline[col]["std"]
assert z < 4, f"{col} mean shifted {z:.1f}σ from baseline"
Run these as pipeline gates. When one trips, you quarantine the load and alert an owner — before the bad data reaches the pricing model, not weeks after.
Why the asymmetry is absurd (and expensive) in insurance
An insurer will know within seconds if a web API is down, and within weeks if a critical pricing field has been feeding nulls into rating. Same company, wildly different blind spots. In a regulated business where a wrong number can become a mispriced book or a compliance breach, monitoring the data as rigorously as the services isn't a nice-to-have — it's overdue basic hygiene. And it's mostly unglamorous plumbing that pays for itself the first time it catches a silent break before a regulator does.
Where to start
You don't need a platform on day one:
- Pick your 10 most consequential tables (the ones feeding pricing, reserving, regulatory returns).
- Capture a baseline (freshness, volume, null rates, key distributions).
- Add gates that assert against the baseline on every load.
- Route failures to a named owner with a runbook.
Full write-up with the insurance framing:
Data Observability: Catching the Break Before the Regulator Does →
From IntelliBooks' series on the data foundation under insurance AI.
What's the worst silent-break you've shipped to production before anyone noticed?
Top comments (0)