URD ATLAS
StatusTrack RecordThresholdsGlossaryFAQAPI DocsMethodology
Account
ChainsStatusTrack RecordThresholdsGlossaryFAQAPI DocsMethodology
Account
© 2026 Urd Atlas.
AboutTermsPrivacy
No price data · No forecasts · No recommendations
Chain analysis
◆

ETH L1

CHEAP

Lower-friction regime: scorecard shows friction Low with capacity Balanced.

View historyMethodology →Glossary →
Key metrics
as of 2026-07-14
Confidence0.911Good
Observed lag1d
Demand
Normal
62
Friction
Low
29
Capacity
Balanced
52
Hash909356e51a17
Latest 7-day Brief
Briefs →

Ethereum remained CHEAP-dominant across the latest 7 published days, with 3 regime transition(s) in the window.

Window
2026-07-08 → 2026-07-14
Dominant
CHEAP · 4/7 days
Brief confidence
0.825 avg 7d
Volatility
high
Chain profile
More →

Ethereum is the main smart-contract base layer of the EVM ecosystem, with gas-based block capacity and EIP-1559 fee mechanics.

ETH differs from BTC because execution cost and congestion are strongly visible through gas-related fields such as gas utilisation, transaction fees, and failed transaction rate. That makes the friction and capacity surface richer than on BTC.

What to watch

Watch gas_utilization_pct for capacity pressure and failed_tx_rate for execution friction alongside median_tx_fee_native. Demand reads from tx_count_daily and unique_active_addresses. EIP-1559 means base fees can move fast when utilisation crosses 50% sustained.

Brief driver

friction: normal to low

Why users care

ETH users care whether execution looks normal, heating, or congested because cost, inclusion pressure, and smart-contract usability can change quickly when demand rises against finite block capacity.

Freshness dates

Loading source freshness diagnostics…

Profile details

How ETH L1 behaves

More →

Ethereum is the main smart-contract base layer of the EVM ecosystem, with gas-based block capacity and EIP-1559 fee mechanics.

ETH differs from BTC because execution cost and congestion are strongly visible through gas-related fields such as gas utilisation, transaction fees, and failed transaction rate. That makes the friction and capacity surface richer than on BTC.

Primary drivers

Demand is primarily read from tx_count_daily and unique_active_addresses.

Friction is read from median_tx_fee_native and failed_tx_rate.

Capacity is read from gas_utilization_pct plus block-time behaviour.

Caveats

A high fee environment can reflect genuine usage pressure, but also specific application-level or MEV-heavy activity.

Chart 1

failed_tx_rate

This metric is shown because it currently helps explain the chain’s descriptive reading.

Units: fraction
30d90d180d

ETH L1 chain profile

Why this chain is interpreted the way it is on this page.
×
Basic

Ethereum is a general-purpose execution chain. That means the page can read it through both user activity and execution tightness: transactions, fees, gas usage, and block timing all matter.

In practice, Ethereum can look busy because more people are using it, because execution is tighter, or both at once. That is why the page separates Demand, Friction, and Capacity instead of collapsing everything into one number.

Advanced

ETH L1 exposes a richer execution surface than BTC because the underlying state machine prices computational work in gas units. That lets the descriptive layer distinguish among throughput, fee burden, and utilization more explicitly. Demand can therefore be read from usage metrics such as transaction count; Friction from fee/failure burden; and Capacity from utilization and block-pacing fields. The point is not that these are independent latent variables in a strict econometric sense, but that the published decomposition preserves explanatory resolution that would be lost in one blended number.

The advanced way to read ETH is as a constrained execution system: a chain can carry high activity while still having moderate Friction if execution remains roomy, or it can show only moderate activity while Friction and Capacity already look tight because the execution environment is saturated. That distinction follows directly from Ethereum’s gas mechanism and transaction model rather than from frontend storytelling.

This is why the page keeps chain profile, scorecard, drivers, and charts separate. The profile defines which metrics are meaningful; the scorecard compresses them into axis scores; the drivers reveal which fields currently dominate; and the charts show the time-series shape underneath. The website stays descriptive at every step: it does not convert execution pressure into return expectations.

Traceability

Why this reading order is recommended

×
Basic

The recommended reading order is simple: first check freshness and confidence, then read the regime label, then open the scorecard and drivers, and only after that use the charts to put the current reading into visible historical context.

The point is to stop the user from jumping straight to line movement without first knowing whether the row is fresh and how strongly supported the current label is.

Advanced

This reading order mirrors the structure of the published data contract. Freshness and confidence are gating variables; regime is the compressed state output; scorecard is the axis-level decomposition; drivers are the ranked evidence rows; charts are the time-series visualization layer. In methodological terms, the page is arranged from contract-level validity checks to semantic compression to granular evidence.

The advanced reason for this order is to avoid a common analytical error: over-weighting the visual salience of a recent line move before establishing whether the visible row is timely, publish-eligible, and semantically well-supported. The charts contextualize the state; they do not define it.

