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

STABLE

Stable regime: Demand Normal; Friction Normal; Capacity Balanced.

Reduced confidence

Confidence is reduced due to thinner or less internally consistent support. The current label remains visible, but the page is telling you not to lean too heavily on it without checking the rest of the evidence.

View historyMethodology →Glossary →
Key metrics
as of 2026-05-28
Confidence0.658Caution
Observed lag2d
Demand
Normal
59
Friction
Normal
44
Capacity
Balanced
45
Hashbaa30e066fc9
Latest 7-day Brief
Briefs →

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

Window
2026-05-22 → 2026-05-28
Dominant
STABLE · 5/7 days
Brief confidence
0.757 avg 7d
Volatility
moderate
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

demand: normal stable

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.

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

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
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: STABLE
×
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 STABLE is a descriptive compression of the present chain state conditional on methodology version, chain profile, window, and confidence gate.

Traceability

What confidence means

Band: Caution
×
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 Caution. In the current row, the published confidence is 0.658.

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.434. 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-05-28.

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-05-28
  • 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: baa30e066fc9. Current window: 7.

Traceability
  • Hash: baa30e066fc9
  • Window: 7
365d
median_tx_fee_nativeFriction

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

Units: wei
Current signal
MA7 −16.6% 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-04-29 → 2026-05-28 (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 - the most direct cost indicator available for this chain.

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.

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

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 because fee level is the most direct cost signal available for judging the current operating state.

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 2

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-04-29 → 2026-05-28 (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.

Traceability
  • MA:

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 because block utilisation is the most direct observable measure of how full or empty the chain currently is.

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: capacity
Chart 3

unique_active_addresses

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

Units: addresses
30d90d180d365d
unique_active_addressesDemand

Unique addresses active per day — measures the breadth of network participation.

Units: addresses
Current signal
MA7 +6.7% above MA30
Daily raw value
MA7 — 7-day moving average
MA30 — 30-day trend baseline
Preparing chart…
Reading this at 30d: Sudden surges in active addresses often reflect protocol events or airdrops. A sustained MA7 rise above MA30 that holds for two weeks is a more credible signal.
MA: derived/ethereum/last30d.json · Raw: gold/ethereum/last30d.json · Window: 2026-04-29 → 2026-05-28 (30 calendar days)
How to readMore →

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

Why shownMore →

Breadth signal - shows whether current activity is broad or concentrated.

How to read unique_active_addresses

Window 30d · Units addresses
×
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 addresses.

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 unique_active_addresses, the selected window is 30 days and the native unit is addresses. 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

Why unique_active_addresses is shown

×
Basic

Active addresses show whether current activity is broad or concentrated. A chain can have high transaction count driven by a few heavy users, or the same count spread across many participants - and those two situations have different implications for how durable the current state looks.

It is shown to give the participation-breadth context that raw transaction count alone cannot provide.

Advanced

unique_active_addresses is a demand-axis complement totx_count_daily. The derivedtx_per_user ratio (tx_count / active_addresses) is also used in the scorecard as a third demand component where available. The address field has known limitations on Bitcoin (UTXO reuse) and is sometimes null on L2s.

Traceability
  • Metric: unique_active_addresses
  • Axis: demand
Chart 4

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 −13.8% below 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-04-29 → 2026-05-28 (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.

Traceability

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 because it is the most direct available signal of current network usage breadth.

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: —
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 →
59DEMANDNormal
59/ 100
Coverage: 1.000 · Effective conf: 0.658

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 59/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.658.

Traceability
  • Source: meta/ethereum/latest.json
  • Coverage: 1.000
  • Effective confidence: 0.658
Friction
NormalMore →
44FRICTIONNormal
44/ 100
Coverage: 1.000 · Effective conf: 0.658

What Friction means

Source scorecard.dimensions.friction · Level Normal
×
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 44/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 →
45CAPACITYBalanced
45/ 100
Coverage: 0.500 · Effective conf: 0.329

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 45/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

median_tx_fee_native

COOLING
Z robustMore →
4.08
90d percentileMore →
73.9%
Momentum 7d vs 30dMore →
-3.400
Current valueMore →
21883815747654
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

×
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 4.08.

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 73.9%.

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 -3.400.

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 because fee level is the most direct cost signal available for judging the current operating state.

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
capacity

gas_utilization_pct

FLAT
Z robustMore →
-1.42
90d percentileMore →
11.7%
Momentum 7d vs 30dMore →
0.020
Current valueMore →
0.5043493284771846
Why gas_utilization_pct 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 gas_utilization_pct

demand

unique_active_addresses

COOLING
Z robustMore →
-0.85
90d percentileMore →
23.9%
Momentum 7d vs 30dMore →
-0.384
Current valueMore →
556583
Why unique_active_addresses 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 unique_active_addresses

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. High confidence means the row is more complete and the current classification is more internally coherent; low confidence means either coverage or support is weak enough that the label should be read defensively. It is deliberately orthogonal to freshness: a row may be recent but poorly supported, or older but still structurally coherent.

Traceability
  • Source: meta/ethereum/latest.json
  • Score: 0.658
derived/ethereum/last30d.json
  • Raw: gold/ethereum/last30d.json
  • Metric: gas_utilization_pct
  • MA: derived/ethereum/last30d.json
  • Raw: gold/ethereum/last30d.json
  • Metric: unique_active_addresses
  • MA: derived/ethereum/last30d.json
  • Raw: gold/ethereum/last30d.json
  • Metric: tx_count_daily
  • As with Demand, the visible score is modulated by support. Coverage remains 1.000 and effective confidence remains 0.658. 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.658

    In the current row, coverage is 0.500 and effective confidence is 0.329. 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.329
    ×
    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 -1.42.

    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 gas_utilization_pct

    ×
    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 gas_utilization_pct

    ×
    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.020.

    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 gas_utilization_pct

    ×
    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 gas_utilization_pct is shown

    Axis capacity · Trend FLAT
    ×
    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 because block utilisation is the most direct observable measure of how full or empty the chain currently is.

    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
    • Source: meta/ethereum/latest.json
    • Metric: gas_utilization_pct
    ×
    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.85.

    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 unique_active_addresses

    ×
    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 23.9%.

    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 unique_active_addresses

    ×
    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.384.

    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 unique_active_addresses

    ×
    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 unique_active_addresses is shown

    Axis demand · Trend COOLING
    ×
    Basic

    Active addresses show whether current activity is broad or concentrated. A chain can have high transaction count driven by a few heavy users, or the same count spread across many participants - and those two situations have different implications for how durable the current state looks.

    It is shown to give the participation-breadth context that raw transaction count alone cannot provide.

    Advanced

    unique_active_addresses is a demand-axis complement totx_count_daily. The derivedtx_per_user ratio (tx_count / active_addresses) is also used in the scorecard as a third demand component where available. The address field has known limitations on Bitcoin (UTXO reuse) and is sometimes null on L2s.

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