# Methodology: Chiropractic taxonomy codes: NPI counts by code and state

Every figure on the page is an aggregate. No location-level row, address or phone number is published. Each block below gives the source, the exact query, the row counts and the minimum group size applied.

### Methodology: NPIs per chiropractic taxonomy code (any slot)

- **Asset:** NPPES September 2026 file, one de-identified row per active NPI and taxonomy code listed (sqlite, first-party data); owner Provyx.
- **Collection method:** Each active NPI (individual or organization) contributes one row per distinct taxonomy code in its 15 taxonomy slots. Counts are Provyx aggregations of the public file; taxonomy codes are self-reported by providers.
- **As of:** 2026-09-13; cadence monthly; contribution type first-party data.
- **Rows:** 11498105 input; 109426 after filters and de-duplication.
- **Threshold:** a group is published only when it covers at least 10 source rows; 12 of 12 groups meet it.
- **Query engine:** SQLite, read-only

```sql
WITH filtered AS (
  SELECT "taxonomy_code"
  FROM "npi_taxonomy"
  WHERE "entity" = ?
    AND "classification" = ?
),
rows AS (
  SELECT *,
    CASE "taxonomy_code" WHEN ? THEN ? WHEN ? THEN ? WHEN ? THEN ? WHEN ? THEN ? WHEN ? THEN ? WHEN ? THEN ? WHEN ? THEN ? WHEN ? THEN ? WHEN ? THEN ? WHEN ? THEN ? WHEN ? THEN ? WHEN ? THEN ? ELSE ? END AS "code_label"
  FROM filtered
)
SELECT "taxonomy_code", "code_label", COUNT(*) AS "listed", COUNT(*) AS "_n_rows"
FROM rows
GROUP BY "taxonomy_code", "code_label"
HAVING COUNT(*) >= ?
```
Parameters: `["individual", "Chiropractor", "111N00000X", "Chiropractor, general", "111NI0013X", "Independent Medical Examiner", "111NI0900X", "Internist", "111NN0400X", "Neurology", "111NN1001X", "Nutrition", "111NP0017X", "Pediatric Chiropractor", "111NR0200X", "Radiology", "111NR0400X", "Rehabilitation", "111NS0005X", "Sports Physician", "111NT0100X", "Thermography", "111NX0100X", "Occupational Health", "111NX0800X", "Orthopedic", "other chiropractic code", 10]`

### Methodology: NPIs per chiropractic taxonomy code (primary)

- **Asset:** NPPES September 2026 file, one de-identified row per active NPI and taxonomy code listed (sqlite, first-party data); owner Provyx.
- **Collection method:** Each active NPI (individual or organization) contributes one row per distinct taxonomy code in its 15 taxonomy slots. Counts are Provyx aggregations of the public file; taxonomy codes are self-reported by providers.
- **As of:** 2026-09-13; cadence monthly; contribution type first-party data.
- **Rows:** 11498105 input; 104345 after filters and de-duplication.
- **Threshold:** a group is published only when it covers at least 10 source rows; 12 of 12 groups meet it.
- **Query engine:** SQLite, read-only

```sql
WITH filtered AS (
  SELECT "taxonomy_code"
  FROM "npi_taxonomy"
  WHERE "entity" = ?
    AND "classification" = ?
    AND "is_primary" = ?
),
rows AS (
  SELECT *,
    CASE "taxonomy_code" WHEN ? THEN ? WHEN ? THEN ? WHEN ? THEN ? WHEN ? THEN ? WHEN ? THEN ? WHEN ? THEN ? WHEN ? THEN ? WHEN ? THEN ? WHEN ? THEN ? WHEN ? THEN ? WHEN ? THEN ? WHEN ? THEN ? ELSE ? END AS "code_label"
  FROM filtered
)
SELECT "taxonomy_code", "code_label", COUNT(*) AS "primary", COUNT(*) AS "_n_rows"
FROM rows
GROUP BY "taxonomy_code", "code_label"
HAVING COUNT(*) >= ?
```
Parameters: `["individual", "Chiropractor", "1", "111N00000X", "Chiropractor, general", "111NI0013X", "Independent Medical Examiner", "111NI0900X", "Internist", "111NN0400X", "Neurology", "111NN1001X", "Nutrition", "111NP0017X", "Pediatric Chiropractor", "111NR0200X", "Radiology", "111NR0400X", "Rehabilitation", "111NS0005X", "Sports Physician", "111NT0100X", "Thermography", "111NX0100X", "Occupational Health", "111NX0800X", "Orthopedic", "other chiropractic code", 10]`

### Methodology: NPIs listing a chiropractic code but not as primary

- **Asset:** NPPES September 2026 file, one de-identified row per active NPI and taxonomy code listed (sqlite, first-party data); owner Provyx.
- **Collection method:** Each active NPI (individual or organization) contributes one row per distinct taxonomy code in its 15 taxonomy slots. Counts are Provyx aggregations of the public file; taxonomy codes are self-reported by providers.
- **As of:** 2026-09-13; cadence monthly; contribution type first-party data.
- **Rows:** 11498105 input; 5081 after filters and de-duplication.
- **Threshold:** a group is published only when it covers at least 10 source rows; 12 of 12 groups meet it.
- **Query engine:** SQLite, read-only