Traceability
  • Freshness: confidence.lag_days_vs_utc_today
  • Confidence: confidence.confidence_score
  • Regime: status.label

What regime means

Current label: CHEAP
×
Basic

Regime is the page’s top-line descriptive state. It is meant to answer one fast question: what does the chain currently look like relative to its own recent history?

Heating means the chain looks hotter than its own recent baseline. That usually means stronger activity pressure, tighter conditions, or both, but it does not automatically mean the chain is fully constrained.

The regime is useful because it gives the user a fast summary before diving into the scorecard, drivers, and charts.

Advanced

The browser does not infer regime. It reads the canonical published label from meta.status.label, where the upstream pipeline has already combined axis conditions, chain profile rules, and the confidence gate. In other words, the visible label is an audited output of the meta layer, not a UI heuristic.

The regime vocabulary is a finite state set: STABLE, HEATING, CONGESTED, CHEAP, and UNKNOWN/DEGRADED. These states are meant to compress the chain’s location in a three-axis space defined by Demand, Friction, and Capacity, with the final label then constrained by publish-confidence eligibility. The confidence threshold is therefore part of the state machine: if confidence is below the canonical gate, the UI must treat the row as UNKNOWN/DEGRADED even when the raw axis pattern might otherwise resemble a named state.

The correct technical interpretation is: regime is a deterministic classification over the published meta payload, not a probability of future returns and not a recommendation class. The current label CHEAP is a descriptive compression of the present chain state conditional on methodology version, chain profile, window, and confidence gate.

Traceability

What confidence means

Band: Good
×
Basic

Confidence is the product’s evidence-strength score for the current published label. It does not tell you what will happen next. It tells you how well-supported the current descriptive reading is by the available published evidence.

Higher confidence means the label rests on fuller and more internally consistent support. Lower confidence means the page is warning you not to over-read the label.

The visible band is Good. In the current row, the published confidence is 0.911.

Advanced

Confidence is a published meta-layer quantity in confidence.confidence_score. The UI never rebuilds it. It is used in two roles at once: first as an evidentiary score for how strongly the current descriptive row is supported, and second as a governance gate for whether the visible regime may remain a named state or must degrade to UNKNOWN/DEGRADED under the canonical threshold contract.

In the patched meta files, confidence is conceptually a synthesis of row usability and label support. The payload may expose component views such as data_quality_score and label_confidence_score; in the current row they are 1.000 and 0.830. The key question confidence answers is: “given the currently published row, how much descriptive weight should be placed on the label?”.

Technically, this is not a confidence interval, not a posterior probability, and not a forecast probability. It is a bounded support score on [0,1]. The current product contract uses a hard publish gate at 0.40: values below that threshold force degraded semantics, while values above it permit named states. The UI bands (Good / Caution / Degraded) are presentation tiers layered on top of the scalar. They do not replace the underlying number.

What data as-of means

×
Basic

“Data as of” tells you the latest chain-level date behind the visible state. It is one of the first things to check before interpreting any label or chart.

In plain language: before asking “what does the chain look like?”, first ask “how fresh is the row I am looking at?”. The current visible as-of date is 2026-07-14.

Advanced

As-of is the temporal anchor of the visible row. The page surfaces the latest published date from the canonical meta bundle; it does not infer freshness from chart endpoints or browser time. In a reproducible system, every descriptive statement must be traceable to a concrete observation date, and as-of is that date-level binding.

The advanced reason this matters is that a regime label is only meaningful conditional on its information set. A label computed on one date and viewed later may be equally well-defined, but it is not equally current. This is why the product separates temporal recency (as-of and lag) from evidentiary support (confidence): they answer different questions and should not be collapsed into one omnibus quality number.

In practice, as-of is the date to use when reconciling the visible page against dataset manifests, daily published files, and any downstream audit. If a reader cannot pin the visible state to a concrete observation date, the state is not operationally traceable.

Traceability
  • Visible date: 2026-07-14
  • Hero path: landing/ethereum/hero.json

What observed lag means

×
Basic

Observed lag tells you how many days behind today this chain currently is. Lag is shown separately from confidence so “old” is not confused with “weakly supported”.

The current observed lag is 1d.

Advanced

Lag is an operational freshness statistic measured in days from the latest published observation to “today” in the product’s UTC framing. It is not a reliability score and not a confidence penalty by itself. A low-lag row may still be weakly supported; a higher-lag row may still be internally coherent. The UI separates these concepts because conflating them would hide whether the issue is timeliness or evidentiary strength.

Formally, lag answers a scheduling question: how far is the visible row behind the current calendar? It should be read relative to the chain’s publish-lag policy, not in isolation. For BTC/ETH a 1-day lag is normal; for Base/Arbitrum a materially larger expected lag is part of the product contract. So the advanced user should interpret lag as a deviation from chain-specific publication cadence, not as a universal freshness threshold.

The reason lag belongs on the page is auditability. It makes it explicit whether the state is operationally current enough for the user’s purpose. It does not tell you that the label is wrong; it tells you whether the label is temporally up to date.

