Skip to content

Commit 122733d

Browse files
TokenBriceclaude
andcommitted
feat(report-cards): reweight dimensions and reclassify 5 coins (v4.1)
Increase liquidity weight from 25% to 30% and decrease resilience from 25% to 20% to better reflect that swappability is the most defining aspect of a stablecoin. Reclassify crvUSD, FRXUSD, USR, GYD, and ALUSD from centralized-dependent to decentralized. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 8fe39a5 commit 122733d

File tree

4 files changed

+14
-14
lines changed

4 files changed

+14
-14
lines changed

docs/report-cards.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
Multi-dimensional risk grades (A+ through F) for every tracked stablecoin. Computed on-demand by the API from live data.
44

5-
## Overall Grade (v4.0)
5+
## Overall Grade (v4.1)
66

77
Two-step computation:
88

@@ -17,8 +17,8 @@ Cemetery coins get a permanent F.
1717

1818
| Dimension | Weight | Source | Scoring |
1919
|-----------|--------|--------|---------|
20-
| **Liquidity** | 25% | `liquidityScore` from DEX liquidity | Passthrough (composite score already factors pool quality, diversity, durability) |
21-
| **Resilience** | 25% | Token metadata (4 sub-factors) | Weighted avg of chain risk, collateral quality, custody model, and blacklist capability |
20+
| **Liquidity** | 30% | `liquidityScore` from DEX liquidity | Passthrough (composite score already factors pool quality, diversity, durability) |
21+
| **Resilience** | 20% | Token metadata (4 sub-factors) | Weighted avg of chain risk, collateral quality, custody model, and blacklist capability |
2222
| **Decentralization** | 10% | Governance type + chain risk | Base: `decentralized` → 100, `centralized-dependent` → 50, `centralized` → 0. Chain-risk penalty applied for non-Ethereum chains |
2323
| **Dependency Risk** | 30% | Upstream stablecoin scores | Non-dependent → 95. CeFi-Dependent → blended score (upstream × weight + self-backed × 75), −10 if any < 75. NR if unmapped |
2424

