Skip to main contentSkip to data table
Pharos

Depeg Duration Resolver Changelog

Full version history of DDR methodology decisions, from v1.0 to v4.2.

What This Controls

Depeg Duration Resolver 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

v4.2Aug 10, 2026

Mint-posture predicates unified; mint-scoped non-inflatability recognised

DDR's mint-posture tests now read shared predicates instead of per-engine literal sets, and the mint-scoped `none-resolved-mint` posture earns the weak R1 non-inflatable-supply anchor it previously fell through entirely. No resolution tier, factor weight, duration landmark, or stratum assignment changes.

Impact Snapshot

  • Posture set membership moved to `isFragileMintPosture` / `isUnboundedMintPosture` / `isNoPrivilegedMintPosture` / `isNoPrivilegedMintChainPosture` in shared/lib/safety-score-v9/mint-posture.ts; K1's risky-minter leg, K1's severe-surge rung and the structural-class legs all read the same source, so a future posture value is classified once instead of at each site
  • 14 wrapper assets annotated `none-resolved-mint` (sUSDe, sDAI, sGHO, scrvUSD, stUSDS, sBOLD, sDOLA, srUSD, sdUSD, said, steakUSDC, steakUSDT, yvUSDC, eEARN) now publish the R1 recovery anchor at the weak rung during an event, labelled `No privileged mint authority on this token (wrapped supply can still expand)`
  • The strong R1 rung remains whole-of-chain only: a wrapper's parent can still print, so `none-resolved-mint` cannot satisfy the strong-anchor leg of the tier rule. Only strong anchors enter that rule, so no verdict, sealed prediction or duration stratum moves
  • Structural-class stratification is unchanged: `none-resolved-mint` still confers no robustness of its own, matching the whole-of-chain definition in shared/types/core.ts
v4.2Aug 10, 2026

Mint-posture predicates unified; mint-scoped non-inflatability recognised

DDR's mint-posture tests now read shared predicates instead of per-engine literal sets, and the mint-scoped `none-resolved-mint` posture earns the weak R1 non-inflatable-supply anchor it previously fell through entirely. No resolution tier, factor weight, duration landmark, or stratum assignment changes.

  • Posture set membership moved to `isFragileMintPosture` / `isUnboundedMintPosture` / `isNoPrivilegedMintPosture` / `isNoPrivilegedMintChainPosture` in shared/lib/safety-score-v9/mint-posture.ts; K1's risky-minter leg, K1's severe-surge rung and the structural-class legs all read the same source, so a future posture value is classified once instead of at each site
  • 14 wrapper assets annotated `none-resolved-mint` (sUSDe, sDAI, sGHO, scrvUSD, stUSDS, sBOLD, sDOLA, srUSD, sdUSD, said, steakUSDC, steakUSDT, yvUSDC, eEARN) now publish the R1 recovery anchor at the weak rung during an event, labelled `No privileged mint authority on this token (wrapped supply can still expand)`
  • The strong R1 rung remains whole-of-chain only: a wrapper's parent can still print, so `none-resolved-mint` cannot satisfy the strong-anchor leg of the tier rule. Only strong anchors enter that rule, so no verdict, sealed prediction or duration stratum moves
  • Structural-class stratification is unchanged: `none-resolved-mint` still confers no robustness of its own, matching the whole-of-chain definition in shared/types/core.ts
Details

Impact Notes

  • Posture set membership moved to `isFragileMintPosture` / `isUnboundedMintPosture` / `isNoPrivilegedMintPosture` / `isNoPrivilegedMintChainPosture` in shared/lib/safety-score-v9/mint-posture.ts; K1's risky-minter leg, K1's severe-surge rung and the structural-class legs all read the same source, so a future posture value is classified once instead of at each site
  • 14 wrapper assets annotated `none-resolved-mint` (sUSDe, sDAI, sGHO, scrvUSD, stUSDS, sBOLD, sDOLA, srUSD, sdUSD, said, steakUSDC, steakUSDT, yvUSDC, eEARN) now publish the R1 recovery anchor at the weak rung during an event, labelled `No privileged mint authority on this token (wrapped supply can still expand)`
  • The strong R1 rung remains whole-of-chain only: a wrapper's parent can still print, so `none-resolved-mint` cannot satisfy the strong-anchor leg of the tier rule. Only strong anchors enter that rule, so no verdict, sealed prediction or duration stratum moves
  • Structural-class stratification is unchanged: `none-resolved-mint` still confers no robustness of its own, matching the whole-of-chain definition in shared/types/core.ts