Traceability
  • Field: confidence.lag_days_vs_utc_today
  • Value: 1d

What determinism means

×
Basic

Determinism is the page’s reproducibility handle. It tells a technical reader that the visible state belongs to a stable published calculation context, not to a hidden browser-side reinterpretation.

The hash is a compact identity for that published context. The window-days value shows which time window the canonical reading belongs to.

Advanced

regime.determinism_hash is published for auditability: it is a hash over the input data and parameter context used to produce the regime/meta output. The UI does not derive it. Its presence is a reproducibility guarantee that the visible classification is tied to a specific upstream computational state rather than to local browser logic.

In a deterministic publishing pipeline, identical inputs under identical parameters should generate identical outputs. The hash is therefore not a user-facing score; it is a compact fingerprint of computational identity. If the hash changes while the displayed date, chain, and methodology context appear unchanged, a technical reader immediately knows that some relevant input or parameterization changed upstream.

The accompanying window-days field matters because regime and scorecard are windowed objects. A 7-day classification and a 30-day classification can be equally deterministic yet refer to different state definitions. So the proper advanced reading is the tuple (methodology version, chain profile, window, determinism hash), not the hash alone. Current hash: 909356e51a17. Current window: 7.

Traceability
  • Hash: 909356e51a17
  • Window: 7
365d
failed_tx_rateFriction

Share of transactions that failed — an EVM-specific friction and congestion indicator.

Units: fraction
Current signal
MA7 −22.6% below MA30
Daily raw value
MA7 — 7-day moving average
MA30 — 30-day trend baseline
Preparing chart…
Reading this at 30d: Elevated failed rate at 30 days can reflect smart contract competition or MEV activity. A spike that reverts to MA30 within a week is usually episodic.
MA: derived/ethereum/last30d.json · Raw: gold/ethereum/last30d.json · Window: 2026-06-15 → 2026-07-14 (30 calendar days)
How to readMore →

Use raw for day-to-day movement, MA7 for short smoothing, MA30 for broader baseline.

Why shownMore →

Friction signal - shows whether the execution environment is currently failure-prone.

How to read failed_tx_rate

Window 30d · Units fraction
×
Basic

Read the raw line for day-to-day movement, MA7 for short smoothing, and MA30 for the broader recent baseline.

On a 30d view, very short swings often matter less than the direction and shape of MA30. Units for this chart are fraction.

Advanced

The chart is a layered time-series object built from raw gold observations plus derived smoothing overlays. By contract, __ma7 and __ma30 are arithmetic means over the last 7 and 30 non-null days in the derived layer. That means the two moving averages are descriptive smoothers, not forecasting models. Their job is to suppress noise and expose local versus broader trend structure.

The advanced way to read the panel is relationally, not pointwise. Compare four things: raw volatility amplitude, whether MA7 is above or below MA30, the slope of MA30, and where the current endpoint sits inside the visible historical range. A large raw spike with flat MA30 usually means short-lived disturbance; a persistent MA30 slope change is stronger evidence of regime-relevant drift.

For failed_tx_rate, the selected window is 30 days and the native unit is fraction. Because the series stays in native units, cross-metric comparisons should be shape-based rather than level-based unless the units are directly comparable. The chart is therefore best used to study persistence, relative elevation, and transition timing—not to infer standardized magnitude by eye.

Traceability
  • MA: derived/ethereum/last30d.json
  • Raw: gold/ethereum/last30d.json
  • Metric: failed_tx_rate

Why failed_tx_rate is shown

×
Basic

The failed transaction rate shows what share of transactions did not complete successfully. A rising failure rate usually means the execution environment is more competitive or congested - users are submitting transactions that are outcompeted or run out of gas.

It is shown for confirmation: a genuinely CHEAP state should also show low failure rates, not just low fees. This metric helps verify that.

Advanced

failed_tx_rate is a friction-axis input on EVM chains alongside fee_burden_proxy. It is not available for Bitcoin (no equivalent concept under the UTXO model). On EVM chains, it reflects out-of-gas failures, reverts, and other execution failures - all of which are user-visible friction signals distinct from fee level alone.

Traceability
  • Metric: failed_tx_rate
  • Axis: friction
Chart 2

median_tx_fee_native

Median transaction fee in native units is a direct friction indicator: it helps show how costly transacting currently looks on this chain.

Units: wei
30d90d180d365d
median_tx_fee_nativeFriction

Median transaction fee in native units — the direct cost of transacting; the main friction indicator.

Units: wei
Current signal
MA7 −56.8% below MA30
Daily raw value
MA7 — 7-day moving average
MA30 — 30-day trend baseline
Preparing chart…
Reading this at 30d: Fee spikes at 30 days are often short congestion events. If MA7 spikes and then falls back toward MA30 within a week, the event was transient. If MA7 stays elevated above MA30 across multiple weeks, friction is genuinely building.
MA: derived/ethereum/last30d.json · Raw: gold/ethereum/last30d.json · Window: 2026-06-15 → 2026-07-14 (30 calendar days)
How to readMore →

