Stability Index Changelog
Full version history of PSI methodology decisions, from v1.0 to v3.6.
What This Controls
Stability Index Changelog version history
Use this changelog to trace how Pharos changed the related scoring, data-source, threshold, or interpretation rules over time. The latest card below is the current public contract; older entries are retained so historical charts and citations can be read against the rules active at the time.
Primary References
Latest Version
Core-market aggregate universe
PSI now measures the core stablecoin market without counting parent-linked variants or investment products as independent monetary supply.
Impact Snapshot
- The live and historical PSI universes include active core stablecoins, active cash equivalents, and PSI-only shadow assets
- Tracked variants remain readable on their detail and browse surfaces but no longer contribute market cap, trend, depeg severity, breadth, or DEWS stress breadth to PSI
- Stable-value investment products remain tracked for research while staying outside the ecosystem monetary aggregate
v3.6Jul 15, 2026Core-market aggregate universe
PSI now measures the core stablecoin market without counting parent-linked variants or investment products as independent monetary supply.
- The live and historical PSI universes include active core stablecoins, active cash equivalents, and PSI-only shadow assets
- Tracked variants remain readable on their detail and browse surfaces but no longer contribute market cap, trend, depeg severity, breadth, or DEWS stress breadth to PSI
- Stable-value investment products remain tracked for research while staying outside the ecosystem monetary aggregate
DetailsHide details
Core-market aggregate universe
PSI now measures the core stablecoin market without counting parent-linked variants or investment products as independent monetary supply.
- The live and historical PSI universes include active core stablecoins, active cash equivalents, and PSI-only shadow assets
- Tracked variants remain readable on their detail and browse surfaces but no longer contribute market cap, trend, depeg severity, breadth, or DEWS stress breadth to PSI
- Stable-value investment products remain tracked for research while staying outside the ecosystem monetary aggregate
Impact Notes
- The live and historical PSI universes include active core stablecoins, active cash equivalents, and PSI-only shadow assets
- Tracked variants remain readable on their detail and browse surfaces but no longer contribute market cap, trend, depeg severity, breadth, or DEWS stress breadth to PSI
- Stable-value investment products remain tracked for research while staying outside the ecosystem monetary aggregate
v3.5Jun 19, 2026Exact DEWS generation dependency
PSI now reads the exact DEWS generation advertised by the published-generation pointer instead of selecting latest rows at or before that timestamp.
- Retained stale DEWS rows for assets absent from the current published generation no longer fail PSI freshness
- Stress breadth is computed from a single coherent DEWS generation rather than a mix of current rows and older retained latest rows
- The no-pointer fallback remains bounded by the recent scan window and the existing staleness gate
DetailsHide details
Exact DEWS generation dependency
PSI now reads the exact DEWS generation advertised by the published-generation pointer instead of selecting latest rows at or before that timestamp.
- Retained stale DEWS rows for assets absent from the current published generation no longer fail PSI freshness
- Stress breadth is computed from a single coherent DEWS generation rather than a mix of current rows and older retained latest rows
- The no-pointer fallback remains bounded by the recent scan window and the existing staleness gate
Impact Notes
- Retained stale DEWS rows for assets absent from the current published generation no longer fail PSI freshness
- Stress breadth is computed from a single coherent DEWS generation rather than a mix of current rows and older retained latest rows
- The no-pointer fallback remains bounded by the recent scan window and the existing staleness gate
v3.4Jun 6, 2026Fail-closed DEWS freshness dependency
PSI now requires a non-empty, fresh latest DEWS row set before publishing a new sample, preventing stale or wiped stress signals from being treated as zero stress breadth.
- The 30-minute cron skips PSI sample publication when latest DEWS rows are absent, missing computed_at, or older than two compute-dews intervals
- DEWS stress breadth is now computed from warning-band rows only after dependency freshness is proven across the latest DEWS row set
- Public PSI remains anchored to the last valid stored sample instead of publishing a healthier fresh score from stale or absent early-warning inputs
DetailsHide details
Fail-closed DEWS freshness dependency
PSI now requires a non-empty, fresh latest DEWS row set before publishing a new sample, preventing stale or wiped stress signals from being treated as zero stress breadth.
- The 30-minute cron skips PSI sample publication when latest DEWS rows are absent, missing computed_at, or older than two compute-dews intervals
- DEWS stress breadth is now computed from warning-band rows only after dependency freshness is proven across the latest DEWS row set
- Public PSI remains anchored to the last valid stored sample instead of publishing a healthier fresh score from stale or absent early-warning inputs
Impact Notes
- The 30-minute cron skips PSI sample publication when latest DEWS rows are absent, missing computed_at, or older than two compute-dews intervals
- DEWS stress breadth is now computed from warning-band rows only after dependency freshness is proven across the latest DEWS row set
- Public PSI remains anchored to the last valid stored sample instead of publishing a healthier fresh score from stale or absent early-warning inputs
v3.3May 14, 2026Active-only PSI universe
PSI eligibility now resolves to active tracked stablecoins plus PSI-only shadow assets, excluding pre-launch and frozen tracked rows from live PSI denominators and repair scopes.
- Pre-launch tracked assets no longer enter the PSI-eligible registry before launch
- Frozen tracked archives remain available on readable public detail surfaces but are excluded from live PSI computation
- PSI-only shadow assets remain included for historical continuity and admin replay repairs
DetailsHide details
Active-only PSI universe
PSI eligibility now resolves to active tracked stablecoins plus PSI-only shadow assets, excluding pre-launch and frozen tracked rows from live PSI denominators and repair scopes.
- Pre-launch tracked assets no longer enter the PSI-eligible registry before launch
- Frozen tracked archives remain available on readable public detail surfaces but are excluded from live PSI computation
- PSI-only shadow assets remain included for historical continuity and admin replay repairs
Impact Notes
- Pre-launch tracked assets no longer enter the PSI-eligible registry before launch
- Frozen tracked archives remain available on readable public detail surfaces but are excluded from live PSI computation
- PSI-only shadow assets remain included for historical continuity and admin replay repairs
v3.2Mar 23, 2026Fail-closed depeg input availability
PSI no longer publishes a fresh sample when the active-depeg input query is unavailable, preventing false continuity from an incomplete core dependency.
- The 30-minute cron now returns degraded and skips the sample when `depeg_events` cannot be queried
- Only already-open depegs missing a current stablecoins price may use the replay-safe `price_cache` fallback; table-level depeg input loss is no longer treated as an empty event set
- Public PSI remains anchored to the last valid stored sample instead of silently publishing from partial core inputs
DetailsHide details
Fail-closed depeg input availability
PSI no longer publishes a fresh sample when the active-depeg input query is unavailable, preventing false continuity from an incomplete core dependency.
- The 30-minute cron now returns degraded and skips the sample when `depeg_events` cannot be queried
- Only already-open depegs missing a current stablecoins price may use the replay-safe `price_cache` fallback; table-level depeg input loss is no longer treated as an empty event set
- Public PSI remains anchored to the last valid stored sample instead of silently publishing from partial core inputs
Impact Notes
- The 30-minute cron now returns degraded and skips the sample when `depeg_events` cannot be queried
- Only already-open depegs missing a current stablecoins price may use the replay-safe `price_cache` fallback; table-level depeg input loss is no longer treated as an empty event set
- Public PSI remains anchored to the last valid stored sample instead of silently publishing from partial core inputs
v3.1Mar 23, 2026Open-depeg replay-price fallback
Active depegs now stay in PSI when the current stablecoins snapshot temporarily loses a usable price but a recent replay-safe price-cache entry still exists.
- Severity and breadth now fall back to the last replay-safe positive `price_cache` value for already-open depegs when the current stablecoins snapshot price is missing
- Replay fallback is capped to recent cache entries (6-hour TTL) rather than unbounded historical prices
- Prevents transient contributor/sample omissions during price-validation churn without changing the PSI formula, caps, or bands
DetailsHide details
Open-depeg replay-price fallback
Active depegs now stay in PSI when the current stablecoins snapshot temporarily loses a usable price but a recent replay-safe price-cache entry still exists.
- Severity and breadth now fall back to the last replay-safe positive `price_cache` value for already-open depegs when the current stablecoins snapshot price is missing
- Replay fallback is capped to recent cache entries (6-hour TTL) rather than unbounded historical prices
- Prevents transient contributor/sample omissions during price-validation churn without changing the PSI formula, caps, or bands
Impact Notes
- Severity and breadth now fall back to the last replay-safe positive `price_cache` value for already-open depegs when the current stablecoins snapshot price is missing
- Replay fallback is capped to recent cache entries (6-hour TTL) rather than unbounded historical prices
- Prevents transient contributor/sample omissions during price-validation churn without changing the PSI formula, caps, or bands
v3.0Mar 1, 2026ReconstructedDEWS stress breadth component
Added DEWS-derived stress breadth as an explicit PSI component to capture broad non-depeg stress.
- Formula changed to: 100 - severity - breadth - stressBreadth + trend
- New stressBreadth cap of 5 points
- Cron now reads latest DEWS bands (ALERT/WARNING/DANGER) to derive stress breadth
DetailsHide details
DEWS stress breadth component
Added DEWS-derived stress breadth as an explicit PSI component to capture broad non-depeg stress.
- Formula changed to: 100 - severity - breadth - stressBreadth + trend
- New stressBreadth cap of 5 points
- Cron now reads latest DEWS bands (ALERT/WARNING/DANGER) to derive stress breadth
Impact Notes
- Formula changed to: 100 - severity - breadth - stressBreadth + trend
- New stressBreadth cap of 5 points
- Cron now reads latest DEWS bands (ALERT/WARNING/DANGER) to derive stress breadth
- dcdefde
v2.1Feb 27, 2026ReconstructedTrend hardening and retention safety
Hardened trend input handling and operationalized rolling retention for PSI samples.
- NaN/Infinity trend values now treated as 0 before clamp
- No formula change, but edge-case score corruption prevented
- Sample retention/pruning standardized to 90 days
DetailsHide details
Trend hardening and retention safety
Hardened trend input handling and operationalized rolling retention for PSI samples.
- NaN/Infinity trend values now treated as 0 before clamp
- No formula change, but edge-case score corruption prevented
- Sample retention/pruning standardized to 90 days
Impact Notes
- NaN/Infinity trend values now treated as 0 before clamp
- No formula change, but edge-case score corruption prevented
- Sample retention/pruning standardized to 90 days
- 76aa8c6
- 74aa1cd
v2.0Feb 26, 2026ReconstructedRemoved freezes, rebalanced caps
Major methodology revision removing freezes and reallocating penalty capacity.
- Removed freezes component from formula
- Severity cap increased 60 -> 68
- Breadth cap increased 15 -> 17
- Formula became: 100 - severity - breadth + trend
DetailsHide details
Removed freezes, rebalanced caps
Major methodology revision removing freezes and reallocating penalty capacity.
- Removed freezes component from formula
- Severity cap increased 60 -> 68
- Breadth cap increased 15 -> 17
- Formula became: 100 - severity - breadth + trend
Impact Notes
- Removed freezes component from formula
- Severity cap increased 60 -> 68
- Breadth cap increased 15 -> 17
- Formula became: 100 - severity - breadth + trend
- bc2cfcf
v1.3Feb 26, 2026ReconstructedSample architecture and 24h average model
PSI moved to sample-first storage with daily snapshots and 24h average surfaced as the primary displayed signal.
- Introduced stability_index_samples table and daily snapshot aggregation
- API and UI switched to emphasize 24h average PSI
- Historical backfill path adjusted for peak-deviation realism
DetailsHide details
Sample architecture and 24h average model
PSI moved to sample-first storage with daily snapshots and 24h average surfaced as the primary displayed signal.
- Introduced stability_index_samples table and daily snapshot aggregation
- API and UI switched to emphasize 24h average PSI
- Historical backfill path adjusted for peak-deviation realism
Impact Notes
- Introduced stability_index_samples table and daily snapshot aggregation
- API and UI switched to emphasize 24h average PSI
- Historical backfill path adjusted for peak-deviation realism
- 9508e29
- ad75f4f
v1.2Feb 25, 2026Reconstructed15-minute chained compute + depeg depreciation/dedup
Operational and methodological upgrade to live 15-minute PSI with chronic-depeg depreciation and per-coin deduplication.
- PSI compute moved to chained 15-minute cron after stablecoin sync
- Introduced chronic-depeg depreciation (grace 30d, decay 120d, floor 25%)
- Active depegs deduped per coin (worst current bps, earliest start for age)
DetailsHide details
15-minute chained compute + depeg depreciation/dedup
Operational and methodological upgrade to live 15-minute PSI with chronic-depeg depreciation and per-coin deduplication.
- PSI compute moved to chained 15-minute cron after stablecoin sync
- Introduced chronic-depeg depreciation (grace 30d, decay 120d, floor 25%)
- Active depegs deduped per coin (worst current bps, earliest start for age)
Impact Notes
- PSI compute moved to chained 15-minute cron after stablecoin sync
- Introduced chronic-depeg depreciation (grace 30d, decay 120d, floor 25%)
- Active depegs deduped per coin (worst current bps, earliest start for age)
- 8acaa7d
- a79049d
- 2dfb975
- 615256a
v1.1Feb 25, 2026ReconstructedCurrent deviation semantics
Severity began using live current deviation rather than event peak deviation for active depegs.
- Live severity became recovery-sensitive instead of peak-anchored
- Backfill behavior later diverged and was subsequently tuned
DetailsHide details
Current deviation semantics
Severity began using live current deviation rather than event peak deviation for active depegs.
- Live severity became recovery-sensitive instead of peak-anchored
- Backfill behavior later diverged and was subsequently tuned
Impact Notes
- Live severity became recovery-sensitive instead of peak-anchored
- Backfill behavior later diverged and was subsequently tuned
- 14c75e7
v1.0Feb 25, 2026ReconstructedInitial PSI release
Launched PSI compute, API, cron persistence, and frontend integration.
- Initial formula: 100 - severity - breadth - freezes + trend
- Initial caps: severity 60, breadth 15, freezes 10
- Condition bands introduced
DetailsHide details
Initial PSI release
Launched PSI compute, API, cron persistence, and frontend integration.
- Initial formula: 100 - severity - breadth - freezes + trend
- Initial caps: severity 60, breadth 15, freezes 10
- Condition bands introduced
Impact Notes
- Initial formula: 100 - severity - breadth - freezes + trend
- Initial caps: severity 60, breadth 15, freezes 10
- Condition bands introduced
- c4c7caa
- c21a6bd
- 5eaf440
- 6b3e7e5
- a3f2b53