The canonical provider record, every field, every source.
Every public field on an OwnListed provider profile carries the same four-piece source-provenance contract: source name, last-checked ISO date, confidence tier, and display permission. This page documents the canonical record shape, the provenance shape, the change-record shape, and the source- registry shape — with three illustrative example records.
Free to cite with attribution. License inquiries: press@ownlisted.com. Pair with the dataset catalog at /data-platform.
Field · type · source family · refresh cadence · example.
Each field is anchored on a specific source family. Some fields are nullable because the source family does not always cover the row — e.g. only Florida HVAC providers carry a FL DBPR license number; only NPI-holding providers carry an NPPES taxonomy.
| field | type | source family | nullable | refresh | example |
|---|---|---|---|---|---|
| id | uuid | OwnListed graph | no | stable | 01h… |
| vertical_slug | string | OwnListed graph | no | stable | dermatologists |
| name | string | Source family per match | no | per source cadence | Smith Family Medicine |
| address_line | string | CMS NPPES / FL DBPR | yes | per source cadence | 123 Main St, Suite 4 |
| city | string | CMS NPPES / FL DBPR | yes | per source cadence | Tampa |
| state | string (2-letter) | CMS NPPES / FL DBPR | yes | per source cadence | FL |
| zip | string (5- or 9-digit) | CMS NPPES / FL DBPR | yes | per source cadence | 33602 |
| phone | string (E.164) | Per match — typically Google Business listing where present | yes | monthly | +1 813 555 0100 |
| website | string (URL) | Per match | yes | monthly | https://example-clinic.com |
| npi | string (10-digit) | CMS NPPES | yes | monthly | 1234567890 |
| primary_taxonomy | string (HIPAA taxonomy code) | CMS NPPES | yes | monthly | 207R00000X |
| pecos_enrollment | enum: "ENROLLED" | "NOT_ENROLLED" | "UNKNOWN" | CMS PECOS | yes | monthly | ENROLLED |
| state_license_number | string | FL DBPR / state board | yes | weekly (FL) | CGC1500001 |
| state_license_status | enum: "ACTIVE" | "NULL" | "VOLUNTARY_INACTIVE" | "EXPIRED" | FL DBPR / state board | yes | weekly (FL) | ACTIVE |
| state_license_expiration | ISO date | FL DBPR / state board | yes | weekly (FL) | 2026-08-31 |
| cms_certification_number | string (CCN) | CMS Care Compare | yes | quarterly | 100000 |
| google_rating | float (0–5) | Google Business listing where indexed | yes | monthly | 4.7 |
| google_review_count | int | Google Business listing where indexed | yes | monthly | 128 |
One per (provider, source, field) — the §95 contract.
The same four pieces of metadata stamped on every public field render visibly via the ProvenanceCard on every profile, the canonical Source:CMS NPPESChecked May 2026 chip on every cited field, and the per-source detail pages at /sources/[slug].
// Per-field provenance row — one row per (provider_id, source, field).
// This is the wire shape the §95 source-citation contract emits.
{
"provider_id": "01h7n…",
"source": "CMS NPPES", // matches the SOURCES registry slug
"field": "primary_taxonomy",
"value": "207N00000X",
"last_checked": "2026-04-30", // ISO date the pipeline last reconciled
"confidence": "high", // §95 tier: high | medium | low
"display_permission": "public · attribution required",
"evidence_url": null // optional: source-side detail page
}Versioned at the field level, not the row level.
We version the value, not the surrounding metadata. A renamed clinic gets a new name change record; a license expiration update gets a new state_license_expirationchange record. The change feed is what lets a downstream consumer audit when a provider field flipped — useful for agent freshness checks (§161) + B2B enrichment workflows (§153).
// Historical change record — emitted on every source-driven update.
// We version the value, not the surrounding metadata. A renamed clinic
// gets a new "name" change record; a license expiration update gets a
// new "state_license_expiration" change record. The change_id is
// monotonic per provider_id + field.
{
"change_id": "ch_01h7n…",
"provider_id": "01h7n…",
"field": "state_license_status",
"previous_value": "ACTIVE",
"new_value": "EXPIRED",
"source": "FL DBPR CILB",
"observed_at": "2026-05-04T08:12:00Z",
"snapshot_id": "fl-dbpr-2026-05-04",
"confidence": "high"
}One row per registered public-record source.
Every cited source sits in the registry with refresh cadence, fields used, limitations, and what-it-is-not. The public detail page lives at /sources; the index of all entries lives at /sources.
// Source registry row — one per registered public-record source.
// Mirrors src/lib/brand/sources-registry.ts. Public detail page lives
// at /sources/[slug].
{
"slug": "fl-dbpr",
"displayName": "Florida DBPR CILB master file",
"shortName": "FL DBPR",
"authority": "Florida Department of Business and Professional Regulation",
"tier": "tier2-profile-enrichment", // tier1-research-only | tier2-profile-enrichment | pending-manual | first-party-research
"status": "live", // live | research-only | pending-records-request | deferred
"family": "trades",
"officialUrl": "https://www.myfloridalicense.com/...",
"tosNotes": "Florida Sunshine Law: public record …",
"attributionRequirement": "Cite as 'FL DBPR CILB master file, [snapshot date]'.",
"refreshCadence": "weekly",
"fieldsUsed": ["state_license_number", "state_license_status", "state_license_expiration", "license_classification", "issue_date"],
"limitations": "License status reflects DBPR's last public publication; …",
"whatItIsNot": "DBPR data is not a quality stamp. …",
"displayPolicy": {
"publicFields": ["state_license_number", "state_license_status", "state_license_expiration"],
"writeLockedFields": ["complaint_history"]
}
}Three example shapes — none are real customers.
Each example carries an explicit "example": trueattribute so a downstream reader can never confuse an illustrative shape with a real provider record. The cross-vertical example also carries "synthesized": true.
Example 1 — healthcare provider (NPPES + PECOS)
// Example record — dermatology provider, NPPES + PECOS cross-referenced.
// "example": true marks this row as illustrative, not a real customer.
{
"example": true,
"id": "01h7n…provider…dermatology",
"vertical_slug": "dermatologists",
"name": "Sample Dermatology Group",
"address_line": "200 Gulf Blvd, Suite 410",
"city": "Tampa",
"state": "FL",
"zip": "33606",
"npi": "1234567890",
"primary_taxonomy": "207N00000X",
"primary_taxonomy_label": "Dermatology",
"pecos_enrollment": "ENROLLED",
"fields": {
"npi": {
"value": "1234567890",
"source": "CMS NPPES",
"last_checked": "2026-04-30",
"confidence": "high",
"display_permission": "public · attribution required"
},
"primary_taxonomy": {
"value": "207N00000X",
"source": "CMS NPPES",
"last_checked": "2026-04-30",
"confidence": "high",
"display_permission": "public · attribution required"
},
"pecos_enrollment": {
"value": "ENROLLED",
"source": "CMS PECOS",
"last_checked": "2026-04-30",
"confidence": "high",
"display_permission": "public · attribution required"
}
}
}Example 2 — Florida contractor (FL DBPR)
// Example record — Florida HVAC contractor, FL DBPR-anchored.
// "example": true marks this row as illustrative, not a real customer.
{
"example": true,
"id": "01h7n…provider…hvac-fl",
"vertical_slug": "hvac",
"name": "Sample HVAC Sample LLC",
"address_line": "500 Bay Shore Dr",
"city": "Sarasota",
"state": "FL",
"zip": "34236",
"state_license_number": "CAC1500001",
"state_license_status": "ACTIVE",
"state_license_expiration": "2026-08-31",
"fields": {
"state_license_number": {
"value": "CAC1500001",
"source": "FL DBPR CILB",
"last_checked": "2026-04-30",
"confidence": "high",
"display_permission": "public · attribution required"
},
"state_license_status": {
"value": "ACTIVE",
"source": "FL DBPR CILB",
"last_checked": "2026-04-30",
"confidence": "high",
"display_permission": "public · attribution required"
},
"state_license_expiration": {
"value": "2026-08-31",
"source": "FL DBPR CILB",
"last_checked": "2026-04-30",
"confidence": "high",
"display_permission": "public · attribution required"
}
}
}Example 3 — synthesized cross-vertical (CMS Care Compare)
// Example record — synthesized cross-vertical example (no real provider).
// Shows a profile carrying both a CMS Care Compare CCN AND a state license.
// "example": true and "synthesized": true mark this row clearly.
{
"example": true,
"synthesized": true,
"id": "01h7n…provider…cross",
"vertical_slug": "nursing-homes",
"name": "Sample Care Center (synthesized)",
"city": "Phoenix",
"state": "AZ",
"cms_certification_number": "030001",
"fields": {
"cms_certification_number": {
"value": "030001",
"source": "CMS Care Compare",
"last_checked": "2026-03-31",
"confidence": "high",
"display_permission": "public · attribution required"
},
"overall_star_rating": {
"value": "4",
"source": "CMS Care Compare",
"last_checked": "2026-03-31",
"confidence": "high",
"display_permission": "public · attribution required"
}
}
}Five honest limitations.
Restricted-source fields
The schema does not include fields sourced from restricted-distribution registries (state bars, NMLS Consumer Access, ABMS / CertiFacts). We cite these sources publicly when relevant but never republish their rows. See §125 RESTRICTED_SOURCES.
Quality-stamp scoring
There is no `is_verified`, `is_recommended`, or `quality_score` field. Source-cited is not the same as pre-vetted; the schema reflects that doctrine.
Patient or customer data
The schema is provider-level only. We do not collect, store, or expose patient records, claim records, or end-consumer behavioral data.
Real-time wire freshness
Refresh cadence is per source family — weekly for FL DBPR, monthly for CMS NPPES + Google ratings, quarterly for CMS Care Compare. The `last_checked` field always reflects the actual reconciliation date, not the snapshot date.
API access today
The schema describes the canonical record shape that flows through the OwnListed graph. A paid query API does not exist today; B2B access ships as static CSV/JSON downloads from /research/data/ + scoping via press@ownlisted.com.
- /data-platform → Dataset catalog, B2B export concepts, sample-export request CTA.
- /sources → The source library — every dataset OwnListed cites.
- /data-provenance → The provider graph + ProvenanceCard examples.
- /methodology → Sourcing methodology + corrections policy.
- /editorial-policy → Doctrine + claim ceiling.
- /llms.txt → Machine-readable doctrine for AI agents.