Use raw for day-to-day movement, MA7 for short smoothing, MA30 for broader baseline.

Why shownMore →

Core friction signal - low fees are part of what defines the current CHEAP state.

How to read median_tx_fee_native

Window 30d · Units wei
×
Basic

Read the raw line for day-to-day movement, MA7 for short smoothing, and MA30 for the broader recent baseline.

On a 30d view, very short swings often matter less than the direction and shape of MA30. Units for this chart are wei.

Advanced

The chart is a layered time-series object built from raw gold observations plus derived smoothing overlays. By contract, __ma7 and __ma30 are arithmetic means over the last 7 and 30 non-null days in the derived layer. That means the two moving averages are descriptive smoothers, not forecasting models. Their job is to suppress noise and expose local versus broader trend structure.

The advanced way to read the panel is relationally, not pointwise. Compare four things: raw volatility amplitude, whether MA7 is above or below MA30, the slope of MA30, and where the current endpoint sits inside the visible historical range. A large raw spike with flat MA30 usually means short-lived disturbance; a persistent MA30 slope change is stronger evidence of regime-relevant drift.

For median_tx_fee_native, the selected window is 30 days and the native unit is wei. Because the series stays in native units, cross-metric comparisons should be shape-based rather than level-based unless the units are directly comparable. The chart is therefore best used to study persistence, relative elevation, and transition timing—not to infer standardized magnitude by eye.

Why median_tx_fee_native is shown

×
Basic

The median transaction fee shows what a typical user was paying to transact in the chain's own native units. Fees are one of the most immediate ways users feel changes in network pressure - they rise when demand competes with available block space or gas.

It is shown now because low fees are one of the defining features of the current CHEAP state. This metric is part of what qualifies the chain as cheap to use right now.

Advanced

median_tx_fee_native is a friction-axis input. On BTC it is the primary friction anchor because there is no equivalent to gas-utilisation or failed-tx rate. On EVM chains it feeds fee_burden_proxy(median_fee / median_tx_value) alongside failed_tx_rate. The median is used rather than mean to reduce outlier sensitivity.

Traceability
  • Metric: median_tx_fee_native
  • Axis: friction
Chart 3

tx_count_daily

This metric is shown because it currently helps explain the chain’s descriptive reading.

Units: transactions per day
30d90d180d365d
tx_count_dailyDemand

Confirmed transactions per day — the primary demand signal on any chain.

Units: transactions per day
Current signal
MA7 +14.6% above MA30
Daily raw value
MA7 — 7-day moving average
MA30 — 30-day trend baseline
Preparing chart…
Reading this at 30d: At 30 days you are reading short-term pulses. A rising MA7 crossing above a flat MA30 is a potential signal, but only significant if MA7 stays elevated for more than a few days. A single-day spike that reverts is noise, not a regime shift.
MA: derived/ethereum/last30d.json · Raw: gold/ethereum/last30d.json · Window: 2026-06-15 → 2026-07-14 (30 calendar days)
How to readMore →

Use raw for day-to-day movement, MA7 for short smoothing, MA30 for broader baseline.

Why shownMore →

Primary demand signal - shows how much block-space usage the chain is currently carrying.

How to read tx_count_daily

Window 30d · Units transactions per day
×
Basic

Read the raw line for day-to-day movement, MA7 for short smoothing, and MA30 for the broader recent baseline.

On a 30d view, very short swings often matter less than the direction and shape of MA30. Units for this chart are transactions per day.

Advanced

The chart is a layered time-series object built from raw gold observations plus derived smoothing overlays. By contract, __ma7 and __ma30 are arithmetic means over the last 7 and 30 non-null days in the derived layer. That means the two moving averages are descriptive smoothers, not forecasting models. Their job is to suppress noise and expose local versus broader trend structure.

The advanced way to read the panel is relationally, not pointwise. Compare four things: raw volatility amplitude, whether MA7 is above or below MA30, the slope of MA30, and where the current endpoint sits inside the visible historical range. A large raw spike with flat MA30 usually means short-lived disturbance; a persistent MA30 slope change is stronger evidence of regime-relevant drift.

For tx_count_daily, the selected window is 30 days and the native unit is transactions per day. Because the series stays in native units, cross-metric comparisons should be shape-based rather than level-based unless the units are directly comparable. The chart is therefore best used to study persistence, relative elevation, and transition timing—not to infer standardized magnitude by eye.

Why tx_count_daily is shown

×
Basic

Transaction count shows how much real execution demand the chain is currently carrying. On EVM chains it reflects not just transfers but smart contract interactions, which means it is a broader activity signal than on Bitcoin.

It is shown for context: the current CHEAP state is partly defined by whether demand is genuinely quiet, which transaction count helps confirm.

Advanced

tx_count_daily feeds the demand axis alongsideunique_active_addresses. It is log-normalised before z-score computation. On EVM chains it should be read together withgas_utilization_pct and failed_tx_rateto distinguish high-volume-but-unconstrained from high-volume-plus-capacity-pressure.