src/app/about/page.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -439,13 +439,13 @@ export default function AboutPage() {
439439
<tbody className="divide-y">
440440
<tr>
441441
<td className="py-2 pr-4 text-foreground">Liquidity</td>
442-
<td className="py-2 pr-4">25%</td>
442+
<td className="py-2 pr-4">30%</td>
443443
<td className="py-2 pr-4">DEX liquidity score</td>
444444
<td className="py-2">Direct passthrough of the liquidity score (see below)</td>
445445
</tr>
446446
<tr>
447447
<td className="py-2 pr-4 text-foreground">Resilience</td>
448-
<td className="py-2 pr-4">25%</td>
448+
<td className="py-2 pr-4">20%</td>
449449
<td className="py-2 pr-4">Chain risk, collateral, custody, blacklist</td>
450450
<td className="py-2">Structural resilience across 4 equally-weighted sub-factors</td>
451451
</tr>
@@ -623,7 +623,7 @@ export default function AboutPage() {
623623

624624
{/* Versioning */}
625625
<p className="text-xs text-muted-foreground italic">
626-
Methodology version v4.0. Version increments when weights, thresholds, or dimension definitions change.
626+
Methodology version v4.1. Version increments when weights, thresholds, or dimension definitions change.
627627
</p>
628628
</CardContent>
629629
</Card>

src/lib/report-cards.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import type {
2727
// Constants
2828
// ---------------------------------------------------------------------------
2929

30-
export const METHODOLOGY_VERSION = "4.0";
30+
export const METHODOLOGY_VERSION = "4.1";
3131

3232
/**
3333
* Base dimension weights for the overall grade.
@@ -36,8 +36,8 @@ export const METHODOLOGY_VERSION = "4.0";
3636
*/
3737
export const DIMENSION_WEIGHTS: Record<DimensionKey, number> = {
3838
pegStability: 0,
39-
liquidity: 0.25,
40-
resilience: 0.25,
39+
liquidity: 0.30,
40+
resilience: 0.20,
4141
decentralization: 0.10,
4242
dependencyRisk: 0.30,
4343
};

src/lib/stablecoins.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -669,7 +669,7 @@ export const TRACKED_STABLECOINS: StablecoinMeta[] = [
669669
{ name: "Other Bank Deposits (EUR)", pct: 1, risk: "very-low" },
670670
],
671671
}),
672-
usd("197", "Resolv USD", "USR", "crypto-backed", "centralized-dependent", {
672+
usd("197", "Resolv USD", "USR", "crypto-backed", "decentralized", {
673673
geckoId: "resolv-usr",
674674
dependencies: [{ id: "1", weight: 0.05 }, { id: "2", weight: 0.05 }],
675675
collateral: "ETH, wstETH (Lido), LBTC, and weETH held on-chain via Fireblocks; yield from liquid staking rewards and perpetual futures funding rates",
@@ -716,7 +716,7 @@ export const TRACKED_STABLECOINS: StablecoinMeta[] = [
716716
{ name: "Digital assets (USDC + USDT, operational)", pct: 1, risk: "low" },
717717
],
718718
}),
719-
usd("110", "crvUSD", "crvUSD", "crypto-backed", "centralized-dependent", {
719+
usd("110", "crvUSD", "crvUSD", "crypto-backed", "decentralized", {
720720
geckoId: "crvusd",
721721
dependencies: [{ id: "1", weight: 0.10 }, { id: "2", weight: 0.10 }, { id: "120", weight: 0.10 }, { id: "235", weight: 0.10 }],
722722
collateral: "WETH, wBTC, wstETH, sfrxETH, and tBTC deposited as collateral; LLAMMA (Lending-Liquidating AMM) performs soft liquidations by gradually converting collateral to crvUSD as prices fall",
@@ -1006,7 +1006,7 @@ export const TRACKED_STABLECOINS: StablecoinMeta[] = [
10061006
{ name: "Yield instruments (unspecified)", pct: 5, risk: "high" },
10071007
],
10081008
}),
1009-
usd("235", "Frax USD", "FRXUSD", "rwa-backed", "centralized-dependent", {
1009+
usd("235", "Frax USD", "FRXUSD", "rwa-backed", "decentralized", {
10101010
geckoId: "frax-usd",
10111011
dependencies: [{ id: "2", weight: 0.3 }],
10121012
collateral: "Tokenized cash-equivalent reserves held by governance-approved enshrined custodians: BlackRock BUIDL (U.S. Treasuries/repos via Securitize), Superstate USTB (T-bills) and USCC (U.S. government securities), Centrifuge JTRSY (T-bills), WisdomTree WTGXX (U.S. government money market), Agora AUSD, and Circle USDC; each custodian mints and redeems frxUSD 1:1 against reserves they hold on-chain",
@@ -1868,7 +1868,7 @@ export const TRACKED_STABLECOINS: StablecoinMeta[] = [
18681868
{ name: "CLOs & Private Credit Funds", pct: 10, risk: "high" },
18691869
],
18701870
}),
1871-
usd("185", "Gyroscope GYD", "GYD", "crypto-backed", "centralized-dependent", {
1871+
usd("185", "Gyroscope GYD", "GYD", "crypto-backed", "decentralized", {
18721872
geckoId: "gyroscope-gyd",
18731873
dependencies: [{ id: "2", weight: 0.35 }, { id: "5", weight: 0.35 }],
18741874
collateral: "Diversified reserve of sDAI, USDC, LUSD, and crvUSD in yield-generating vaults",
@@ -2191,7 +2191,7 @@ export const TRACKED_STABLECOINS: StablecoinMeta[] = [
21912191
{ name: "ETH", pct: 1, risk: "very-low" },
21922192
],
21932193
}),
2194-
usd("20", "Alchemix USD", "ALUSD", "crypto-backed", "centralized-dependent", {
2194+
usd("20", "Alchemix USD", "ALUSD", "crypto-backed", "decentralized", {
21952195
geckoId: "alchemix-usd",
21962196
dependencies: [{ id: "1", weight: 0.33 }, { id: "2", weight: 0.33 }, { id: "5", weight: 0.33 }],
21972197
collateral: "DAI, USDC, and USDT deposited into yield strategies (Yearn, Aave) via Alchemix CDPs; yield automatically repays debt",

0 commit comments

Comments
 (0)