Skip to main content
Pharos

Stability Index Changelog: v3 archive

Historical release evidence. Return to current versions and the complete history index.

What this controls

Stability Index Changelog: v3 archive version history

Use this changelog to trace how Pharos changed the related scoring, data-source, threshold, or interpretation rules over time. Entries record the contract active at each release; archived rules are retained so historical charts and citations can be read against the rules active at the time.

Latest version

v3.67Oct 10, 2026

Canonical historical repair and unavailable-input retention

PSI v3.67 can change repaired historical scores by using one canonical replay path, paired supply identities and the post-audit eligible event universe. Missing required trend or DEWS history preserves accepted days rather than fabricating flat growth or zero stress; formula weights and condition bands are unchanged.

Impact snapshot

  • Audit-triggered repairs and bounded backfills share daily prices, native-domain evidence, DEWS archives and persisted input provenance. Event exclusion or restoration recomputes PSI from the post-audit eligible universe in the same atomic transaction.
  • Historical seven-day trend compares only paired admitted supply identities, independently of the current market-cap denominator. Observed zero remains valid, but an unavailable or unusable prior denominator holds the accepted day instead of inventing flat growth.
  • Missing required v3 DEWS archives remain unavailable and preserve accepted days; an observed all-CALM archive still contributes measured zero stress. Archive date and row count remain part of replay provenance.
  • Every historical entrypoint loads the same full twenty-one-day supply lookback, combining the seven-day trend interval and fourteen-day as-of margin, so narrow replay windows do not truncate the eligible cohort.
v3.67Oct 10, 2026

Canonical historical repair and unavailable-input retention

PSI v3.67 can change repaired historical scores by using one canonical replay path, paired supply identities and the post-audit eligible event universe. Missing required trend or DEWS history preserves accepted days rather than fabricating flat growth or zero stress; formula weights and condition bands are unchanged.

  • Audit-triggered repairs and bounded backfills share daily prices, native-domain evidence, DEWS archives and persisted input provenance. Event exclusion or restoration recomputes PSI from the post-audit eligible universe in the same atomic transaction.
  • Historical seven-day trend compares only paired admitted supply identities, independently of the current market-cap denominator. Observed zero remains valid, but an unavailable or unusable prior denominator holds the accepted day instead of inventing flat growth.
  • Missing required v3 DEWS archives remain unavailable and preserve accepted days; an observed all-CALM archive still contributes measured zero stress. Archive date and row count remain part of replay provenance.
  • Every historical entrypoint loads the same full twenty-one-day supply lookback, combining the seven-day trend interval and fourteen-day as-of margin, so narrow replay windows do not truncate the eligible cohort.
Details

Impact notes

  • Audit-triggered repairs and bounded backfills share daily prices, native-domain evidence, DEWS archives and persisted input provenance. Event exclusion or restoration recomputes PSI from the post-audit eligible universe in the same atomic transaction.
  • Historical seven-day trend compares only paired admitted supply identities, independently of the current market-cap denominator. Observed zero remains valid, but an unavailable or unusable prior denominator holds the accepted day instead of inventing flat growth.
  • Missing required v3 DEWS archives remain unavailable and preserve accepted days; an observed all-CALM archive still contributes measured zero stress. Archive date and row count remain part of replay provenance.
  • Every historical entrypoint loads the same full twenty-one-day supply lookback, combining the seven-day trend interval and fourteen-day as-of margin, so narrow replay windows do not truncate the eligible cohort.
  • Contributor attribution preserves the full-precision scoring factor without rewriting legacy factors. Displayed thirty-day extrema and averages use source-anchored UTC calendar coverage rather than row count; neither changes the scoring formula.
  • Historical repairs are score-moving. Fixed-clock replay, attribution of changed days and owner review are release prerequisites; this entry does not claim a completed replay or rewrite of stored history.
  • Activation is provisionally 2026-10-11 00:00 UTC (1791676800); re-date effectiveAt at release
3 commits
  • eb605e5ca
  • 718253076
  • 52e5df7b2
v3.66Oct 7, 2026

Observed supply admission and explicit partial-input quality

Live PSI excludes unavailable current supply from market-cap denominators and contributors, pairs only usable historical supply, and reports successful partial publication as ok with input-quality findings.

  • Absent, empty, wholly invalid, nonfinite or negative current totals are omitted; explicit observed zero remains admissible
  • Unavailable previous-week totals are omitted from both trend sides; a nonpositive or nonfinite paired denominator holds the prior sample with trend-inputs-unavailable instead of inventing zero trend
  • Stored snapshots and the API disclose supplyUnavailableIds and trendUnavailableIds alongside existing unpriced-open-event diagnostics
  • A successful sample and prune returns psi-sample-published with ok plus quality for omissions; failed dependencies still hold publication
Details