Traceability
  • Metric: tx_count_daily
  • Axis: —
Chart 4

gas_utilization_pct

Gas utilization is a capacity proxy on EVM-style chains. It helps show how full the chain currently looks relative to recent norms.

Units: fraction
30d90d180d365d
gas_utilization_pctCapacity

Average block gas utilization as a 0–1 fraction — how full EVM blocks are on average.

Units: fraction
Current signal
MA7 ≈ MA30
Daily raw value
MA7 — 7-day moving average
MA30 — 30-day trend baseline
Preparing chart…
Reading this at 30d: Values persistently above 0.90 over 30 days mean blocks are almost always full — a CONGESTED signal. Values near 0.50 are balanced.
MA: derived/ethereum/last30d.json · Raw: gold/ethereum/last30d.json · Window: 2026-06-15 → 2026-07-14 (30 calendar days)
How to readMore →

Use raw for day-to-day movement, MA7 for short smoothing, MA30 for broader baseline.

Why shownMore →

Capacity signal - shows how full EVM blocks currently are relative to their limit.

How to read gas_utilization_pct

Window 30d · Units fraction
×
Basic

Read the raw line for day-to-day movement, MA7 for short smoothing, and MA30 for the broader recent baseline.

On a 30d view, very short swings often matter less than the direction and shape of MA30. Units for this chart are fraction.

Advanced

The chart is a layered time-series object built from raw gold observations plus derived smoothing overlays. By contract, __ma7 and __ma30 are arithmetic means over the last 7 and 30 non-null days in the derived layer. That means the two moving averages are descriptive smoothers, not forecasting models. Their job is to suppress noise and expose local versus broader trend structure.

The advanced way to read the panel is relationally, not pointwise. Compare four things: raw volatility amplitude, whether MA7 is above or below MA30, the slope of MA30, and where the current endpoint sits inside the visible historical range. A large raw spike with flat MA30 usually means short-lived disturbance; a persistent MA30 slope change is stronger evidence of regime-relevant drift.

For gas_utilization_pct, the selected window is 30 days and the native unit is fraction. Because the series stays in native units, cross-metric comparisons should be shape-based rather than level-based unless the units are directly comparable. The chart is therefore best used to study persistence, relative elevation, and transition timing—not to infer standardized magnitude by eye.

Why gas_utilization_pct is shown

×
Basic

Gas utilisation shows how full EVM blocks are on average. A fully utilised block means the chain is operating at its capacity ceiling - every unit of computational space is being consumed. A partially utilised block means there is slack.

It is shown now because low utilisation is part of what defines the current CHEAP state. Spare capacity is what makes cheap conditions structurally stable.

Advanced

gas_utilization_pct = mean(gas_used / gas_limit) across all blocks for the day. It is the primary capacity-axis input for ETH L1. Under EIP-1559, the protocol target is 50% - sustained utilisation above that signals base fee growth; sustained near 100% signals a hard capacity ceiling. This field is not published for BTC or L2 profiles where the semantics are not equivalent.

Traceability
  • Metric: gas_utilization_pct
  • Axis: —
Deeper decomposition

Scorecard

The scorecard breaks the present state into Demand, Friction, and Capacity. This is where to go when the top-line label feels too compressed or too blunt.

Scores are 0–100. 50 is neutral vs the chain's own history. Higher Demand means hotter usage; higher Friction means higher cost/failure; higher Capacity means tighter capacity pressure. Low confidence pulls scores toward 50. Scorecard components are profile-aware and aligned with regime classification.

Demand
NormalMore →
62DEMANDNormal
62/ 100
Coverage: 1.000 · Effective conf: 0.911

What Demand means

Source scorecard.dimensions.demand · Level Normal
×
Basic

Demand describes usage pressure: how much on-chain activity the chain currently seems to be carrying relative to its own recent history.

“Normal” means normal versus this chain’s own recent baseline, not normal versus every chain in crypto.

The current published score is 62/100.

Advanced

Demand is an axis-level score derived from demand-side metrics after they have already been normalized into a comparable signal space upstream. Per the product contract, each scorecard dimension is a published scalar on [0,100], with the canonical mapping defined as score = 50 + 40 * tanh(z / 1.5), where z is the combined dimension signal. This tanh map preserves sign and ordering while compressing extremes so one unusual metric does not explode the gauge.

The second step is confidence-aware shrinkage toward neutral. The spec explicitly states that the mapped score is degraded back toward 50 according to effective support. So the visible score says both where Demand currently sits versus recent history and how strongly that placement is supported by available evidence. A modest visible value can therefore sit on top of a stronger raw z-signal if coverage or confidence is weak.

The auxiliary fields matter mathematically: coverage_factor is a 0–1 completeness term for expected evidence on the axis, while effective_confidence is the confidence-adjusted support term used to avoid over-asserting noisy partial evidence. In the current row, coverage is 1.000 and effective confidence is 0.911.

Traceability
  • Source: meta/ethereum/latest.json
  • Coverage: 1.000
  • Effective confidence: 0.911
