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

BTC

CONGESTED

Congested regime: regime-axis evidence shows capacity pressure from block-time instability.

View historyMethodology →Glossary →
Key metrics
as of 2026-05-28
Confidence0.896Good
Observed lag2d
Demand
High
85
Friction
Low
27
Capacity
Tight
80
Hash2e91ef8edb16
Latest 7-day Brief
Briefs →

Bitcoin remained HEATING-dominant across the latest 7 published days, with 1 regime transition(s) in the window.

Window
2026-05-22 → 2026-05-28
Dominant
HEATING · 4/7 days
Brief confidence
0.931 avg 7d
Volatility
low
Chain profile
More →

Bitcoin is the original peer-to-peer cash network and uses the UTXO model rather than the EVM account model.

Compared with EVM chains, BTC does not express demand and congestion through gas utilisation or smart-contract execution cost. Instead, the strongest direct operating signals are transaction count, transaction fees, and block-time behaviour relative to the chain's own recent history.

What to watch

Watch tx_count_daily and median_tx_fee_native as the primary demand and friction signals. Block time (avg_block_time_sec) proxies capacity — BTC has no gas utilisation field. Fee spikes are episodic and sharp. Regime shifts on BTC are driven by block-space competition, not execution congestion.

Brief driver

demand: elevated stable

Why users care

BTC users usually care whether the network currently looks quiet, warming up, or crowded because that changes how difficult and expensive it is to get transactions included, and whether current activity looks ordinary or unusually stressed relative to recent history.

Profile details

How BTC behaves

More →

Bitcoin is the original peer-to-peer cash network and uses the UTXO model rather than the EVM account model.

Compared with EVM chains, BTC does not express demand and congestion through gas utilisation or smart-contract execution cost. Instead, the strongest direct operating signals are transaction count, transaction fees, and block-time behaviour relative to the chain's own recent history.

Primary drivers

Demand is primarily read from tx_count_daily and unique_active_addresses.

Friction is primarily read from median_tx_fee_native.

Capacity is proxied through avg_block_time_sec because BTC does not have an EVM-style gas utilisation field.

Caveats

Block time is a proxy, not a literal spare-capacity meter.

BTC fee spikes can be sharp and episodic because users compete for finite block space.

Chart 1

tx_count_daily

Confirmed transactions per day are a primary demand signal on Bitcoin because they show how much confirmed block-space usage the chain is carrying.

Units: transactions per day
30d90d

BTC chain profile

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

Bitcoin is the original settlement-focused chain. It does not expose the same EVM-style execution and gas fields as Ethereum-like networks, so the site reads BTC mainly through transaction throughput, fee pressure, and block-timing context.

In plain language: on Bitcoin, pressure often shows up as competition for block space, fee changes, and confirmation pacing, rather than smart-contract execution metrics.

Advanced

BTC is treated as a UTXO-profile chain, so the explanatory surface is intentionally different from an EVM chain. The dominant descriptive questions are: how much confirmed block-space demand is present, how competitive are fees, and does block production look smooth or strained? That is why the page leans on transaction count, median fee, and block-time pacing rather than gas-utilization or failed-transaction fields, which do not carry the same semantics on Bitcoin.

Methodologically, this matters because the same top-line word such as “busy” can arise through different observables on different architectures. On Bitcoin, a hotter state often manifests as stronger competition for limited block space and less roomy confirmation conditions, whereas on Ethereum the same intuition may show up through gas usage and execution fees. The chain profile prevents false cross-chain equivalence by changing which metrics are even allowed to speak for Demand, Friction, and Capacity.

In product terms, BTC Demand tends to lean on confirmed throughput; Friction on fee pressure; Capacity on timing/throughput proxies such as average block time. The page is therefore not saying “Bitcoin has no capacity model”; it is saying the capacity model is proxied through the variables that actually make sense for a UTXO settlement network.

Traceability
  • Chain: bitcoin

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: CONGESTED
×
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 CONGESTED 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.896.

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.803. 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/bitcoin/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: 2e91ef8edb16. Current window: 7.

Traceability
  • Hash: 2e91ef8edb16
  • Window: 7
180d
365d
tx_count_dailyDemand

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

