A soft sensor or quality model can score with perfect schema and still advise on a world that moved ten minutes ago. The feature store returned values. Their timestamps say the compressor already tripped, the batch already ended, or the camera frame already aged out of the decision window.
Training–serving skew owns mismatched transforms. NTP clock skew owns join lies. Inference batching that misses the control cycle owns GPU scheduling. This note is feature freshness SLAs for plant feature stores—max age per feature family, and what happens when age breaches.

Useful discipline is specific: each online feature declares a maximum age at serve time (seconds for closed-loop advice, longer for shift reports). Serving layers emit age alongside the value. Models and gateways refuse or fall back when age exceeds the SLA—they do not silently score on stale rows. Pipelines that only alert humans while still writing rejects on expired features are theater.
Freshness failures worth naming
Historian lag after a network blip, batch ETL that runs “every 15 minutes” for a 30-second control need, cache layers that return last-good forever, and weekend jobs that stop updating a tag the model still reads. Cold-start SKUs and canary gates assume live features; stale stores poison all of them equally.

Publish freshness with the model card. Trend breach counts next to false rejects. Plants that treat age as a hard serve constraint keep advice inside the physical clock. Plants that only trend accuracy discover the model was right about last Tuesday.
