> ## Documentation Index
> Fetch the complete documentation index at: https://docs.allium.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Geo-Measurability

> Why hosted and unhosted wallets differ, and what makes an address geographically attributable

Geo-measurability works in **two stages**. First, `master_list` marks whether an address is even *eligible* for attribution (`measurability`). Second, `addresses_geography` records which eligible addresses actually received a country, and with what conviction. This page explains both, and why hosted and unhosted wallets require different methods.

## Two-stage measurability

**Stage 1 — eligibility (`master_list.measurability`).** Almost every address is eligible:

| `measurability`          | Meaning                                      | Share   |
| ------------------------ | -------------------------------------------- | ------- |
| `potentially_measurable` | An organic wallet that *could* be attributed | \~99.9% |
| `not_measurable`         | Excluded infrastructure (see reasons below)  | \~0.06% |

Only a small set is hard-excluded, via `not_measurable_reason`:

| `not_measurable_reason` | What it flags                                       |
| ----------------------- | --------------------------------------------------- |
| `contract`              | Smart-contract addresses                            |
| `token`                 | Token / token-blacklist contracts                   |
| `infrastructure`        | Bridges, chain/system addresses, other infra        |
| `genesis`               | Genesis / burn addresses (`0x0…0`, `0x…dead`, etc.) |

**Stage 2 — attribution coverage (`addresses_geography`).** Being eligible does not guarantee a country. Only \~25% of addresses (\~20M of \~80M) end up with a row in `addresses_geography`. The remaining \~75% are eligible but lack sufficient signal — they are not "missing data," they simply have no confident attribution yet.

<Note>
  When you read "\~25% coverage," the denominator is all classified addresses, and the \~75% without a country are mostly unlabeled self-custody wallets whose counterparties/timing don't yield a confident signal — not the hard-excluded `not_measurable` set (which is tiny).
</Note>

## Hosted vs Unhosted Wallets: Why They're Different

`master_list.wallet_type` splits attributable wallets into **hosted** (custodial) and **unhosted** (self-custody) because they require completely different methods.

### Hosted Wallets (Custodial)

**Definition**: Addresses controlled by a centralized entity (exchange, custodian) that holds funds on behalf of users. In `master_list`, hosted wallets are exchange-labeled addresses.

**Why they're easier to measure**:

1. **Declared operating country** — exchanges disclose their headquarters / primary jurisdiction
2. **Regulatory footprint** — license requirements reveal operating countries
3. **Web traffic signals** — SimilarWeb shows where their users are located
4. **Single attribution** — one local/regional exchange wallet maps to one country

**Hosted subtypes** (`master_list.hosted_subtype`):

| Subtype             | Description                      | Geo attribution                                                      |
| ------------------- | -------------------------------- | -------------------------------------------------------------------- |
| `global_exchange`   | Major CEX serving many countries | No single country — distribution served by `exchange_gravity_weekly` |
| `local_exchange`    | Single-country CEX               | Direct country assignment from the registry                          |
| `regional_exchange` | Multi-country regional CEX       | Primary operating region                                             |

<Note>
  These are the only three hosted subtypes produced today. `hosted_geo_country` is populated for **local** exchanges; `hosted_geo_region` for local and regional exchanges. Global-exchange wallets carry no per-wallet country.
</Note>

### Unhosted Wallets (Self-Custody)

**Definition**: Addresses where the user holds their own keys — MetaMask, Ledger, smart-contract wallets, general EOAs. This is the bulk of the population (\~58M addresses).

**Why they're harder to measure**:

1. **No declared country** — users don't register with a jurisdiction
2. **Pseudonymous** — no KYC
3. **Indirect signals only** — geography must be inferred from counterparties, transaction timing, and wallet-relatedness clusters
4. **Multi-country usage** — one wallet may be used from several countries (VPN, travel)

**Attribution method (multi-stage inference)**:

1. **Direct labels** — a labeled wallet with a known country
2. **Flow-based propagation** — a wallet related to labeled wallets (via direct two-way transfers, shared funders, or shared CEX deposit wallets) inherits their country, weighted by relatedness
3. **Timezone inference** — hour-of-day activity distribution suggests a region (supporting signal; see `addresses_timezones`)

The `addresses_geography.reasoning` column records, in plain language, exactly which signals drove each attribution (e.g. *"Propagated from 20 related wallet(s) via shared funders within a 24-72h window."*).

## Conviction, not probability

Attribution quality is expressed as a **conviction level**, not a 0–1 probability. `addresses_geography.confidence` (and `addresses_timezones.conviction_level`) use a five-tier scale:

| Conviction             | Use it for                          |
| ---------------------- | ----------------------------------- |
| `Very High Conviction` | Compliance / KYC (strongest signal) |
| `High Conviction`      | Compliance and high-trust analysis  |
| `Moderate Conviction`  | Regional analysis                   |
| `Low Conviction`       | Exploration only                    |
| `Very Low Conviction`  | Exploration only; treat as weak     |

<Warning>
  `addresses_geography.score` is a **raw attribution strength** (higher = stronger; it is not bounded to 0–1). Filter on the `confidence` conviction tier rather than on a numeric `score` threshold.
</Warning>

## Why This Matters for Your Analysis

* **Understand the denominator.** \~75% of addresses lack a country because they lack a confident signal — not because the data is broken. Smart contracts, infra, and burn addresses are separately flagged `not_measurable` in `master_list`.
* **Choose the right conviction floor.** Compliance → `High`/`Very High Conviction`; regional sizing → `Moderate` and up; research → include all tiers but stratify.
* **Don't mix hosted and unhosted.** A country tied to a local exchange wallet is an *operating jurisdiction*; a country tied to an unhosted wallet is an *inferred user location*. They answer different questions.

## Next Steps

<CardGroup cols={2}>
  <Card title="Table Reference" icon="table" href="/historical-data/identity/geo/tables">
    Full column-level schema for every table
  </Card>

  <Card title="Geographic Intelligence" icon="earth-americas" href="/historical-data/identity/geo">
    Back to the geographic intelligence overview
  </Card>
</CardGroup>
