URD ATLAS
OverviewAPIDocsWikiPlans
AccountGet Started
OverviewAPIDocsWikiPlansChainsExplorerAnalyst KitWorkflowsValidationStatusAboutTrack RecordThresholdsGlossaryFAQ
AccountGet Started
© 2026 Urd Atlas.
AboutLegalTermsPrivacy
No price data · No forecasts · No recommendations
Methodology

Evidence score: exact public calculation

The current score is deterministic, profile-aware and label-specific. It measures support for a published row; it is not a calibrated probability that the label is true.

1. Composite score

Current method: confidence_v3_l2_capacity_required. Public terminology is Evidence score; the legacy API field remains confidence.confidence_score for compatibility.

evidence_score = clamp01(sqrt(data_quality_score * label_confidence_score))
publication gate = 0.40
if evidence_score < 0.40 => public label = UNKNOWN/DEGRADED

If data quality exists but label confidence is unavailable, the legacy builder can fall back to the data-quality score. Normal named-state publication still remains subject to the gate and regime rules.

2. Data-quality score

data_quality_score = weighted_mean(
  0.35 * current_row_coverage,
  0.25 * recent_metric_coverage_30d,
  0.15 * recent_density_30d,
  0.15 * history_depth_180d,
  0.10 * freshness_asof
)

Only finite/available components enter the denominator. Current-row coverage is the fraction of required profile metrics present on the latest supporting row. Recent metric coverage is the mean required-metric coverage over the last 30 calendar days. Recent density is min(1, observed distinct days / 30). History depth is min(1, distinct history days / 180).

Freshness is 1.0 through the expected lag (BTC/ETH 1 day; ARB/BASE 7 days), decays to 0.70 at the soft boundary (2 days for L1, 10 days for L2), then linearly to 0 at the hard boundary (4 days for L1, 15 days for L2).

3. Shared primitive functions

high_margin(score) = clamp01((score - 67) / 33)
low_margin(score)  = clamp01((33 - score) / 33)
neutrality(score)  = clamp01(1 - abs(score - 50) / 17)
trend_strength(expected) = 1.0 if matching trend, 0.35 if FLAT, else 0.0
persistence_score = clamp01(label_run_days / 7) when prior-label run length is available

4. Driver strength

Each eligible driver is scored from its published robust-z, 90-day percentile and 7d-vs-30d momentum. Directionally contradictory drivers are excluded for high-side or low-side labels.

z_score   = clamp01(abs(z_robust) / 3)
pct_score = clamp01(abs(pct_90d - 50) / 50)
mom_score = clamp01(abs(momentum_7d_vs_30d) / 2)
driver_i  = 0.55*z_score + 0.30*pct_score + 0.15*mom_score
driver_strength = mean(up to 3 strongest eligible driver_i values)

5. Label-specific score

HEATING = weighted_mean(
  0.35*rule_margin, 0.25*driver_strength_demand,
  0.20*trend_strength_demand, 0.10*axis_coherence,
  0.10*persistence_score
)
CONGESTED = weighted_mean(
  0.35*rule_margin, 0.25*driver_strength_friction_capacity,
  0.20*axis_coherence, 0.10*severity_margin,
  0.10*persistence_score
)
CHEAP = weighted_mean(
  0.35*rule_margin, 0.25*driver_strength_friction_low_side,
  0.20*no_capacity_pressure, 0.10*axis_coherence,
  0.10*persistence_score
)
STABLE = weighted_mean(
  0.45*neutrality_score, 0.25*no_strong_driver_score,
  0.20*axis_coherence, 0.10*persistence_score
)

Unavailable persistence is excluded from the weighted denominator rather than imputed.

6. Rule margins and coherence

HEATING rule_margin = max(high_margin(demand_raw), 1 if raw Demand axis is HIGH+ and trend is HEATING else 0)
CONGESTED rule_margin = max(min(high_margin(friction_raw), high_margin(capacity_raw)), 1 if the raw congestion-axis rule is met else 0)
CHEAP rule_margin = max(min(low_margin(friction_raw), 1-high_margin(capacity_raw)), 1 if raw Friction is LOW and Capacity is not HIGH else 0)
STABLE rule_margin = mean(neutrality(demand_raw), neutrality(friction_raw), neutrality(capacity_raw))

CONGESTED severity margin is the maximum high-margin of raw Friction and Capacity. CHEAP no-capacity-pressure support is 1 - high_margin(capacity_raw). STABLE no-strong-driver support is 1 - driver_strength (or 1 when no driver strength exists).

Axis coherence penalizes evidence that directly contradicts the candidate label. HEATING reduces coherence for strong cheap/congestion counter-evidence; CONGESTED reduces it for low-friction evidence; CHEAP reduces it for high friction/capacity; STABLE is clamp01(1 - max(abs(axis_raw-50)/50)).

7. Interpretation boundary

An Evidence score of 0.80 means stronger support than 0.50 under this deterministic methodology. It does not mean “80% probability the label is correct”. No external ground-truth calibration currently supports probability language.

Threshold rationale and perturbation tests are documented in Validation and the public methodology. The score uses raw scorecard/regime evidence for label confidence; the customer-facing display score can be pulled toward 50 after confidence degradation and is not recursively used to calculate confidence.