# Platform GeoIP: measured facts (plan 1, task 1)

Measured 2026-10-06 on DOCS-T1 against `dbip-city-lite-2026-10.mmdb`,
downloaded from `https://download.db-ip.com/free/dbip-city-lite-2026-10.mmdb.gz`
with `maxminddb-golang` v1.13.1.

| Fact | Value |
|---|---|
| `database_type` | `DBIP-City-Lite` |
| `build_epoch` | 2026-10-01 01:41:21 UTC |
| File size (uncompressed) | 126,998,165 bytes (121 MiB) |
| `node_count` / record size / IP version | 14,297,794 / 28 / 6 |
| `Verify()` | 5.4 s; peak anonymous RSS 47 MiB, file-backed RSS 124 MiB; 3.4 GiB allocated in total (GC churn, not resident) |
| Lookup (decode country, subdivisions, location) | ~1.4 µs each, single goroutine (1M random IPv4 lookups in 1.44 s) |
| Subdivision ISO codes | **absent**. `subdivisions[0]` carries names only (e.g. `"California"`, `"Leinster"`) |
| `location.accuracy_radius` | absent |

Country probe (spec §4.1 step 4):

| Address | Country | Subdivision name | Location |
|---|---|---|---|
| 8.8.8.8 | US | California | 37.42, -122.08 |
| 1.1.1.1 | AU | New South Wales | -33.87, 151.21 |
| 9.9.9.9 | US | California | 37.88, -122.27 |
| 208.67.222.222 | US | California | 37.41, -121.95 |
| 2001:4860:4860::8888 | CA | Quebec | 45.50, -73.57 |

All five resolve, so the "at least three of five" rule passes with margin.

GeoLite2 City was not measured: it needs a MaxMind account. The repo's
MaxMind test fixtures (`internal/geo/testdata/GeoIP2-City-Test.mmdb`) carry
subdivision ISO codes, which is the shape GeoLite2 City shares.

## The repo's test fixtures (`internal/geo/testdata`)

None of them contain the five production probe addresses, so publish-path
tests must override the probe list (a package variable). Addresses that do
resolve:

| Address | City-Test country / subdivision ISO / location | Country-Test | ipv4-24 |
|---|---|---|---|
| 81.2.69.142 | GB / ENG / 51.51, -0.09 | GB | no country |
| 216.160.83.56 | US / WA / 47.25, -122.31 | US | no country |
| 2.125.160.216 | GB / ENG / 51.75, -1.25 | GB | no country |
| 89.160.20.112 | SE / E / 58.42, 15.62 | SE | no country |
| 2001:218::1 | JP / (none) / 35.69, 139.75 | JP | IPv6 lookup error |
| 67.43.156.1 | BT / (none) / 27.50, 90.50 | BT | no country |

Types: `GeoIP2-City` (1,547 nodes), `GeoIP2-Country` (1,704 nodes), `Test`
(163 nodes, IPv4 only, no country data: the "refuse a database with no
country data" case). All three build_epoch 2026-02-04.

## Outstanding

- **GeoLite2 City has not been measured** (spec §17, Astra plan R1-22).
  - Downloading it needs a MaxMind account and licence key, which this
    session does not have.
  - Before the first GeoLite2 publish (or plan 2's feed), measure its size,
    `Verify` memory, subdivision ISO codes, and the five probe addresses.
    Record them here.