Impact notes

  • Absent, empty, wholly invalid, nonfinite or negative current totals are omitted; explicit observed zero remains admissible
  • Unavailable previous-week totals are omitted from both trend sides; a nonpositive or nonfinite paired denominator holds the prior sample with trend-inputs-unavailable instead of inventing zero trend
  • Stored snapshots and the API disclose supplyUnavailableIds and trendUnavailableIds alongside existing unpriced-open-event diagnostics
  • A successful sample and prune returns psi-sample-published with ok plus quality for omissions; failed dependencies still hold publication
  • Six-hour USD/native price-evidence and 3600-second accepted-DEWS budgets, pure formula and historical rows are unchanged
Commit provenance not recorded
    v3.65Oct 6, 2026

    Persisted current native-peg event quotes

    Live PSI reads directly observed native quotes retained by the existing depeg producer, without adding network requests to the DB-only lane.

    • Each active native event retains its latest validated CoinGecko value, upstream observation clock, and source in D1 cache
    • Live sampling selects the latest native observation at or before evaluation, strictly younger than six hours; absent or stale evidence still discloses open-depeg-no-price
    • USD prices and FX cannot synthesize native deviation; producer fetch count and historical replay inputs are unchanged
    Details

    Impact notes

    • Each active native event retains its latest validated CoinGecko value, upstream observation clock, and source in D1 cache
    • Live sampling selects the latest native observation at or before evaluation, strictly younger than six hours; absent or stale evidence still discloses open-depeg-no-price
    • USD prices and FX cannot synthesize native deviation; producer fetch count and historical replay inputs are unchanged
    Commit provenance not recorded
      v3.64Sep 28, 2026

      Null daily components without fabricated zero

      Daily PSI snapshots persist missing components as null while retaining all-day score averages and per-component observation counts.

      • An all-null component remains null; an observed zero remains numeric zero
      • Partially observed components average only their observations and disclose their sample count
      • All-day averaging and mixed-version provenance are unchanged; historical rows are not rewritten
      • Live open-depeg inputs reject nominal par and legacy protocol-redeem cache rows on protocol-par routes as observed prices; absent replay-safe evidence is disclosed as open-depeg-no-price
      Details

      Impact notes

      • An all-null component remains null; an observed zero remains numeric zero
      • Partially observed components average only their observations and disclose their sample count
      • All-day averaging and mixed-version provenance are unchanged; historical rows are not rewritten
      • Live open-depeg inputs reject nominal par and legacy protocol-redeem cache rows on protocol-par routes as observed prices; absent replay-safe evidence is disclosed as open-depeg-no-price
      Commit provenance not recorded
        v3.63Sep 27, 2026

        Quote-domain-safe event inputs and daily provenance

        Live and historical PSI preserve native event quote domains; daily all-sample averages disclose methodology and component sample counts.

        • Native events use timestamped native start or recovery evidence retained in D1, strictly as-of and younger than six hours; USD prices and changing FX cannot manufacture native deviation
        • No continuous native quote history is retained: unprovable windows disclose open-depeg-no-price instead of borrowing an untimed event peak or rewriting native references
        • Daily scores still average every sample across version transitions, with explicit mixed-version breakdown and per-component sample counts
        • Release A readers accept null daily components; the numeric snapshot writer remains unchanged until the separately gated nullable-producer activation
        Details

        Impact notes

        • Native events use timestamped native start or recovery evidence retained in D1, strictly as-of and younger than six hours; USD prices and changing FX cannot manufacture native deviation
        • No continuous native quote history is retained: unprovable windows disclose open-depeg-no-price instead of borrowing an untimed event peak or rewriting native references
        • Daily scores still average every sample across version transitions, with explicit mixed-version breakdown and per-component sample counts
        • Release A readers accept null daily components; the numeric snapshot writer remains unchanged until the separately gated nullable-producer activation
        Commit provenance not recorded
          v3.62Sep 22, 2026

          As-of historical supply lookup

          The historical replay now reads the most recent supply snapshot at or before the day being rebuilt instead of the nearest snapshot in either direction.

          • A replayed UTC day can no longer take market cap or historical price from a supply snapshot observed after that day
          • A day with no snapshot within 14 days before it leaves the coin out of that day's universe instead of borrowing a later observation
          • Live 30-minute sampling and daily aggregation are unchanged
          Details

          Impact notes

          • A replayed UTC day can no longer take market cap or historical price from a supply snapshot observed after that day
          • A day with no snapshot within 14 days before it leaves the coin out of that day's universe instead of borrowing a later observation
          • Live 30-minute sampling and daily aggregation are unchanged
          Commit provenance not recorded
            v3.61Aug 22, 2026

            Paired 7-day trend inputs

            PSI now excludes assets without observed previous-week supply from both sides of the 7-day market-cap trend ratio instead of treating them as zero.

            • The live 7-day trend term pairs current and previous-week market caps only for assets with observed previous-week supply
            • Assets without observed previous-week supply no longer contribute zero to the denominator while contributing current market cap to the numerator
            • Published current market-cap totals and the historical replay path are unchanged
            Details

            Impact notes

            • The live 7-day trend term pairs current and previous-week market caps only for assets with observed previous-week supply
            • Assets without observed previous-week supply no longer contribute zero to the denominator while contributing current market cap to the numerator
            • Published current market-cap totals and the historical replay path are unchanged
            Commit provenance not recorded
              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