Status
What version of the dashboard you're reading, when the data was last refreshed, and the health of the ingestion pipeline. This page is regenerated every nightly build; see "generated at" below.
System version
| Rubric version | v1.7.0 · changelog |
|---|---|
| Rubric frozen at | 2026-05-12 |
| DB schema version | v0 · envelope schema |
| Build commit | d04c7ef8 |
| Coverage target | 13 categories · 184 factors · 20 critical ★ |
| Page generated at | 2026-07-29T02:22:39Z |
Coverage
Per-protocol freshness
0 protocolsNo protocols graded yet. Once M3a (E-18) lands, every protocol's slug, letter grade, last-graded-at, and data-as-of timestamps will appear here, sorted with the most stale rows first.
Color legend: green ≤7d · yellow 8–30d · red >30d · gray ungraded.
Cadence buckets
refresh scheduleEvery factor in the 184-factor taxonomy is annotated with a refresh cadence. Bucket counts are derived from the cadence column in the methodology template; run health below comes from the exported pipeline log.
| Code | Bucket | Factors | Refresh model | SLA | Last run | 30d OK | 30d Err | State |
|---|---|---|---|---|---|---|---|---|
| C | Continuous | 9 | Nightly cron: 4 fetchers | Refreshed every 24h. Stale flag fires above 7 days. | N/A | 0 | 0 | No runs |
| E | Episodic | 37 | Weekly event-checker: 7 fetchers, write only on diff | Re-checked weekly; underlying value only changes on a discrete event. | N/A | 0 | 0 | No runs |
| S | Static | 115 | On-trigger (upgrade event detected) + quarterly curator sweep | Re-graded only when the protocol redeploys or upgrades. | N/A | 0 | 0 | No runs |
| RT | Real-time | 24 | Deferred to v1.1: needs streaming infra, not a cron | Not graded at v1.0; surfaced once the signal-engine ships. | N/A | N/A | N/A | Deferred |
Examples and full per-factor mapping: see methodology.
Pipeline run history
30 runs| Run at | Script | Bucket | Protocols | OK | Err | Duration | Errors | Trigger |
|---|---|---|---|---|---|---|---|---|
| 2026-07-26 21:34:17 | compose.py | compose | 1 | 1 | 0 | 1s | None | compose.py:lista-dao |
| 2026-07-26 21:29:10 | compose.py | compose | 1 | 1 | 0 | 2s | None | compose.py:justlend |
| 2026-07-26 14:55:27 | compose.py | compose | 1 | 1 | 0 | 0s | None | compose.py:wormhole |
| 2026-07-26 14:55:18 | compose.py | compose | 1 | 1 | 0 | 0s | None | compose.py:venus |
| 2026-07-26 14:55:10 | compose.py | compose | 1 | 1 | 0 | 0s | None | compose.py:synapse |
| 2026-07-26 14:55:01 | compose.py | compose | 1 | 1 | 0 | 0s | None | compose.py:rocket-pool |
| 2026-07-26 14:54:53 | compose.py | compose | 1 | 1 | 0 | 0s | None | compose.py:raydium |
| 2026-07-26 14:54:45 | compose.py | compose | 1 | 1 | 0 | 0s | None | compose.py:polymarket |
| 2026-07-26 14:52:51 | compose.py | compose | 1 | 1 | 0 | 0s | None | compose.py:pendle |
| 2026-07-26 14:52:43 | compose.py | compose | 1 | 1 | 0 | 0s | None | compose.py:ondo-finance |
| 2026-07-26 14:52:34 | compose.py | compose | 1 | 1 | 0 | 0s | None | compose.py:lombard |
| 2026-07-26 14:52:25 | compose.py | compose | 1 | 1 | 0 | 0s | None | compose.py:lido |
| 2026-07-26 14:52:17 | compose.py | compose | 1 | 1 | 0 | 0s | None | compose.py:kamino-lend |
| 2026-07-26 14:52:09 | compose.py | compose | 1 | 1 | 0 | 0s | None | compose.py:jito |
| 2026-07-26 14:47:52 | compose.py | compose | 1 | 1 | 0 | 0s | None | compose.py:ether-fi |
| 2026-07-26 14:47:43 | compose.py | compose | 1 | 1 | 0 | 0s | None | compose.py:debridge |
| 2026-07-26 14:47:35 | compose.py | compose | 1 | 1 | 0 | 0s | None | compose.py:centrifuge |
| 2026-07-26 14:04:56 | compose.py | compose | 1 | 1 | 0 | 0s | None | compose.py:hyperliquid |
| 2026-07-26 14:04:41 | compose.py | compose | 1 | 1 | 0 | 0s | None | compose.py:ethena |
| 2026-07-26 13:38:20 | compose.py | compose | 1 | 1 | 0 | 0s | None | compose.py:eigenlayer |
| 2026-07-26 13:38:04 | compose.py | compose | 1 | 1 | 0 | 0s | None | compose.py:babylon-protocol |
| 2026-07-26 08:21:01 | compose.py | compose | 1 | 1 | 0 | 2s | None | compose.py:save |
| 2026-07-26 08:04:29 | compose.py | compose | 1 | 1 | 0 | 2s | None | compose.py:justlend |
| 2026-07-26 07:36:23 | compose.py | compose | 1 | 1 | 0 | 2s | None | compose.py:lista-dao |
| 2026-07-26 07:10:45 | compose.py | compose | 1 | 1 | 0 | 2s | None | compose.py:marinade |
| 2026-07-26 07:02:16 | compose.py | compose | 1 | 1 | 0 | 2s | None | compose.py:liquity |
| 2026-07-26 06:54:03 | compose.py | compose | 1 | 1 | 0 | 2s | None | compose.py:m0 |
| 2026-07-26 06:45:38 | compose.py | compose | 1 | 1 | 0 | 2s | None | compose.py:kinetiq |
| 2026-07-26 05:56:55 | compose.py | compose | 1 | 1 | 0 | 2s | None | compose.py:liquid-collective |
| 2026-07-26 05:45:59 | compose.py | compose | 1 | 1 | 0 | 2s | None | compose.py:maple-finance |
Data freshness policy
- Green: last-updated within 7 days. Treat as current.
- Yellow: 8 to 30 days. Episodic factors expected to land here between weekly sweeps; static factors are normal at any age.
- Red: > 30 days for a continuous-cadence factor, or > 90 days for an episodic factor. Surface as a stale-data flag on the protocol page.
- Gray: never assessed. Pre-M3a state for new protocols.
Active incidents are surfaced via the per-protocol incident banner and do not change the structural letter grade (PD-033). The EVENT badge mechanism returns alongside the v1.1 streaming-signal engine.