Friction
LowMore →
29FRICTIONLow
29/ 100
Coverage: 1.000 · Effective conf: 0.911

What Friction means

Source scorecard.dimensions.friction · Level Low
×
Basic

Friction describes cost, execution difficulty, or tightness-of-use: how expensive or hard the chain currently looks relative to itself.

A chain can be busy without looking especially costly, and it can look costly without looking maximally busy. That is why Friction is separated from Demand.

The current published score is 29/100.

Advanced

Friction uses the same bounded-score contract as the other axes, but the upstream inputs are chosen from metrics that speak to cost burden, execution tightness, or failure/fee strain rather than raw usage volume. On EVM-style chains this often leans on fee and execution semantics; on BTC-style profiles it leans more heavily on fee and pacing proxies. The result is still mapped through the same tanh-based score transform so the three axes remain visually comparable without pretending they arise from identical raw variables.

Advanced users should read Friction as an interpretable compressed statistic rather than a latent variable estimated by a factor model. It is a deterministic published summary of how tight or costly use currently looks relative to recent chain history. The banding to Low/Normal/High is thresholding of the mapped score, not a separate classifier.

Capacity
BalancedMore →
52CAPACITYBalanced
52/ 100
Coverage: 0.500 · Effective conf: 0.456

What Capacity means

Source scorecard.dimensions.capacity · Level Balanced
×
Basic

Capacity describes how constrained or unconstrained the chain currently looks relative to its own recent baseline.

“Balanced” means balanced versus the chain’s own recent history, not some universal network-capacity standard.

The current published score is 52/100.

Advanced

Capacity answers a different question from Demand. Demand asks how much use is showing up; Capacity asks whether the chain looks roomy, balanced, or tight while carrying that use. The upstream evidence is therefore profile-dependent: Ethereum-like chains can use utilization fields such as block fullness, while Bitcoin-like chains need timing and throughput proxies because they do not expose gas-utilization semantics.

The published score again follows the canonical bounded transform 50 + 40 * tanh(z / 1.5), then degrades toward 50 according to effective support. So a Capacity score near 50 should be read as “close to recent baseline after support adjustment”, not as an absolute engineering statement that the network is half full. The score is explicitly chain-relative.

Evidence layer

Drivers

Drivers are the “because” behind the visible regime. They show which published metrics are currently doing the most work in explaining the present state.

friction

failed_tx_rate

COOLING
Z robustMore →
0.49
90d percentileMore →
50.6%
Momentum 7d vs 30dMore →
-0.726
Current valueMore →
0.016344142084611733
Why failed_tx_rate is shownMore →

This row is being used as visible evidence for the current descriptive state.

Source: meta/ethereum/latest.json → regime.drivers[]

Robust z-score for failed_tx_rate

×
Basic

Robust z-score tells you how unusual the current reading looks relative to the metric’s own recent typical range.

Larger absolute values mean the metric stands out more strongly. The current value is 0.49.

Advanced

z_robust is a robust standardized distance. The governing spec defines it as 0.6745 * (x - median) / MAD, where MAD is the median absolute deviation. If MAD = 0, the pipeline falls back to a standard z-score; if that fallback standard deviation is also 0, the value falls back to 0. This differs materially from a plain mean/std z-score because the median/MAD form is less dominated by extreme outliers.

Interpretation: sign gives direction versus the recent center; magnitude gives unusualness versus the recent robust spread. A value around 0 means near recent center; larger absolute values mean farther from what has recently been typical. Because it is standardized, z_robust is useful for ranking unlike metrics on a common evidence scale even when they live in completely different native units.

The caveat is that z_robust is still a local statistic, not a structural model. It tells you how unusual the current reading is under the recent distributional context. It does not tell you causality, persistence probability, or future path.

Traceability
Field: regime.drivers[].z_robust

90-day percentile for failed_tx_rate

×
Basic

90-day percentile tells you where today’s reading sits inside the recent 90-day range.

High percentile means near the top of recent observations; low percentile means near the bottom. The current value is 50.6%.

Advanced

pct_90d is a 90-day percentile-rank statistic. The spec defines it as the percentile rank of the current value relative to the last 90 days, with a minimum of 30 data points required. Statistically, percentile is a positional measure, not a distance measure: it tells you where the current observation sits in the ordered recent sample, not how many dispersion units away it is from the center.

That distinction matters. A percentile of 90 means the current value is above roughly 90% of the recent sample, but it does not tell you whether it is only slightly above the 89th percentile or dramatically above it. That is why percentile and z_robust are shown together: percentile gives rank-in-range; z_robust gives standardized unusualness.

Advanced readers should use percentile as an order-statistic view of state location inside the recent empirical distribution. It is especially useful when distributions are skewed or when raw units are hard to compare visually across metrics.

Traceability
Field: regime.drivers[].pct_90d

Momentum for failed_tx_rate

×
Basic

Momentum (7d vs 30d) compares the short-term signal with the broader recent baseline.

