Skip to main content

Tutorial · data freshness

/status shows not only uptime, but the honesty of market data.

Provider cards show the time of the latest known data, while SLA-row meaning varies by job. ENTSO-E vintage rows report capture-attempt timing only: a fresh signal does not prove the parsed response is non-empty or usable.

/status6 SLA statesper-zone DA capture

Tutorial · data freshness

What to inspect

Source cards

Provider cards show fresh, stale, pending or blocked for OREE, Energy Map and other integrations.

SLA rows

Freshness SLA separately shows forecast, JAO, alert and other platform-job signals; each row's policy defines what its signal means.

ENTSO-E vintages

For vintage rows, within_sla confirms archived-attempt timing, not parsed-content usability.

Honesty

Breached and no_signal are explicit caveats; within_sla must be read with the signal-specific boundary.

HowTo: read /status

1. Start with provider cards

Fresh means the latest observation is inside its freshness window; stale means the write is older than the budget.

2. Move to Freshness SLA

These rows cover jobs without their own source card. A signal may mean fact freshness, a content deadline or capture-attempt timing, depending on the row policy.

3. Decode the state

within_sla means the signal satisfies its row policy, at_risk is near the limit, breached violates it, no_signal means none is recorded, blocked means signal or setup is missing, and unclassified means a signal exists without a policy.

4. Isolate ENTSO-E vintages

For these rows, a fresh timestamp means only an archived capture attempt. The response can carry 0 parsed points or events, so a separate audit must establish usability.

5. Carry the caveat into the decision

The trader should see both an SLA violation and the row-specific meaning boundary beside the forecast, brief or export, not only in a backend status.

What not to claim

No status shortcut

within_sla means compliance with that row's policy. For ENTSO-E vintages it does not prove parsed market data is non-empty or usable.

No backfill fiction

A point-in-time forward archive is not rebuilt as a real forecast after the delivery window has passed.

No hidden gaps

When Alvo sees its own source gap, public status should show it even if the rest of the system is running.

Tutorial · data freshness

Checklist and states

Morning freshness read

Minimal sequence before a market read or brief review.

1. Open /status before using a market signal.
2. Read source-card health: fresh, stale, pending or blocked.
3. Read Freshness SLA rows for platform-only captures.
4. Check forecast-da-capture rows separately for UA, PL and HU.
5. Treat a stale/breached row as a decision caveat, not a hidden backend detail.
SLA taxonomy

The six states /status shows for platform-only freshness rows.

within_sla: latest signal satisfies this row's SLA policy; read the row-specific caveat before judging content
at_risk: the latest signal is close to breaching this row's policy
breached: the latest signal violates this row's SLA policy
no_signal: an SLA policy exists, but no signal has been recorded yet
blocked: the required signal or setup is unavailable
unclassified: a signal exists, but no SLA policy classifies it yet

Tutorial · data freshness

Data freshness FAQ

Why does /status have provider cards and Freshness SLA?

Provider cards belong to integrations, while Freshness SLA shows supplemental platform-job signals. Each row's policy defines its meaning.

Why do ENTSO-E vintage rows have a separate caveat?

They aggregate archived-attempt timing even when a response has 0 parsed points or events. A fresh signal therefore is not proof of usable forecast content.

Can Alvo just rerun capture and recover everything?

Not always. When an upstream source served a full-day hole, the forward archive for past delivery days remains lost point-in-time evidence; the system self-heals only when that gap leaves the lag window.

Want to inspect the live state?

Open /status: it shows source health, SLA rows and the raw /api/health payload for integrations.

Open /status