Data Dictionary

rosterproof · published surface (PUBLISHED_V1)

Every column a customer can see, in plain English.

All timestamps in this feed are UTC, stored as TIMESTAMP_NTZ (no timezone suffix — read them as UTC). All dates are calendar dates as published by the source.

EXCLUSION_CURRENT — one row per currently-listed exclusion record per source

ColumnTypeMeaning
EXCLUSION_KEYVARCHAR(64)Stable record identity: SHA-256 over source + identity fields (name, DOB, state) + exclusion date. Stable across runs. Known caveat: if a source corrects a typo in an identity field, the key changes, so the correction appears in the change feed as REMOVED (old key) + ADDED (new key) rather than CHANGED. Join key for history and matches.
SOURCE_IDVARCHAR(20)Which list: LEIE (federal), TX, CA, NY, OH, GA, NC, AZ, WA, NJ, MD, MN, MO, TN, PA. Only publishable sources appear on this surface; sources whose terms of use block redistribution (currently Michigan) are held back until permission or public-records sourcing clears them.
ENTITY_TYPEVARCHAR(20)INDIVIDUAL or ENTITY (organization).
LAST_NAME / FIRST_NAME / MIDDLE_NAMEVARCHARPerson name as published by the source (casing preserved; LEIE is all-caps, Texas mixed-case). Null for organizations.
BUSINESS_NAMEVARCHAR(500)Organization name as published. Null for individuals.
DOBDATEDate of birth when the source publishes it (LEIE and Ohio; other sources do not).
NPI_SOURCEVARCHAR(10)NPI as published by the source — often missing. See EXCLUSIONS_SCREENABLE for validated NPIs.
LICENSE_NUMBERVARCHAR(100)Professional license number where published (TX, CA, NY, PA, MD, MO; LEIE does not publish one).
SPECIALTYVARCHAR(200)Specialty/occupation as published.
ADDRESS / CITY / STATE / ZIPVARCHARLocation as published (LEIE full address; Texas state only). STATE is a 2-letter code; unknown states are NULL.
EXCLUSION_TYPEVARCHAR(100)The source's own code or status (e.g. LEIE 1128b4, PA Precluded). Null when the source publishes none.
EXCLUSION_TYPE_DESCVARCHAR(500)Plain-English description of the code; 'Not specified by source' when none is published. Never null.
EXCLUSION_DATEDATEWhen the exclusion took effect. Occasionally a few days in the future (OIG forward-dates scheduled exclusions).
REINSTATEMENT_DATEDATEReinstatement date when published. LEIE removes reinstated records from its file, so this is populated only for sources that print end dates (Texas, Pennsylvania, and NJ/AZ scheduled ends).
EXCLUSION_AUTHORITYVARCHAR(200)Statute / program cited (e.g. 42 USC 1320a-7).
FIRST_SEEN_ATTIMESTAMP_NTZ (UTC)When this pipeline first observed the record. Stable across refreshes.
LAST_SEEN_ATTIMESTAMP_NTZ (UTC)Most recent refresh that confirmed the record.
RAW_RECORD_HASHVARCHAR(64)Content hash used for change detection.

EXCLUSION_HISTORY — every version of every record, forever (SCD2)

ColumnTypeMeaning
EXCLUSION_KEYVARCHAR(64)Joins to EXCLUSION_CURRENT.
VERSION_NUMNUMBER1, 2, 3… per key.
CHANGE_TYPEVARCHAR(20)ADDED / CHANGED / REMOVED / REINSTATED.
VALID_FROM / VALID_TOTIMESTAMP_NTZ (UTC)Version validity window; VALID_TO null = still current.
IS_CURRENTBOOLEANConvenience flag for the open version.
RECORDVARIANTFull JSON snapshot of the record at this version.

CHANGE_FEED — append-only delta stream (poll WHERE OBSERVED_AT > :last_run)

ColumnTypeMeaning
CHANGE_IDNUMBERMonotonic id.
OBSERVED_ATTIMESTAMP_NTZ (UTC)When the pipeline observed the change.
SOURCE_ID / EXCLUSION_KEY / CHANGE_TYPEAs above.
SUMMARYVARCHAR(1000)Human-readable one-liner.
RECORDVARIANTRecord snapshot (or removal note).

SOURCE_REGISTRY — one row per covered source list

ColumnTypeMeaning
SOURCE_ID / SOURCE_NAME / JURISDICTIONIdentity of the list (FEDERAL or state code).
PUBLISHER / SOURCE_URL / SOURCE_FORMAT / UPDATE_CADENCEWhere the data comes from and how often it updates. EMAIL_REQUEST = the source delivers the file by email on request rather than publishing a fetchable URL (e.g. NJ OSC); refreshed each time a new file arrives.
LAST_CHECKED_AT / LAST_CHANGED_ATTIMESTAMP_NTZ (UTC)Last fetch vs last time content actually changed.
ACTIVE_RECORD_COUNTNUMBERRows currently in EXCLUSION_CURRENT for this source.

EXCLUSIONS_SCREENABLE — the "join your roster against this" view (ALL records, active and ended)

Contains every exclusion record we have ever observed — currently-active ones and ended ones (reinstated or no-longer-published) — so historical claim dates can be validated against past exclusion windows. Filter IS_ACTIVE = TRUE for present-day screening.