Positive values mean the short-term level is running above the longer recent trend; negative values mean it is running below it. The current value is -0.726.

Advanced

momentum_7d_vs_30d is defined in the product spec as z_robust(mean_7d) - z_robust(mean_30d). So it is not a raw-return calculation and not a percentage slope. It is a difference between two robustly standardized local means: one short-horizon (7d), one broader-horizon (30d).

The sign therefore indicates short-versus-broader acceleration. Positive values mean the recent 7-day state is stronger/hotter than the broader 30-day baseline in standardized terms; negative values mean the short-horizon state is cooler/weaker than the broader baseline. This gives the user a direction-of-drift statistic that complements level and rank statistics.

The correct technical reading is dynamic, not static: percentile and z_robust tell you where the metric is, while momentum tells you whether the short window is currently pulling away from or falling back toward the broader local baseline.

Traceability
Field: regime.drivers[].momentum_7d_vs_30d

Current value for failed_tx_rate

×
Basic

Current value is the visible latest raw reading for this metric in its native units.

It is useful because it shows the actual level behind the summaries and classifications.

Advanced

The current raw value is the direct latest observation carried into the driver row, shown in native units with no frontend normalization. It exists for auditability: it lets the reader tie the standardized summaries back to an actual quantity measured on the chain.

Technically, this number should never be read alone when comparing across metrics. Raw level, percentile, z_robust, and momentum answer different statistical questions. The raw value says what the latest observed level is; percentile says where that level sits inside the recent ordered sample; z_robust says how unusual it is relative to robust spread; momentum says whether the short horizon is strengthening or weakening relative to the broader local baseline.

In other words, current value is the anchor that keeps the driver row empirically grounded, while the other columns provide standardized context around that anchor.

Traceability
Field: regime.drivers[].current

Why failed_tx_rate is shown

Axis friction · Trend COOLING
×
Basic

The failed transaction rate shows what share of transactions did not complete successfully. A rising failure rate usually means the execution environment is more competitive or congested - users are submitting transactions that are outcompeted or run out of gas.

It is shown for confirmation: a genuinely CHEAP state should also show low failure rates, not just low fees. This metric helps verify that.

Advanced

failed_tx_rate is a friction-axis input on EVM chains alongside fee_burden_proxy. It is not available for Bitcoin (no equivalent concept under the UTXO model). On EVM chains, it reflects out-of-gas failures, reverts, and other execution failures - all of which are user-visible friction signals distinct from fee level alone.

Traceability
  • Source: meta/ethereum/latest.json
  • Metric: failed_tx_rate
friction

median_tx_fee_native

COOLING
Z robustMore →
-0.46
90d percentileMore →
11.7%
Momentum 7d vs 30dMore →
-0.992
Current valueMore →
4418483832000
Why median_tx_fee_native is shownMore →

This row is being used as visible evidence for the current descriptive state.

Source: meta/ethereum/latest.json → regime.drivers[]

Robust z-score for median_tx_fee_native

Data contract & traceability
Data source: local
Meta: meta/ethereum/latest.json
Gold: gold/ethereum/last30d.json
Derived: derived/ethereum/last30d.json
Briefs: briefs/chains/ethereum/latest.json
Runtime chart points use observed published dates inside the selected window.
Want the JSON behind these charts?

Every label here is backed by a determinism hash and a full confidence score. A subscription gives you API access to the complete Gold, Derived, Meta, and Briefs JSON layers.

Sign up freeSee plans
  • Chain: ethereum
  • Profile label: ETH L1
  • Source: meta/ethereum/latest.json
  • Field: status.label

The correct advanced reading is to treat confidence as a model-governance and interpretability control. Higher confidence indicates fuller published evidence and stronger internal support for the current descriptive classification; lower confidence indicates that coverage or label support is weak enough that the label should be read defensively. It is deliberately orthogonal to freshness: a row may be recent but weakly supported, or older but still supported by internally consistent evidence.

Traceability
  • Source: meta/ethereum/latest.json
  • Score: 0.911
Traceability
  • MA: derived/ethereum/last30d.json
  • Raw: gold/ethereum/last30d.json
  • Metric: median_tx_fee_native
Traceability
  • MA: derived/ethereum/last30d.json
  • Raw: gold/ethereum/last30d.json
  • Metric: tx_count_daily
Traceability
  • MA: derived/ethereum/last30d.json
  • Raw: gold/ethereum/last30d.json
  • Metric: gas_utilization_pct

As with Demand, the visible score is modulated by support. Coverage remains 1.000 and effective confidence remains 0.911. If these are low, the score is deliberately shrunk toward the neutral center so the UI does not over-interpret weak or partially missing cost evidence.

Traceability
  • Source: meta/ethereum/latest.json
  • Coverage: 1.000
  • Effective confidence: 0.911

In the current row, coverage is 0.500 and effective confidence is 0.456. These terms matter because capacity evidence is often the most chain-semantic-sensitive axis: on BTC it is proxy-based, on L2s it is architecture-specific, and on EVM L1 it can be read more directly from utilization. The confidence-aware shrinkage is what keeps those differences from being presented with false precision.

