Skip to main contentSkip to data table
Pharos
Pharos

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.

Latest Version

v3.6Jul 15, 2026

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, 2026

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
Details

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
Commit provenance not recorded
    v3.5Jun 19, 2026

    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
    Details

    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
    Commit provenance not recorded
      v3.4Jun 6, 2026

      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
      Details

      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
      Commit provenance not recorded
        v3.3May 14, 2026

        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
        Details

        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
        Commit provenance not recorded
          v3.2Mar 23, 2026

          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
          Details

          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
          Commit provenance not recorded
            v3.1Mar 23, 2026

            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
            Details

            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
            Commit provenance not recorded
              v3.0Mar 1, 2026Reconstructed

              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
              Details

              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
              Reconstructed from git commit history.1 commit
              • dcdefde
              v2.1Feb 27, 2026Reconstructed

              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
              Details

              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
              Reconstructed from git commit history.2 commits
              • 76aa8c6
              • 74aa1cd
              v2.0Feb 26, 2026Reconstructed

              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
              Details

              Impact Notes

              • Removed freezes component from formula
              • Severity cap increased 60 -> 68
              • Breadth cap increased 15 -> 17
              • Formula became: 100 - severity - breadth + trend
              Reconstructed from git commit history.1 commit
              • bc2cfcf
              v1.3Feb 26, 2026Reconstructed

              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
              Details

              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
              Reconstructed from git commit history.2 commits
              • 9508e29
              • ad75f4f
              v1.2Feb 25, 2026Reconstructed

              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)
              Details

              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)
              Reconstructed from git commit history.4 commits
              • 8acaa7d
              • a79049d
              • 2dfb975
              • 615256a
              v1.1Feb 25, 2026Reconstructed

              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
              Details

              Impact Notes

              • Live severity became recovery-sensitive instead of peak-anchored
              • Backfill behavior later diverged and was subsequently tuned
              Reconstructed from git commit history.1 commit
              • 14c75e7
              v1.0Feb 25, 2026Reconstructed

              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
              Details

              Impact Notes

              • Initial formula: 100 - severity - breadth - freezes + trend
              • Initial caps: severity 60, breadth 15, freezes 10
              • Condition bands introduced
              Reconstructed from git commit history.5 commits
              • c4c7caa
              • c21a6bd
              • 5eaf440
              • 6b3e7e5
              • a3f2b53