Units: transactions per day
Current signal
MA7 +18.0% above MA30
Daily raw value
MA7 — 7-day moving average
MA30 — 30-day trend baseline
Preparing chart…
Reading this at 180d: At 180 days you can see demand cycles clearly. A MA30 that trends upward across the entire window is a strong regime signal. Compare the first and last 30-day segments of the chart — if the right side is structurally higher, demand has shifted.
MA: derived/bitcoin/last180d.json · Raw: gold/bitcoin/last180d.json · Window: 2025-11-30 → 2026-05-28 (180 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 180d · 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 180d 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 180 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
  • MA: derived/bitcoin/last180d.json
  • Raw: gold/bitcoin/last180d.json
  • Metric: tx_count_daily

Why tx_count_daily is shown

×
Basic

Bitcoin's transaction count is the clearest available signal for how much demand pressure block space is currently under. More confirmed transactions means more competition for the limited ~1 MB of block space available per ~10 minutes.

It is shown now because demand is pressing against capacity. Transaction count is one of the clearest signals of that pressure.

Advanced

tx_count_daily is the primary demand-axis input for the BTC profile. It is log-normalised before z-score computation to reduce scale sensitivity. On Bitcoin, this field also serves as a partial capacity proxy because block space is fixed - more transactions means more block-space demand, which directly connects demand and capacity pressure.

Source: gold/bitcoin/last{window}d.json -> tx_count_daily. Regime axis: demand.

Traceability
  • Metric: tx_count_daily
  • Axis: demand
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: BTC
30d90d180d365d
median_tx_fee_nativeFriction

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

Units: BTC
Current signal
MA7 +46.3% above MA30
Daily raw value
MA7 — 7-day moving average
MA30 — 30-day trend baseline
Preparing chart…
Reading this at 90d: A MA30 that is trending upward over 90 days means fee pressure is structural, not episodic. Cross-reference with tx_count: fees rising alongside rising demand is a textbook congestion build-up.
MA: derived/bitcoin/last90d.json · Raw: gold/bitcoin/last90d.json · Window: 2026-02-28 → 2026-05-28 (90 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 - elevated fees are part of what defines the current CONGESTED state.

How to read median_tx_fee_native

Window 90d · Units BTC
×
Basic

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

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

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 90 days and the native unit is BTC. 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 elevated fees are part of the friction that defines the current CONGESTED state. This is one of the direct cost signals supporting that label.

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

avg_block_time_sec

Average time between blocks is a timing and pacing proxy. It helps the user judge whether the chain currently looks smooth, slow, or constrained in block production terms.

Units: seconds
30d90d180d365d
avg_block_time_secCapacity

Average time between blocks in seconds — measures chain pacing and throughput capacity.

Units: seconds
Current signal
MA7 −8.8% below MA30
Daily raw value
MA7 — 7-day moving average
MA30 — 30-day trend baseline
Preparing chart…
Reading this at 90d: At 90 days you can see Bitcoin difficulty adjustment cycles. A MA30 that is clearly below 600s means hash rate has been growing structurally.
MA: derived/bitcoin/last90d.json · Raw: gold/bitcoin/last90d.json · Window: 2026-02-28 → 2026-05-28 (90 calendar days)
How to readMore →

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

Why shownMore →

Capacity proxy - block timing deviation signals whether production is smooth or erratic.

How to read avg_block_time_sec

Window 90d · Units seconds
×
Basic

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

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

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 avg_block_time_sec, the selected window is 90 days and the native unit is seconds. 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 avg_block_time_sec is shown

×
Basic

Average block time shows how long the network is taking to produce blocks. Persistent changes in block timing can signal changes in mining competition (Bitcoin) or validator conditions - and erratic timing is often a sign of operating stress.

On Bitcoin this is especially important because there is no gas utilisation field. Block time is the closest available proxy for whether capacity looks tight or relaxed.

Advanced

avg_block_time_secis used in the capacity axis. It is not read as a simple "higher is worse" signal - instead the pipeline derives ablocktime_instabilityproxy that measures deviation from the chain's own rolling median. This makes it a stability signal rather than a raw speed signal, which is more informative across different chain architectures.

On BTC specifically, this is one of only two visible capacity signals (alongside block_count_daily). It therefore carries more weight in the BTC capacity axis than it would on an EVM chain with gas utilisation data.

Traceability
  • Metric: avg_block_time_sec
  • 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
HighMore →
85DEMANDHigh
85/ 100
Coverage: 1.000 · Effective conf: 0.896

What Demand means

Source scorecard.dimensions.demand · Level High
×
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 85/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.896.

Traceability
  • Source: meta/bitcoin/latest.json
  • Coverage: 1.000
  • Effective confidence: 0.896
Friction
LowMore →
27FRICTIONLow
27/ 100
Coverage: 1.000 · Effective conf: 0.896

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 27/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
TightMore →
80CAPACITYTight
80/ 100
Coverage: 1.000 · Effective conf: 0.896

What Capacity means

Source scorecard.dimensions.capacity · Level Tight
×
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 80/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.

demand

tx_count_daily

HEATING
Z robustMore →
3.04
90d percentileMore →
97.2%
Momentum 7d vs 30dMore →
0.722
Current valueMore →
779340
Why tx_count_daily is shownMore →

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

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

Robust z-score for tx_count_daily

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

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 tx_count_daily

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

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 tx_count_daily

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

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 tx_count_daily

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

Axis demand · Trend HEATING
×
Basic

Bitcoin's transaction count is the clearest available signal for how much demand pressure block space is currently under. More confirmed transactions means more competition for the limited ~1 MB of block space available per ~10 minutes.

It is shown now because demand is pressing against capacity. Transaction count is one of the clearest signals of that pressure.

Advanced

tx_count_daily is the primary demand-axis input for the BTC profile. It is log-normalised before z-score computation to reduce scale sensitivity. On Bitcoin, this field also serves as a partial capacity proxy because block space is fixed - more transactions means more block-space demand, which directly connects demand and capacity pressure.

Source: gold/bitcoin/last{window}d.json -> tx_count_daily. Regime axis: demand.

Traceability
  • Source: meta/bitcoin/latest.json
  • Metric: tx_count_daily
capacity

blocktime_instability

HEATING
Z robustMore →
1.83
90d percentileMore →
92.8%
Momentum 7d vs 30dMore →
1.338
Current valueMore →
0.15138864550905776
Why blocktime_instability is shownMore →

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

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

Robust z-score for blocktime_instability

Data contract & traceability
Data source: local
Meta: meta/bitcoin/latest.json
Gold: gold/bitcoin/last30d.json
Derived: derived/bitcoin/last30d.json
Briefs: briefs/chains/bitcoin/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
  • Profile label: BTC
    • Source: meta/bitcoin/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/bitcoin/latest.json
    • Score: 0.896
    Traceability
    • MA: derived/bitcoin/last90d.json
    • Raw: gold/bitcoin/last90d.json
    • Metric: median_tx_fee_native
    Traceability
    • MA: derived/bitcoin/last90d.json
    • Raw: gold/bitcoin/last90d.json
    • Metric: avg_block_time_sec

    As with Demand, the visible score is modulated by support. Coverage remains 1.000 and effective confidence remains 0.896. 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/bitcoin/latest.json
    • Coverage: 1.000
    • Effective confidence: 0.896

    In the current row, coverage is 1.000 and effective confidence is 0.896. 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/bitcoin/latest.json
    • Coverage: 1.000
    • Effective confidence: 0.896
    ×
    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.83.

    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 blocktime_instability

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

    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 blocktime_instability

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

    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 blocktime_instability

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

    Axis capacity · Trend HEATING
    ×
    Basic

    This metric is shown because it is currently contributing to capacity tightness - whether the chain looks more constrained than usual relative to its own history. A metric appearing here means it is doing real explanatory work in the current published row - not just present in the data, but standing out enough to surface.

    In the context of the current CONGESTED label, this field is part of the evidence layer that supports or qualifies that classification.

    Advanced

    Metric blocktime_instability on axis capacity. The UI surfaces this from regime.drivers[] in the published meta artifact. Driver ranking is deterministic - this metric currently ranks high enough in the published driver set to be surfaced as a visible evidence row.

    Traceability
    • Source: meta/bitcoin/latest.json
    • Metric: blocktime_instability