← Back to blog
·5 min read·SettleRisk Team

Metric Definition Risk: When 'Inflation' Means Three Different Things

Deep Dive

Executive Summary

When a prediction market depends on a macroeconomic indicator — inflation, unemployment, GDP — the rules text usually names the indicator without specifying the source agency, the variant (headline vs. core), the release window, or the revision policy. Each of those choices changes the answer. METRIC_DEFINITION is SettleRisk's driver for catching this, and it is one of the most common contributors to MEDIUM-tier disputes in macro markets.

This post catalogues the four sub-patterns, walks through an inflation-market example, and shows the SDK calls to surface them.

Core Concept

The METRIC_DEFINITION driver fires on four detected sub-patterns:

| Sub-pattern | Example | |-------------|---------| | Source agency not specified | "inflation" (BLS? Fed? St. Louis Fed?) | | Variant not specified | "CPI" (headline? core? trimmed mean?) | | Release vs. revision window unclear | "as of June 30" (first print? revised?) | | Compound metric undefined | "real GDP growth" (chain-weighted? quarterly? annualized?) |

Base points: 10. Sub-pattern multipliers can push the driver toward its max_points of 20.

Worked Example

A real Polymarket on "Will US inflation exceed 4% by Q3 2026?" — pulls SettleRisk:

from settlerisk import SettleRiskClient

client = SettleRiskClient(api_key="sk-...")
score = client.get_risk_score("polymarket", "us-inflation-4pct-q3-2026")

for d in score.drivers:
    if d.driver_type == "METRIC_DEFINITION":
        for p in d.sub_patterns:
            print(f"  {p.type}: '{p.text_span}' ({p.sub_points} pts)")
  source_agency_unspecified: 'US inflation' (5 pts)
  variant_unspecified: 'inflation' (5 pts)

Ten points just from metric definition issues. The market also picked up TEMPORAL_AMBIGUITY for "by Q3" (4 pts), pushing the overall score to 51 — HIGH tier — even though the underlying question feels simple.

The mitigation in this case would be a rule rewrite to something like: "Resolves YES if Bureau of Labor Statistics headline CPI year-over-year exceeds 4.0% in any monthly release between Apr 1 and Sep 30, 2026 (first print, not revised)."

TypeScript pre-filter to flag metric-definition risk before pulling the full score:

const METRIC_TERMS = [
  "inflation", "gdp", "unemployment", "rate", "yield",
  "spread", "growth", "deficit", "trade balance",
];

const SPECIFIERS = [
  /\b(CPI|PCE|Core|Trimmed|Median)\b/i,
  /\b(BLS|Federal Reserve|BEA|Treasury|Atlanta Fed)\b/i,
  /\b(annualized|year[-\s]over[-\s]year|month[-\s]over[-\s]month|q[1-4])\b/i,
];

function metricDefinitionRisk(rules: string): string[] {
  const triggered = METRIC_TERMS.filter((t) => rules.toLowerCase().includes(t));
  if (triggered.length === 0) return [];
  const hasSpecifier = SPECIFIERS.some((re) => re.test(rules));
  return hasSpecifier ? [] : triggered;
}

If the function returns any terms, the market is metric-definition-risky and worth checking the full SettleRisk extraction.

Implementation Notes

Source agency is the dominant sub-pattern. ~60% of metric-definition disputes come from agency ambiguity. "Inflation" can mean CPI (BLS), PCE (BEA), or one of the regional Fed measures. They disagree by 50-100 bps regularly.

Revision windows are silent killers. Markets that resolve "as of date X" often don't say whether they use the first-print or revised number. If the first print exceeds the threshold but the revision drops below, the resolver has to pick — and the dispute economics get ugly.

Compound metrics deserve extra scrutiny. "Real GDP growth" requires: a base year, a deflator, a frequency (quarterly vs. annual), and a publication window. Each choice changes the answer.

| Metric | Common ambiguity | |--------|------------------| | CPI | Headline vs. core vs. trimmed mean | | PCE | Headline vs. core PCE | | Unemployment | U-3 vs. U-6, seasonal vs. non-seasonal | | GDP | Real vs. nominal, chain-weighted vs. fixed | | Yield curve | 2y10y vs. 3m10y inversion |

Pricing-engine treats this as ambiguity-class risk. A market with METRIC_DEFINITION > 12 is sized identically to one with high AMBIGUOUS_WORDING. Same exposure haircuts apply.

Failure Modes

1. Assuming "inflation" means CPI. It often does, but not always. The market might resolve on PCE if the resolver decides that's "the" inflation measure. Specify in the rules.

2. Ignoring first-print vs. revised. A market resolving on the May print of CPI: does the June revision change the resolution? Without explicit policy, the resolver decides.

3. Confusing month-over-month with year-over-year. Both are valid; both are used by different macro markets; they produce wildly different rates.

4. Skipping the source-agency cross-check. BLS and BEA can publish similar metrics with different methodology and different values. If both are valid for the metric, the market has source ambiguity.

5. Conflating headline and core. Headline includes food and energy; core excludes them. The two diverge during commodity cycles. Markets that say only "CPI" often need disambiguation.

Checklist

  • [ ] Pre-filter rules for METRIC_TERMS without SPECIFIERS
  • [ ] Surface the full sub-pattern list in your UI
  • [ ] Reject any market that doesn't name source agency and variant
  • [ ] Check release vs. revision policy explicitly
  • [ ] Cross-reference compound metrics against agency definitions
  • [ ] Persist resolved interpretations for similar future markets

Sources + Further Reading

  • SettleRisk methodology — METRIC_DEFINITION sub-pattern logic
  • BLS handbook — CPI methodology
  • BEA technical notes — PCE methodology
  • Ambiguous wording post — sibling driver
  • Statistical Discrepancies in National Accounts (BEA 2022)

Test metric definitions on real rules: /demo.

Get weekly risk analysis in your inbox

Market risk scores, emerging dispute patterns, and settlement delay trends — delivered every Monday.