```sql
WITH filtered AS (
  SELECT "taxonomy_code"
  FROM "npi_taxonomy"
  WHERE "entity" = ?
    AND "classification" = ?
    AND "is_primary" = ?
),
rows AS (
  SELECT *,
    CASE "taxonomy_code" WHEN ? THEN ? WHEN ? THEN ? WHEN ? THEN ? WHEN ? THEN ? WHEN ? THEN ? WHEN ? THEN ? WHEN ? THEN ? WHEN ? THEN ? WHEN ? THEN ? WHEN ? THEN ? WHEN ? THEN ? WHEN ? THEN ? ELSE ? END AS "code_label"
  FROM filtered
)
SELECT "taxonomy_code", "code_label", COUNT(*) AS "secondary", COUNT(*) AS "_n_rows"
FROM rows
GROUP BY "taxonomy_code", "code_label"
HAVING COUNT(*) >= ?
```
Parameters: `["individual", "Chiropractor", "0", "111N00000X", "Chiropractor, general", "111NI0013X", "Independent Medical Examiner", "111NI0900X", "Internist", "111NN0400X", "Neurology", "111NN1001X", "Nutrition", "111NP0017X", "Pediatric Chiropractor", "111NR0200X", "Radiology", "111NR0400X", "Rehabilitation", "111NS0005X", "Sports Physician", "111NT0100X", "Thermography", "111NX0100X", "Occupational Health", "111NX0800X", "Orthopedic", "other chiropractic code", 10]`

### Methodology: Total chiropractic-primary individual NPIs

- **Asset:** NPPES September 2026 file, one de-identified row per active NPI and taxonomy code listed (sqlite, first-party data); owner Provyx.
- **Collection method:** Each active NPI (individual or organization) contributes one row per distinct taxonomy code in its 15 taxonomy slots. Counts are Provyx aggregations of the public file; taxonomy codes are self-reported by providers.
- **As of:** 2026-09-13; cadence monthly; contribution type first-party data.
- **Rows:** 11498105 input; 104345 after filters and de-duplication.
- **Threshold:** a group is published only when it covers at least 10 source rows; 1 of 1 groups meet it.
- **Query engine:** SQLite, read-only

```sql
WITH filtered AS (
  SELECT "classification"
  FROM "npi_taxonomy"
  WHERE "entity" = ?
    AND "classification" = ?
    AND "is_primary" = ?
),
rows AS (
  SELECT *
  FROM filtered
)
SELECT "classification", COUNT(*) AS "chiropractors", COUNT(*) AS "_n_rows"
FROM rows
GROUP BY "classification"
HAVING COUNT(*) >= ?
```
Parameters: `["individual", "Chiropractor", "1", 10]`

### Methodology: Chiropractors per practice state

- **Asset:** NPPES September 2026 file, one de-identified row per active NPI and taxonomy code listed (sqlite, first-party data); owner Provyx.
- **Collection method:** Each active NPI (individual or organization) contributes one row per distinct taxonomy code in its 15 taxonomy slots. Counts are Provyx aggregations of the public file; taxonomy codes are self-reported by providers.
- **As of:** 2026-09-13; cadence monthly; contribution type first-party data.
- **Rows:** 11498105 input; 104345 after filters and de-duplication.
- **Threshold:** a group is published only when it covers at least 10 source rows; 55 of 59 groups meet it (4 below the threshold); the largest 15 are listed.
- **Query engine:** SQLite, read-only

```sql
WITH filtered AS (
  SELECT "practice_state"
  FROM "npi_taxonomy"
  WHERE "entity" = ?
    AND "classification" = ?
    AND "is_primary" = ?
),
rows AS (
  SELECT *
  FROM filtered
)
SELECT "practice_state", COUNT(*) AS "chiropractors", COUNT(*) AS "_n_rows"
FROM rows
GROUP BY "practice_state"
HAVING COUNT(*) >= ?
```
Parameters: `["individual", "Chiropractor", "1", 10]`

### Methodology: Chiropractic organization NPIs

- **Asset:** NPPES September 2026 file, one de-identified row per active NPI and taxonomy code listed (sqlite, first-party data); owner Provyx.
- **Collection method:** Each active NPI (individual or organization) contributes one row per distinct taxonomy code in its 15 taxonomy slots. Counts are Provyx aggregations of the public file; taxonomy codes are self-reported by providers.
- **As of:** 2026-09-13; cadence monthly; contribution type first-party data.
- **Rows:** 11498105 input; 62127 after filters and de-duplication.
- **Threshold:** a group is published only when it covers at least 10 source rows; 1 of 1 groups meet it.
- **Query engine:** SQLite, read-only

```sql
WITH filtered AS (
  SELECT "entity"
  FROM "npi_taxonomy"
  WHERE "entity" = ?
    AND "classification" = ?
    AND "is_primary" = ?
),
rows AS (
  SELECT *
  FROM filtered
)
SELECT "entity", COUNT(*) AS "organizations", COUNT(*) AS "_n_rows"
FROM rows
GROUP BY "entity"
HAVING COUNT(*) >= ?
```
Parameters: `["organization", "Chiropractor", "1", 10]`

### Methodology: NUCC chiropractic codes

- **Asset:** NUCC Health Care Provider Taxonomy code set 26.1, Chiropractor classification (12 codes) (csv, public source); owner NUCC (National Uniform Claim Committee).
- **Collection method:** NUCC code set 26.1 rows whose code starts with 111N (classification Chiropractor).
- **As of:** 2026-10-02; cadence semiannual; contribution type published dataset.
- **Rows:** 12 input; 12 after filters and de-duplication.
- **Threshold:** a group is published only when it covers at least 1 source row; 1 of 1 groups meet it.
- **Query engine:** SQLite over the CSV file

```sql
WITH filtered AS (
  SELECT "classification"
  FROM "asset"
),
rows AS (
  SELECT *
  FROM filtered
)
SELECT "classification", COUNT(*) AS "codes", COUNT(*) AS "_n_rows"
FROM rows
GROUP BY "classification"
HAVING COUNT(*) >= ?
```
Parameters: `[1]`

