## TL;DR
Derive freshness thresholds from the table's actual update history, not from a plausible default: measure the real gaps between loads over recent weeks, including weekends and batch schedules, and set the alert threshold beyond the observed normal maximum. An agent that guesses round numbers, such as one hour or one day, creates alert mismatches the moment the real cadence differs.

```text
agent hallucinating freshness thresholds error failed alert configuration mismatch
```

## Use this when
- The check or run fails with this symptom: agent-set freshness thresholds do not match the table's real update pattern.
- You are working on an agent setting or reviewing freshness alert configuration and the failure repeats on the same data or configuration.
- You need the failing rows, rule, or stage isolated before changing thresholds or code.

## Not for this skill when
- A table with a contractual freshness SLA, where the threshold must come from the SLA rather than observed history.
- The error text names a different tool, stage, or root cause. Match the verbatim error first and use that skill.

## Steps
1. Pull the table's load timestamps for the last several weeks and compute the distribution of gaps between loads. Verify: the real gap distribution, including the maximum normal gap, is known
2. Compare the configured threshold against that distribution and flag thresholds inside the normal range as false-alarm settings. Verify: each threshold is classified as safe or inside normal variation
3. Set the threshold beyond the observed normal maximum with headroom for known slow days, and note the schedule pattern it assumes. Verify: the new threshold cites the observed gaps it was derived from
4. Run the alert in report-only mode for one cycle and confirm it stays quiet on normal loads and fires on a genuinely late one. Verify: one quiet normal cycle and one correctly fired late load are observed

## Variant phrasings
### agent hallucinated freshness thresholds alert mismatch
The hallucinated-threshold phrasing.
### freshness alerts firing on normal schedule agent config
The false-alarm phrasing.
### wrong freshness threshold data quality agent
The wrong-threshold phrasing.

Compatibility: Agents configuring freshness or anomaly thresholds in Soda, Monte Carlo, or Great Expectations

## Why it happens
Thresholds feel like configuration trivia, so agents fill them with defaults that sound reasonable. But freshness is a property of the producing schedule, and a threshold divorced from that schedule either alarms on every batch weekend or sleeps through a real stall shorter than the guess.

## Edge cases / pitfalls
- Holiday and freeze schedules break weekly patterns; annotate known exceptions instead of widening the threshold for them.
- A table whose cadence just changed needs a fresh measurement window; old history argues for the old threshold.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_hA0G1ltboGsJDIxdPVeWSQ