Commit provenance not recorded
    v4.1Aug 8, 2026

    Structural inputs read published Safety Score outputs

    DDR's mint-authority structural input now reads the published Safety Score V9 mint posture band instead of the retired standalone Mint Authority band. Prediction weights, factor rules, and exit thresholds are unchanged.

    • K1's risky-minter test reads the published V9 mint posture band; the concentrated and exposed bands stay the risky set, so the rule is unchanged and only its input moved engines
    • A run with no installed V9 publication derives the band from the curated authority posture instead, so a degraded or held publication cannot silently drop K1's band leg; an installed publication is authoritative, including when it publishes no band for an asset
    • K5 inputs are unchanged: it already read published Safety Score outputs and continues to do so
    • No factor weights, severity bands, duration landmarks, or incident-lifecycle rules change
    Details

    Impact Notes

    • K1's risky-minter test reads the published V9 mint posture band; the concentrated and exposed bands stay the risky set, so the rule is unchanged and only its input moved engines
    • A run with no installed V9 publication derives the band from the curated authority posture instead, so a degraded or held publication cannot silently drop K1's band leg; an installed publication is authoritative, including when it publishes no band for an asset
    • K5 inputs are unchanged: it already read published Safety Score outputs and continues to do so
    • No factor weights, severity bands, duration landmarks, or incident-lifecycle rules change
    Commit provenance not recorded
      v4.0Jul 30, 2026

      DDR v4 Methodology Contract

      DDR v4 updates terminality signals, duration landmarks, incident lifecycle grouping, support rules, and reviewer audit metadata for new predictions.

      • Issuer wind-down evidence and measured exit or supply stress provide earlier terminality context, while backing concentration is gated by mechanism and observed impairment
      • Duration labels follow canonical incident grouping, typical ranges use the 15th-85th percentiles, and comparable histories are deduplicated by coin
      • Recovered pre-lock incidents can close and resurrect within the merge window, while regime-escalating tails begin a separate incident and prediction
      • DDRR review rows expose repaired and split lineage and publish expected-versus-observed horizon calibration alongside realized outcomes
      Details

      Impact Notes

      • Issuer wind-down evidence and measured exit or supply stress provide earlier terminality context, while backing concentration is gated by mechanism and observed impairment
      • Duration labels follow canonical incident grouping, typical ranges use the 15th-85th percentiles, and comparable histories are deduplicated by coin
      • Recovered pre-lock incidents can close and resurrect within the merge window, while regime-escalating tails begin a separate incident and prediction
      • DDRR review rows expose repaired and split lineage and publish expected-versus-observed horizon calibration alongside realized outcomes
      Commit provenance not recorded
        v3.04Jun 29, 2026

        Rollout Coverage Boundary Review

        DDRR now treats rollout-active incidents whose reliable recovery or terminal evidence predates the DDRv2 public prediction contract as pre-lock coverage outcomes instead of live missed-lock debt.

        • Coverage classification for incidents already active when DDRv2 was enabled is floored at the DDRv2 public-contract effective timestamp
        • Historical terminal evidence before that boundary becomes terminal_before_prediction, not missed_lock_terminal
        • The reviewer engine advances to ddr-reviewer-v3 so cached review snapshots are rebuilt under the corrected public audit contract
        Details

        Impact Notes

        • Coverage classification for incidents already active when DDRv2 was enabled is floored at the DDRv2 public-contract effective timestamp
        • Historical terminal evidence before that boundary becomes terminal_before_prediction, not missed_lock_terminal
        • The reviewer engine advances to ddr-reviewer-v3 so cached review snapshots are rebuilt under the corrected public audit contract
        Commit provenance not recorded
          v3.03Jun 29, 2026

          DDRR-Calibrated Stage 1 Terminality

          Uses reviewed DDRR outcomes to calibrate Stage 1 terminality: recent compromised/unbacked mint incidents now feed K1, while static very-high reserve concentration becomes severe K2 only when paired with a severe below-peg fingerprint or observed dependency impairment.

          • Recent registry-reviewed mint-authority incidents can make K1 supply weaponization fire even when daily supply history misses the mint path
          • Very-high-risk reserve concentration is elevated by default and severe only with a severe/catastrophic below-peg break or a frozen/dead dependency
          • Stage 2 duration remains on duration-landmark-v1 because the DDRR duration sample is still too small and clustered for a fitted retune
          Details

          Impact Notes

          • Recent registry-reviewed mint-authority incidents can make K1 supply weaponization fire even when daily supply history misses the mint path
          • Very-high-risk reserve concentration is elevated by default and severe only with a severe/catastrophic below-peg break or a frozen/dead dependency
          • Stage 2 duration remains on duration-landmark-v1 because the DDRR duration sample is still too small and clustered for a fitted retune
          Commit provenance not recorded
            v3.02Jun 19, 2026

            Close-gap Tail Grouping and Superseded Alias Review

            DDR incident grouping now treats live reopens inside the documented close-gap merge window as the same canonical incident even when the original start is days old, and DDRR follows superseded duplicate aliases to the current source event.

            • Sealed live tails can be adopted when they reopen within 6 hours of the prior current source event closing
            • Duplicate sealed incidents can be superseded through append-only errata and lineage while downstream reads resolve to the canonical incident key
            • DDRR evaluates repaired canonical predictions against the effective current source event instead of scoring an older closed fragment as recovered
            • The APXUSD June 2026 duplicate prediction is invalidated and treated as an alias of the unresolved June 2 incident
            Details

            Impact Notes

            • Sealed live tails can be adopted when they reopen within 6 hours of the prior current source event closing
            • Duplicate sealed incidents can be superseded through append-only errata and lineage while downstream reads resolve to the canonical incident key
            • DDRR evaluates repaired canonical predictions against the effective current source event instead of scoring an older closed fragment as recovered
            • The APXUSD June 2026 duplicate prediction is invalidated and treated as an alias of the unresolved June 2 incident
            Commit provenance not recorded
              v3.01Jun 6, 2026

              Live Context Input Wiring

              Wired Stage 1's documented live-context inputs into the Worker DDR precompute path.

              • Uses fresh DEWS sub-signals to derive bank-run and blacklist-surge inputs for K5 and K3
              • Uses the same 7-day DEX TVL baseline selection as the liquidity API for K5 exit-collapse checks
              • Hydrates the latest Safety Score history row so R5 mean-reversion anchors and related context use live report-card data
              • Marks DDR runs degraded when these required context-source queries fail instead of scoring with silently absent inputs
              Details

              Impact Notes

              • Uses fresh DEWS sub-signals to derive bank-run and blacklist-surge inputs for K5 and K3
              • Uses the same 7-day DEX TVL baseline selection as the liquidity API for K5 exit-collapse checks
              • Hydrates the latest Safety Score history row so R5 mean-reversion anchors and related context use live report-card data
              • Marks DDR runs degraded when these required context-source queries fail instead of scoring with silently absent inputs
              Commit provenance not recorded
                v3.0Jun 4, 2026

                Forecast Readiness Contract

                Added the shared DDR forecast-readiness contract for readiness-gated locks with immutable public metadata.

                • Introduces the readiness-72h-v1 forecast-readiness version and a strict early-lock threshold
                • Publishes row-level readiness components and reasons as forecast readiness, not a probability or confidence label
                • Adds optional/defaulted lock trigger, readiness, and 72h backstop metadata to the public contract while preserving legacy rows
                • Includes new immutable readiness metadata in public row hash payloads when present
                Details

                Impact Notes

                • Introduces the readiness-72h-v1 forecast-readiness version and a strict early-lock threshold
                • Publishes row-level readiness components and reasons as forecast readiness, not a probability or confidence label
                • Adds optional/defaulted lock trigger, readiness, and 72h backstop metadata to the public contract while preserving legacy rows
                • Includes new immutable readiness metadata in public row hash payloads when present
                Commit provenance not recorded
                  v2.0May 27, 2026

                  Sticky Public Prediction Contract

                  Replaced live DDR drift with DDRv2: one immutable public prediction or no-call at the 24h lock landmark, backed by manifest publication and append-only errata.

                  • Freezes one official public_prediction outcome per canonical incident key instead of recomputing public forecasts every run
                  • Adds pending, lock-deferred, publication-retry, no-call, frozen, and invalidated public states with live facts separated from frozen prediction payloads
                  • Anchors duration estimates to the lock timestamp and preserves frozen fields on stale responses while marking live overlays stale
                  • Moves DDRR accountability to first-published sealed outcomes and explicit coverage states rather than mutable latest snapshots
                  Details

                  Impact Notes

                  • Freezes one official public_prediction outcome per canonical incident key instead of recomputing public forecasts every run
                  • Adds pending, lock-deferred, publication-retry, no-call, frozen, and invalidated public states with live facts separated from frozen prediction payloads
                  • Anchors duration estimates to the lock timestamp and preserves frozen fields on stale responses while marking live overlays stale
                  • Moves DDRR accountability to first-published sealed outcomes and explicit coverage states rather than mutable latest snapshots
                  Commit provenance not recorded
                    v1.1May 25, 2026

                    Depeg Duration Resolver Reviewer

                    Added the Depeg Duration Resolver Reviewer (DDRR), the audit layer that scores stored DDR assessments against later canonical depeg-event outcomes.

                    • Stores quarter-hourly DDR assessment checkpoints and reviews the first checkpoint for each event under the current methodology
                    • Publishes recovery-likelihood accuracy and average observed-minus-DDR recovery-duration error on /depeg/ and GET /api/depeg-resolver-review
                    • Keeps pending, insufficient-signal, and data-issue rows visible while excluding them from scored headline accuracy
                    • Removes terminal-lifecycle assets from live DDR readouts while DDRR scores their stored predictions as terminal outcomes
                    Details

                    Impact Notes

                    • Stores quarter-hourly DDR assessment checkpoints and reviews the first checkpoint for each event under the current methodology
                    • Publishes recovery-likelihood accuracy and average observed-minus-DDR recovery-duration error on /depeg/ and GET /api/depeg-resolver-review
                    • Keeps pending, insufficient-signal, and data-issue rows visible while excluding them from scored headline accuracy
                    • Removes terminal-lifecycle assets from live DDR readouts while DDRR scores their stored predictions as terminal outcomes
                    Commit provenance not recorded
                      v1.0May 25, 2026

                      Initial Depeg Duration Resolver

                      Launched the two-stage Depeg Duration Resolver: a mechanistic Resolution Outlook (terminal vs recoverable) and a stratified empirical duration estimate over recovered historical incidents.

                      • Stage 1 emits an ordinal verdict (recovery_likely / at_risk / recovery_unlikely / insufficient_signal) from kill signals and recovery anchors over structural metadata and the live depeg fingerprint
                      • Stage 2 emits a depth/direction/structural-class stratified landmark estimate with per-horizon (6h/24h/7d/30d) resolution likelihood, support-gated and Wilson-bounded
                      • Verdicts are calibrated domain reads, not fitted probabilities; audit-verdict gating is not used because event provenance is unpopulated
                      Details

                      Impact Notes

                      • Stage 1 emits an ordinal verdict (recovery_likely / at_risk / recovery_unlikely / insufficient_signal) from kill signals and recovery anchors over structural metadata and the live depeg fingerprint
                      • Stage 2 emits a depth/direction/structural-class stratified landmark estimate with per-horizon (6h/24h/7d/30d) resolution likelihood, support-gated and Wilson-bounded
                      • Verdicts are calibrated domain reads, not fitted probabilities; audit-verdict gating is not used because event provenance is unpopulated
                      Commit provenance not recorded