# OfflistMe Public Research Data Dictionary & Methodology (2026)

**Publisher**: OfflistMe Privacy Intelligence Lab  
**License**: [Creative Commons Attribution 4.0 International (CC-BY 4.0)](https://creativecommons.org/licenses/by/4.0/)  
**Version**: 2026.8.21
**Methodology Standard**: [Data Broker Research Standard](https://www.offlist.me/data-broker-research-standard)

---

## Overview

This repository provides open-access, machine-readable datasets in **JSON** and **CSV** formats documenting data broker entities, corporate ownership networks, multi-state regulatory filings, and removal friction benchmarks across **1,018 cataloged data brokers**.

All datasets are versioned, sample-accurate, and independently reproducible.

---

## 1. Entity Research Ledger (`entity-research-ledger.json` / `entity-research-ledger.csv`)

### Scope
Covers the entire active OfflistMe catalog universe of 1,018 data broker entities.

### Schema Fields
| Field Name | Type | Description | Possible Values / Format |
| :--- | :--- | :--- | :--- |
| `domain` | `string` | Primary canonical web domain of the broker platform. | e.g. `spokeo.com`, `acxiom.com` |
| `name` | `string` | Common trade brand name. | e.g. `Spokeo`, `Acxiom` |
| `category` | `string` | Primary commercial broker taxonomy category. | `people-search`, `b2b-intelligence`, `marketing-audience`, `risk-fraud`, `location-data`, etc. |
| `priority` | `string` | Consumer exposure risk and audit tier. | `TIER_1` (High), `TIER_2` (Moderate), `TIER_3` (Catalog) |
| `catalogVerificationStatus` | `string` | Whether the catalog record passes the source, identity, route-state, and conflict checks required for inclusion as a verified catalog record. This does not assert that every field, deletion outcome, legal conclusion, or current route is verified. | `VERIFIED_CATALOG_RECORD`, `REVIEW_REQUIRED` |
| `researchStatus` | `string` | Bounded evidence-depth stage for the profile. `EVIDENCE_READY_PROFILE` means the minimum identity, route, source-count, and conflict gate passed; it does not mean field-complete or outcome-verified. | `EVIDENCE_READY_PROFILE`, `PARTIAL_PROFILE`, `REVIEW_REQUIRED` |
| `evidenceReadyRouteMode` | `string` / `null` | Route modality that satisfied the evidence-ready promotion gate. | `web_endpoint_observed`, `validated_email_route`, `documented_manual_form`, `null` |
| `evidenceReadyBlockers` | `string[]` | Machine-readable reasons a record is not yet evidence-ready. An empty array means the minimum promotion gate passed. | `UNRESOLVED_CONFLICT`, `MISSING_EXTERNAL_IDENTITY`, `MISSING_ROUTE_EVIDENCE`, `EMAIL_ROUTE_VALIDATION_REQUIRED`, `WEB_ROUTE_OBSERVATION_REQUIRED`, `MANUAL_FORM_EVIDENCE_REQUIRED`, `ROUTE_MODALITY_REVIEW_REQUIRED`, `INSUFFICIENT_SOURCE_COUNT` |
| `overallCompletenessScore` | `number` | 9-dimension composite evidence saturation score. | Float between `0.0` and `100.0` |
| `identityVerified` | `boolean` / `YES/NO` | Whether legal entity identity and jurisdiction are proven. | `YES` / `NO` |
| `routesEvidenced` | `boolean` / `YES/NO` | Whether removal routes (email/webform/portal) are evidenced. | `YES` / `NO` |
| `governanceKnown` | `boolean` / `YES/NO` | Whether privacy officer contact and governance are documented. | `YES` / `NO` |
| `registryCrosswalked` | `boolean` / `YES/NO` | Whether entity is crosswalked across official state registries. | `YES` / `NO` |
| `unknownFieldsCount` | `number` | Count of unverified attributes explicitly tracked as UNKNOWN. | Integer ($\ge 0$) |
| `primarySourcesCount` | `number` | Count of linked statutory, regulatory, or first-party citations. | Integer ($\ge 0$) |
| `lastVerified` | `string` | ISO 8601 timestamp of last independent review. | e.g. `2026-08-20` |

### UNKNOWN Handling
Attributes without primary source verification are explicitly assigned the `UNKNOWN` token or included in the `unknownFields` array rather than default fallback assumptions.

## 1A. Broker Promotion Readiness (`broker-promotion-readiness.json` / `broker-promotion-readiness.csv` / `broker-promotion-readiness.md`)

### Scope
This read-only handoff manifest joins the entity research ledger to the current `data/platforms.json` catalog. It answers a narrow operational question: did the captured record pass the minimum evidence gate needed to enter an explicitly approved catalog-promotion decision? It does not certify every profile field, legal conclusion, request delivery, response, deletion, monitoring, or non-republication.

### Gate Rules
The gate requires a verified catalog identity and route state, source-backed identity evidence, one of the allowed evidence-ready route modes, at least two source records, and no unresolved evidence conflict. A passing gate still requires explicit human approval; the generator never writes to `data/platforms.json`.

### Schema Fields
| Field Name | Type | Description | Possible Values / Format |
| :--- | :--- | :--- | :--- |
| `domain` | `string` | Canonical broker domain joined to the entity ledger and catalog. | Lowercase domain |
| `catalogState` | `string` | Whether a matching record is already present in the customer catalog snapshot. | `present`, `not_present` |
| `promotionGate` | `string` | Result of the bounded evidence gate. | `PASS_AFTER_VERIFICATION`, `BLOCKED` |
| `promotionApprovalRequired` | `boolean` | Prevents a passing evidence gate from being treated as automatic write authorization. | Always `true` |
| `promotionState` | `string` | Human-review handoff state. | `CATALOG_PRESENT_VERIFIED`, `ELIGIBLE_AFTER_EXPLICIT_APPROVAL`, `BLOCKED_PENDING_EVIDENCE` |
| `fieldReviewState` | `string` | Separates the bounded promotion gate from open enrichment-field review. | `FIELD_REVIEW_COMPLETE`, `OPEN_FIELD_REVIEW` |
| `completenessScore` | `number` / `null` | Current 9-dimension evidence saturation score from the entity ledger; not a quality or removal-outcome score. | Float between `0.0` and `100.0` |
| `unknownFields` | `string[]` | Named fields that remain unverified or incomplete and must not be filled by inference. | Explicit field names |
| `promotionBlockers` | `string[]` | Evidence conditions that must be resolved before a blocked record can enter review. | Machine-readable blocker codes |
| `lastVerified` | `string` / `null` | Latest recorded source or route verification date. | ISO date or `null` |

The August 20, 2026 snapshot contains 1,018 records, all 1,018 passing the bounded evidence gate and already present in the catalog, with explicit approval still required for any future write. The same snapshot has 1,018 open field reviews and zero complete field reviews. The aggregate is a catalog-present gate-pass count, not a claim that all tracked attributes are verified or complete, or that any request outcome occurred.

## 1B. Broker Research Queue Summary (`broker-research-queue-summary.json` / `broker-research-queue-summary.csv`)

### Scope
This compact, read-only summary represents all 1,018 catalog records and reports the dated field-level evidence worklist generated from the broker coverage index. The full task queue remains a local derived artifact so that research tasks are not mistaken for ready-to-publish pages.

### August 21, 2026 snapshot
The summary contains 173,901 open field tasks across all 1,018 records: 151,564 are `not_recorded`, 66 are `unknown_needs_resolution`, 601 are `stale`, and 21,670 are known values that lack a recorded observation date. The task count measures research work, not missing data in the world, removal failure, legal obligation, request delivery, response, deletion, or non-republication.

### Boundary rules
Fields marked `user_authorized` require an explicit, minimized, and preferably redacted user record. Route reachability cannot fill outcome fields. The compact summary exposes per-record counts and aggregate dimensions; the full local queue contains the detailed prompts and recommended evidence actions.

---

## 2. Corporate Ownership Graph (`broker-ownership-graph.json` / `broker-ownership-graph.csv`)

### Scope
Maps 24 corporate holding conglomerates, parent networks, and private equity firms controlling over 50 consumer and B2B broker brands.

### Schema Fields
| Field Name | Type | Description |
| :--- | :--- | :--- |
| `parentConglomerate` | `string` | Legal corporate parent holding company or investment group. |
| `headquarters` | `string` | Principal executive corporate headquarters location. |
| `ticker` | `string` | Public stock ticker symbol (if publicly traded). |
| `secCik` | `string` | SEC EDGAR Central Index Key identifier. |
| `hasSecFilings` | `boolean` | Whether corporate parent files 10-K, 10-Q, or 20-F with the SEC. |
| `totalCatalogEntities` | `number` | Number of distinct consumer/B2B brands operated under this parent. |
| `brandDomains` | `string[]` | Semicolon-delimited list of subsidiary brand domains. |
| `categories` | `string[]` | Commercial sectors spanning the conglomerate portfolio. |
| `edgarUrl` | `string` | Direct SEC EDGAR search archive URL for the parent CIK. |

---

## 3. Multi-State Registry Crosswalk (`broker-registry-crosswalk.json` / `broker-registry-crosswalk.csv`)

### Scope
Comparative crosswalk linking 1,018 catalog brokers to official state regulatory registries (California CPPA Delete Act, Vermont Secretary of State) and SEC EDGAR.

### Schema Fields
| Field Name | Type | Description |
| :--- | :--- | :--- |
| `domain` | `string` | Broker canonical domain. |
| `name` | `string` | Brand name. |
| `legalName` | `string` | Official corporate entity name listed on legal filings. |
| `category` | `string` | Primary business category. |
| `parentCompany` | `string` | Identified parent company or corporate controller. |
| `caDeleteActStatus` | `string` | California CPPA registration status (`REGISTERED`, `UNKNOWN_UNREGISTERED`). |
| `caRegistrationYear` | `string` | Most recent registration year in the California registry. |
| `vtRegistryStatus` | `string` | Vermont SOS registration status (`REGISTERED`, `UNKNOWN_UNREGISTERED`). |
| `secEdgarCik` | `string` | Associated SEC EDGAR CIK number. |
| `isMultiRegistry` | `boolean` | Entity actively registered across $\ge 2$ state registries. |

### Regulatory Interpretation Guidance
Absence from a state registry is strictly classified as `UNKNOWN_UNREGISTERED`. Absence does not automatically constitute non-compliance, as statutory thresholds and sector exemptions (e.g. FCRA, GLBA, HIPAA) vary significantly across jurisdictions.

---

## 4. Removal Friction Benchmark (`removal-friction-benchmark.json` / `removal-friction-benchmark.csv`)

### Scope
Empirical distribution of submission channels, identity barrier requirements, and process difficulty scores.

### Empirical Metrics
1. **Documented email workflow support**: 93.5% (952 of 1,018 records in the current captured snapshot).
2. **Documented web-form or portal support**: 75.1% (765 of 1,018 records).
3. **Documented phone support**: 0.1% (1 of 1,018 records).
4. **Documented postal-mail support**: 94.7% (964 of 1,018 records).
5. **Documented identity-requirement flag**: 53.5% (545 of 1,018 records). This is a workflow-observation field, not a legal requirement or a guarantee that a provider will request identity in every case.

These are source-backed observations from the generated benchmark snapshot. Unknown, not-recorded, stale, and conditional values remain separate; the percentages are not removal-success rates, response-time guarantees, or universal broker behavior.

---

---

## 5. Jurisdiction Research Ledger (`jurisdiction-research-ledger.json` / `jurisdiction-research-ledger.csv` / `law-source-review.json`)

### Scope
The ledger uses a declared planning universe of 195 generally recognized independent states: 193 United Nations Member States plus the Holy See and the State of Palestine. The scope is bounded by the [United Nations Member States list](https://www.un.org/en/library/unms), the [United Nations non-member observer states page](https://www.un.org/en/about-us/non-member-states), and the [UN M49 country-or-area standard](https://unstats.un.org/unsd/methodology/m49/). M49 is a statistical standard and is not, by itself, a political-status determination.

The universe is not a claim that every jurisdiction has an OfflistMe guide, that every law has been reviewed, or that every local broker route is known. Unknown and undiscovered jurisdictions remain in the ledger instead of being turned into thin indexable pages.

### Status Fields
| Field Name | Type | Description | Possible Values / Format |
| :--- | :--- | :--- | :--- |
| `isoAlpha3` | `string` | Stable ISO alpha-3 identifier used to join records. | Three uppercase letters |
| `scopeStatus` | `string` | Relationship to the declared 195-state planning universe. | `member`, `observer` |
| `researchStatus` | `string` | Current mapped content state. | `discovered`, `published_pending_reverification`, `law_explainer_pending_reverification` |
| `sourceReviewState` | `string` | Whether current legal and route claims have passed a fresh official-source review. | `not_started`, `partial_official_review`, `needs_reverification` |
| `promotionReady` | `boolean` | Whether the jurisdiction is cleared for future evidence-gated promotion. | Always `false` until the explicit legal-source gate passes |
| `promotionBlockers` | `string[]` | Reasons a jurisdiction cannot yet be promoted. | `NO_PUBLISHED_JURISDICTION_RESEARCH`, `LEGAL_CLAIMS_NEED_CURRENT_OFFICIAL_SOURCE_REVIEW`, `BROKER_ROUTE_SCOPE_NEEDS_JURISDICTION_REVIEW` |
| `unknownFields` | `string[]` | Important legal, route, or source fields that remain unverified. | Explicit field names; never inferred as complete |
| `officialSourceUrls` | `string[]` | First-party or government source links currently attached to the mapped guide or law explainer. | HTTPS URLs |
| `officialSourceReview` | `object[]` | Field-level bounded review notes for mapped law explainers, including reviewed fields, open fields, and methodology notes. | Partial review records only until a complete legal audit passes |
| `lastReviewed` | `string` / `null` | Latest recorded review date among mapped international law explainers. | ISO date or `null` |
| `indexability` | `string` | Whether an existing mapped page exists; this does not certify its claims. | `existing_indexable_country_guide`, `existing_indexable_law_explainer`, `not_created` |

### Promotion Boundary
`published_pending_reverification` means content exists, not that every legal statement, regulator route, broker route, deadline, penalty, or outcome is current. `partial_official_review` means selected fields were checked against official sources, while material claims remain open. The companion `law-source-review.json` exposes those reviewed fields, sources, open fields, and notes. A jurisdiction can move to a promotion-ready state only after current official legal text, regulator guidance, freshness, conflicts, and route-specific evidence are reviewed and recorded. A page must not be generated merely because a jurisdiction is present in the 195-state universe.

The companion `jurisdiction-research-queue.json` and CSV contain the 172 discovered-only rows. Each queue record has an editorial sequence, required evidence checklist, source-discovery queries, explicit promotion blockers, and `indexability: not_created`. The `jurisdiction-source-inventory.json` companion currently records 36 discovery-only jurisdiction rows with 112 official-source locations for the next review tranches; source discovery is not legal verification. The P1/P2/P3 sequence is a transparent work order, not a search-demand, population, legal-risk, or market-ranking claim.

## Suggested Citation

```bibtex
@dataset{offlistme_privacy_intelligence_2026,
  author = {OfflistMe Privacy Intelligence Lab},
  title = {Data Broker Industry Intelligence, Ownership Graph, and Removal Friction Benchmark},
  year = {2026},
  publisher = {OfflistMe},
  url = {https://www.offlist.me/privacy-research},
  note = {Version 2026.8.20, CC-BY 4.0}
}
```