Traceability
  • Source: meta/ethereum/latest.json
  • Coverage: 0.500
  • Effective confidence: 0.456
×
Basic

Robust z-score tells you how unusual the current reading looks relative to the metric’s own recent typical range.

Larger absolute values mean the metric stands out more strongly. The current value is -0.46.

Advanced

z_robust is a robust standardized distance. The governing spec defines it as 0.6745 * (x - median) / MAD, where MAD is the median absolute deviation. If MAD = 0, the pipeline falls back to a standard z-score; if that fallback standard deviation is also 0, the value falls back to 0. This differs materially from a plain mean/std z-score because the median/MAD form is less dominated by extreme outliers.

Interpretation: sign gives direction versus the recent center; magnitude gives unusualness versus the recent robust spread. A value around 0 means near recent center; larger absolute values mean farther from what has recently been typical. Because it is standardized, z_robust is useful for ranking unlike metrics on a common evidence scale even when they live in completely different native units.

The caveat is that z_robust is still a local statistic, not a structural model. It tells you how unusual the current reading is under the recent distributional context. It does not tell you causality, persistence probability, or future path.

Traceability
Field: regime.drivers[].z_robust

90-day percentile for median_tx_fee_native

×
Basic

90-day percentile tells you where today’s reading sits inside the recent 90-day range.

High percentile means near the top of recent observations; low percentile means near the bottom. The current value is 11.7%.

Advanced

pct_90d is a 90-day percentile-rank statistic. The spec defines it as the percentile rank of the current value relative to the last 90 days, with a minimum of 30 data points required. Statistically, percentile is a positional measure, not a distance measure: it tells you where the current observation sits in the ordered recent sample, not how many dispersion units away it is from the center.

That distinction matters. A percentile of 90 means the current value is above roughly 90% of the recent sample, but it does not tell you whether it is only slightly above the 89th percentile or dramatically above it. That is why percentile and z_robust are shown together: percentile gives rank-in-range; z_robust gives standardized unusualness.

Advanced readers should use percentile as an order-statistic view of state location inside the recent empirical distribution. It is especially useful when distributions are skewed or when raw units are hard to compare visually across metrics.

Traceability
Field: regime.drivers[].pct_90d

Momentum for median_tx_fee_native

×
Basic

Momentum (7d vs 30d) compares the short-term signal with the broader recent baseline.

Positive values mean the short-term level is running above the longer recent trend; negative values mean it is running below it. The current value is -0.992.

Advanced

momentum_7d_vs_30d is defined in the product spec as z_robust(mean_7d) - z_robust(mean_30d). So it is not a raw-return calculation and not a percentage slope. It is a difference between two robustly standardized local means: one short-horizon (7d), one broader-horizon (30d).

The sign therefore indicates short-versus-broader acceleration. Positive values mean the recent 7-day state is stronger/hotter than the broader 30-day baseline in standardized terms; negative values mean the short-horizon state is cooler/weaker than the broader baseline. This gives the user a direction-of-drift statistic that complements level and rank statistics.

The correct technical reading is dynamic, not static: percentile and z_robust tell you where the metric is, while momentum tells you whether the short window is currently pulling away from or falling back toward the broader local baseline.

Traceability
Field: regime.drivers[].momentum_7d_vs_30d

Current value for median_tx_fee_native

×
Basic

Current value is the visible latest raw reading for this metric in its native units.

It is useful because it shows the actual level behind the summaries and classifications.

Advanced

The current raw value is the direct latest observation carried into the driver row, shown in native units with no frontend normalization. It exists for auditability: it lets the reader tie the standardized summaries back to an actual quantity measured on the chain.

Technically, this number should never be read alone when comparing across metrics. Raw level, percentile, z_robust, and momentum answer different statistical questions. The raw value says what the latest observed level is; percentile says where that level sits inside the recent ordered sample; z_robust says how unusual it is relative to robust spread; momentum says whether the short horizon is strengthening or weakening relative to the broader local baseline.

In other words, current value is the anchor that keeps the driver row empirically grounded, while the other columns provide standardized context around that anchor.

Traceability
Field: regime.drivers[].current

Why median_tx_fee_native is shown

Axis friction · Trend COOLING
×
Basic

The median transaction fee shows what a typical user was paying to transact in the chain's own native units. Fees are one of the most immediate ways users feel changes in network pressure - they rise when demand competes with available block space or gas.

It is shown now because low fees are one of the defining features of the current CHEAP state. This metric is part of what qualifies the chain as cheap to use right now.

Advanced

median_tx_fee_native is a friction-axis input. On BTC it is the primary friction anchor because there is no equivalent to gas-utilisation or failed-tx rate. On EVM chains it feeds fee_burden_proxy(median_fee / median_tx_value) alongside failed_tx_rate. The median is used rather than mean to reduce outlier sensitivity.

Traceability
  • Source: meta/ethereum/latest.json
  • Metric: median_tx_fee_native