ColumnTypeMeaning
EXCLUSION_KEY / SOURCE_ID / JURISDICTIONAs above.
ENTITY_TYPEVARCHARINDIVIDUAL or ORGANIZATION.
LAST_NAME / FIRST_NAMEVARCHARPerson name components as published (null for organizations). Compose display names as you prefer.
BUSINESS_NAMEVARCHAROrganization name as published (null for individuals).
STATEVARCHAR2-letter code as published; NULL when unknown.
EXCLUSION_REASONVARCHAR(500)Plain-English reason for the exclusion; 'Not specified by source' when none published.
EXCLUSION_STARTDATEStart of the exclusion window (the source's exclusion date). Earliest genuine dates reach back to 1957: state master lists retain decades-old records. The 11 pre-1970 records (PA 1957–1968, TX 1959) were individually reviewed 2026-07-14 — distinct scattered dates, era-consistent statuses, some with administrative closures decades later — and confirmed as published by the sources, not data artifacts.
EXCLUSION_ENDDATEEnd of the window; NULL while open-ended. May be in the future — some sources (AZ) publish fixed-term exclusions with scheduled end dates.
EXCLUSION_END_BASISVARCHARHow we know it ended: PUBLISHED_BY_SOURCE = the source printed a reinstatement date; REMOVED_BY_SOURCE = the source silently dropped the record — the end date is when our pipeline observed the removal (UTC), not an official reinstatement date. NULL while active.
IS_ACTIVEBOOLEANTRUE while the exclusion is in force: still published AND not past any published end date (a future scheduled end is still active).
NPIVARCHAR(10)Best available NPI: NPPES-validated match first, else the source-published NPI.
NPI_ORIGINVARCHARVERIFIED_WITH_NPPES (validated against the national registry) or UNVERIFIED_SOURCE_CLAIM (the source printed an NPI that NPPES could not confirm). Null when no NPI.
NPI_STATUSVARCHARStatus of the NPI in the national registry, not of the exclusion: ACTIVE_IN_NPPES (live credential), DEACTIVATED_IN_NPPES (real NPI, since deactivated — common for excluded providers), NOT_FOUND_IN_NPPES.
MATCH_CONFIDENCEVARCHARHIGH = deterministic (source NPI or exact identity), MEDIUM = strong corroborated match (e.g. license+state), LOW = needs review.
MATCH_BASISVARCHARPlain-English statement of HOW the NPI was matched: 'NPI published by source, verified', 'Unique name match in national registry', or 'State license number match'. Null when no match.
MATCH_SCOREFLOAT0.0–1.0 numeric score behind the label.
NEEDS_HUMAN_REVIEWBOOLEANTRUE = do not auto-act on this record; have a person verify. Causes: deactivated NPI, unvalidated source-published NPI. TRUE does not mean the data is unverified — it means the correct response requires human judgment (a verified-but-deactivated NPI calls for a historical claims sweep, not an automated block).
EXCLUDED_IN_MULTIPLE_JURISDICTIONSBOOLEANTRUE when this record's NPI-confirmed identity is excluded by 2+ sources (see ENTITY_OVERLAP). Limitation: FALSE can also mean "no NPI resolved to check against".

Filter guidance: screen against IS_ACTIVE = TRUE AND MATCH_CONFIDENCE = 'HIGH' for automated blocking; route NEEDS_HUMAN_REVIEW = TRUE rows to a human queue. Join-casing note: name fields are published exactly as each source rendered them (LEIE all-caps, Texas mixed-case, …); normalize case on both sides before name-based joins.

ENTITY_OVERLAP — providers excluded in multiple jurisdictions

One row per NPI that appears in 2 or more sources. Limitation (by design): NPI-confirmed matches only — records that could not be resolved to an NPI cannot be overlapped, so these counts are a floor, not a census.

ColumnTypeMeaning
NPIVARCHAR(10)The provider's NPI.
LAST_NAME / FIRST_NAMEVARCHARPerson name components (representative across sources; null for organizations).
BUSINESS_NAMEVARCHAROrganization name (null for individuals).
SOURCE_IDSARRAYWhich sources list this NPI (e.g. ["CA","LEIE","TX"]).
JURISDICTION_COUNTNUMBERHow many sources list this NPI (2 up to 5 today).
EARLIEST_EXCLUSION_STARTDATEEarliest exclusion window start across sources.
ACTIVE_ANYWHEREBOOLEANTRUE if at least one source lists the exclusion as currently in force.
NPI_STATUSVARCHARACTIVE_IN_NPPES or DEACTIVATED_IN_NPPES — the registry status of the credential itself.

FEED_INFO — freshness/trust (check this first)

ColumnTypeMeaning
FEED_VERSIONVARCHARFeed schema version (1.0).
FEED_REFRESHED_AT_UTCTIMESTAMP_NTZ (UTC)Last successful pipeline run, whole feed.
SOURCE_ID / SOURCE_NAME / JURISDICTIONOne row per source.
SOURCE_LAST_CHECKED_AT_UTC / SOURCE_LAST_CHANGED_AT_UTCTIMESTAMP_NTZ (UTC)Per-source fetch vs content-change times.
ACTIVE_RECORD_COUNTNUMBERPer-source current row count.
NPPES_SNAPSHOT_DATEDATENPPES monthly file used for NPI matching.

Which object answers which question