Ohio Health Choice

s3://talon-storage-private/mrf-feed-uploads/2025-11/2025-11-01_OHC_in-network-rates_21.json.gz
File date: 2025-10-14 1 run(s) Last run: 2026-04-24 22:01 EDT v1.0.0
65.0
Limited Reliability
score capped at 65.0 — CMS official schema validation failed (see meta for details)
All Runs
Date Score Confidence Errors Warnings Patches Actions
2026-04-24 22:01 EDT 65.0 Limited Reliability 3 5 0 View PDF

Latest Run Details
Generated At
2026-04-24 22:01 EDT
Elapsed
29.30s
Tool Version
1.0.0
Parse Errors / Crashes
0 / 0
File (raw compressed)
Size:  572.52 KB (586,259 bytes)
MD5:  0a6f10bd09ed36824660e1a4880e1895
talon-storage-private/mrf-feed-uploads/2025-11/2025-11_plan_ref_1b01e3aa0690b3f8a5b2f985069b8105_index.json
Talon
Canonical: s3://talon-storage-private/mrf-feed-uploads/2025-11/2025-11-01_OHC_in-network-rates_21.json.gz
1 plan(s) in TOC
Plan Name Plan ID Issuer Market
OHC-ClaimChoice 0123456789 (custom)
score capped at 65.0 — CMS official schema validation failed (see meta for details)
CMS Official Schema Validation FAILED (exit 1)
Validator output
error Could not find a schema version named "1.0.0". Available versions are:
v2.0.0
v0.1
v0.2
v0.3
v0.3.1
v0.3.2
v0.4.0
v0.4.1
v0.5.0
v0.5.3
v0.7.0
v0.8.0
v0.8.1
v0.9.0
v0.9.1
v0.10.0
v0.10.1
v0.11.0
v0.12.0
v0.13.0
v1.0.0
v0.10.3
v1.0.4
v1.0.6
v1.0.7
v1.1.0
v1.1.1
v1.1.2
v1.2.0
v1.3.0
v1.3.1
v1.3.2
v1.3.3
v1.4.0
v1.5.0
v1.6.0
v1.6.1
v1.6.2
v2.0.1
v2.1.0
v2.2.0
v2.2.1
Schema Integrity
70.0
Provider Mapping
100.0
Code Coverage
70.0
Pricing Sanity
90.1
Provider Geographic Coverage Loading…
Analysing provider locations…
Errors (3)
file_freshness
File is 192 days old (last_updated_on exceeds the 90-day threshold)
cms_schema_validation
CMS official schema validator FAILED (exit code 1). File does not conform to the TIC in-network-rates schema.
zero_rates
19 zero-dollar rates (0.07%) — CMS schema requires negotiated_rate > 0 (exclusiveMinimum)
Warnings (5)
billing_code_format
1925 CPT codes do not match expected format
duplicate_billing_codes
3260 billing codes appear in more than one in_network item (74.7%)
rate_spread_by_class
billing_class='professional' / negotiated_type='fee schedule': P95/P50 spread is 9.5x (threshold: 5x, N=21,697 (1,000 sampled), high confidence)
rate_spread_by_class
billing_class='institutional' / negotiated_type='fee schedule': P95/P50 spread is 12.8x (threshold: 10x, N=305, moderate confidence)
per_code_rate_spread
3 rate contexts have a max/min ratio exceeding the type-specific threshold (20x professional / 50x facility, min 3 occurrences required). Each context is a unique combination of all 10 rate-key dimensions. n= shows how many distinct provider rates exist for that exact context.
Code Code Type Negotiated Type Billing Class Arrangement Setting Min Median Mean Max Ratio n
E0601 CPT fee schedule professional ffs $37.04 $58.95 $192.14 $1103.65 29.8× 8
E0570 CPT fee schedule professional ffs $6.38 $6.95 $44.85 $159.12 24.9× 4
92587 CPT fee schedule professional ffs $2.69 $3.53 $13.14 $61.19 22.7× 6
Info (2)
per_diem_rates
419 per-diem rates (1.4%) — not dollar amounts; excluded from spread analysis
percentage_rates
1172 percentage rates (3.9%) — values represent % of a reference rate, not dollar amounts; excluded from spread analysis
Recommended Actions
  1. 1.
    schema file_freshness
    File is 192 days old (last_updated_on exceeds the 90-day threshold)
    P1
  2. 2.
    schema cms_schema_validation
    CMS official schema validator FAILED (exit code 1). File does not conform to the TIC in-network-rates schema.
    P1
  3. 3.
    pricing zero_rates
    19 zero-dollar rates (0.07%) — CMS schema requires negotiated_rate > 0 (exclusiveMinimum)
    P1
  4. 4.
    pricing rate_spread_by_class
    billing_class='professional' / negotiated_type='fee schedule': P95/P50 spread is 9.5x (threshold: 5x, N=21,697 (1,000 sampled), high confidence)
    P2
  5. 5.
    pricing rate_spread_by_class
    billing_class='institutional' / negotiated_type='fee schedule': P95/P50 spread is 12.8x (threshold: 10x, N=305, moderate confidence)
    P2
  6. 6.
    pricing per_code_rate_spread
    3 rate contexts have a max/min ratio exceeding the type-specific threshold (20x professional / 50x facility, min 3 occurrences required). Each context is a unique combination of all 10 rate-key dimensions. n= shows how many distinct provider rates exist for that exact context.
    P2
  7. 7.
    code_coverage billing_code_format
    1925 CPT codes do not match expected format
    P3
  8. 8.
    code_coverage duplicate_billing_codes
    3260 billing codes appear in more than one in_network item (74.7%)
    P3
Metrics

header_missing_fields
header_conditional_issues
file_age_days 192
items_total 28896
items_missing_required_pct 0.0
items_empty_rates 0
prices_total 29954
prices_missing_required_pct 0.0
prices_missing_field_breakdown
prices_missing_service_code 0
prices_invalid_billing_class 0
rates_without_providers 0
negotiation_arrangements
ffs 28896
billing_code_types
CPT 23599
CSTM-ALL 645
MS-DRG 4620
RC 32
expired_prices 0
invalid_expiration_format 0

provider_references_in_file 604
provider_group_ids_referenced 604
unresolved_references 0
resolution_rate_pct 100.0
npis_validated 0
invalid_npi_count 0
npi_validity_rate_pct None
invalid_npi_examples
eins_validated 0
invalid_ein_count 0
ein_validity_rate_pct None
invalid_ein_examples
empty_npi_groups 0
groups_without_tin 0
npis_in_multiple_groups 0
unique_npis

unique_codes_total 4367
duplicate_codes 3260
duplicate_pct 74.65
by_code_type
CPT 3595
CSTM-ALL 1
MS-DRG 770
RC 1
unknown_code_types
format_invalid_by_type
CPT 1925
codes_not_in_reference reference_not_loaded
most_frequent_codes
Type Code Occurrences
CSTM-ALL CSTM-00 645
CPT 73630 126
CPT 73610 102
CPT 99214 99
CPT 99213 98
CPT 99203 94
CPT 73110 93
CPT 73562 90
CPT 99395 90
CPT 71046 87
CPT 76830 87
CPT 99204 86
CPT 99396 86
CPT 73030 84
CPT 73564 84
CPT 99212 83
CPT 73502 82
CPT 73130 81
CPT 59025 78
CPT 72100 77

total_prices_checked 29954
total_rates 28363
per_diem_rates 419
percentage_rates 1172
negative_rates 0
zero_rates 19
extreme_high_rates 20
extreme_low_rates 0
rate_distribution
sample_n 28363
sample_k 5000
confidence high
p5 8.909
p25 41.6198
p50 127.0295
p75 460.89075
p95 19363.32
p99 50588.4350000002
by_billing_class
Class / Type Count Median p25 p75 p95 Confidence
professional/negotiated 1,438 190.0 130.0 306.2 721.0 high
professional/fee schedule 21,697 85.5 33.1 197.0 813.7 high
institutional/negotiated 4,923 13245.8 8063.8 22246.4 50636.0 high
institutional/fee schedule 305 16.6 9.5 38.6 211.7 moderate
negotiated_types
negotiated 6361
fee schedule 22002
unique_rate_contexts 43166
rate_key_dimension_validity
invalid_negotiated_type 0
invalid_negotiated_types_seen {}
invalid_setting 0
invalid_settings_seen {}
invalid_severity_of_illness 0
severity_on_non_apr_drg 0
institutional_with_service_codes 0
invalid_service_code_format 0
billing_code_modifier_too_long 0
Scoring Methodology embedded in this report at generation time

Weighted sum of four structural dimensions, normalized to a 0–100 scale.

Normalized Weights
Schema Integrity 30%
Provider Mapping 15%
Code Coverage 15%
Pricing Sanity 40%
Confidence Bands
High ≥90
Usable With Caution ≥75
Limited Reliability ≥60
Not Usable <60
Score Caps
ConditionCapReason
Raw Json Errors Only 74.0 Native JSON syntax errors in the unpatched source file. File must be re-exported by the payer; scoring reflects auto-patched data only.
Cms Validation Failure Only 65.0 CMS official schema validator reports the file does not conform to the TIC spec.
Both Raw Json Errors And Cms Failure 59.0 Both native JSON syntax errors and CMS schema validation failure present.
Rate Context Key — 14-Tuple Field Coverage

Every rate in a CMS TIC MRF file is described by a 14-field tuple. Fields 1–10 form the rate-context key used to group and compare rates across the system. Fields 11–12 (provider, expiration date) are validated separately and excluded from the grouping key for analytical reasons. Each of the four scoring dimensions validates a distinct slice of this tuple — together they cover all 14 fields.

FieldValidated by
1 billing_code_type Schema (required field) + Code Coverage (enum + format validation)
2 billing_code_type_version Schema (required field)
3 billing_code Schema (required field) + Code Coverage (format, duplicates, reference lookup)
4 billing_code_modifier Pricing (modifier length, key normalization)
5 service_code Pricing (POS format, normalization, institutional-class check)
6 negotiated_type Pricing (CMS TIC enum validation)
7 billing_class Schema (CMS TIC enum validation) + Pricing (spread thresholds)
8 negotiation_arrangement Schema (CMS TIC enum validation) + Pricing (FFS vs bundle/capitation gating)
9 severity_of_illness Pricing (APR-DRG only, valid values 1–4)
10 setting Pricing (CMS TIC enum validation)
11 provider (NPI/EIN) Provider Mapping (Luhn checksum, IRS prefix, group resolution) — excluded from grouping key
12 expiration_date Schema (date validity, far-future sanity) — excluded from grouping key
13 additional_generic_notes not validated (free-text)
14 negotiated_rate Pricing (negative/zero/extreme-value checks, spread analysis)
  • Fields 1–10 are the grouping key. Each unique combination is a distinct rate context — rates with different modifiers, POS codes, or arrangements land in separate buckets and are never compared against each other.
  • Provider (field 11) is excluded from the key: the spread check is cross-provider by design. Partitioning by provider produces singleton buckets and eliminates the spread signal.
  • Expiration date (field 12) is excluded because it is a contract lifecycle attribute, not a clinical context. Rates for the same service should be comparable regardless of when they expire.
  • service_code (field 5) arrays are flattened and normalized before keying: '1' → '01', and a rate with ['11','22'] contributes to both the '11' and '22' buckets so rates are compared apples-to-apples by place of service.

Validates required fields, enum values, conditional requirements, and date validity per the CMS TIC in-network-rates schema. Also checks file freshness and expiration date sanity.

Scoring Method
Penalty-based deductions from 100, capped per category.
Penalty / ComponentFormula
per_missing_required_header_field 5
per_header_conditional_issue 2
freshness_warn 5
freshness_error 10
item_missing_fields_pct ×5 (cap 30)
empty_rates_pct ×0.5 (cap 5)
price_missing_fields_pct ×10 (cap 30)
rates_without_providers_rate ×200 (cap 20)
expired_prices_pct ×0.5 (cap 5)
Thresholds
file freshness warn days 45
file freshness error days 90
expiry far future years 3

Verifies that all provider_group_id references in in_network items resolve to an entry in the provider_references array. Validates NPI integrity via Luhn checksum and EIN integrity via IRS-issued 2-digit prefix.

Scoring Method
Weighted component sum (not purely penalty-based).
ComponentFormula
provider_resolution (60%) resolution_rate% × 0.60
npi_validity (30%) (100 − invalid_npi_pct × 5) × 0.30
ein_validity (10%) 10 − (invalid_ein_pct × 0.1) [0% invalid → 10 pts, 100% invalid → 0 pts, linear]
Checks
provider_group_resolution Ratio of provider_group_id references that resolve to a known provider group. Unresolved references mean rates cannot be attributed to any provider.
npi_validity Luhn checksum applied to every NPI value in the file.
ein_validity IRS-issued 2-digit prefix validation on EIN values.
empty_npi_groups Provider groups with an empty npi list.
missing_tin Provider groups with no TIN (type + value pair).
duplicate_npis Informational: NPIs appearing in more than one provider group.

Tracks every (billing_code_type, billing_code) pair and flags unrecognized CMS TIC code types, format violations for CPT/HCPCS/NDC, and duplicates (same code appearing in multiple in_network items).

Scoring Method
Penalty-based deductions from 100.
Penalty / ComponentFormula
per_unknown_code_type 3 pts each (cap 20)
format_invalid_pct × 0.5 (cap 10)
duplicate_code_pct × 2 (cap 20)
codes_not_in_reference_pct × 0.5 (cap 30) — only when reference set is loaded
Recognized Code Types
AP-DRG, APC, APR-DRG, APS-DRG, CDT, CPT, CSTM-ALL, EAPG, HCPCS, HIPPS, ICD, LOCAL, MS-DRG, NDC, R-DRG, RC, S-DRG

Detects invalid rates (negative, zero, extreme-value) and distribution anomalies (per-class P95/P50 spread, per-code max/min ratio, flat-rate distributions). Exact counts are used for all validity checks (negative, zero, extreme, dimension validity). Percentile-based checks (spread, IQR) use reservoir sampling — k=5 000 global, k=1 000 per (billing_class, negotiated_type) bucket — so memory stays bounded on large files. Per-code max/min spread is exact (all rates seen, no sampling).

Scoring Method
Penalty-based deductions from 100.
Penalty / ComponentFormula
negative_rate_pct × 5 (cap 20)
zero_rate_pct × 3 (cap 15)
extreme_rate_pct × 5 (cap 25) — ffs only
class_spread_excess (spread − threshold) × 2, max across (billing_class, negotiated_type) buckets (cap 15)
per_code_high_spread_count × 0.1 (cap 15)
invalid_negotiated_type_pct × 3 (cap 10) — rates silently dropped
invalid_setting_pct × 1 (cap 5) — silently defaults to wildcard
invalid_severity_pct × 1 (cap 5) — silently normalised to ''
institutional_with_service_codes_pct × 1 (cap 5) — extra key variation
invalid_service_code_pct × 2 (cap 5) — encode raises ValueError
Thresholds
extreme high by billing class professional: 25000.0institutional: 2000000.0both: 2000000.0default: 500000.0
extreme low 0.01
spread warn p95 over p50 by class professional: 5institutional: 10both: 10default: 5
per rate context max min ratio professional_codes: 20facility_drg_codes: 50
flat rate iqr p75 threshold pct 5.0
flat rate min rates to check 100
spread min n to flag 50
per code min n to flag 3
Notes
  • per diem and percentage rates are not dollar amounts and are excluded from all spread and distribution analysis.
  • Zero rates are treated as errors per CMS schema (exclusiveMinimum: 0).
  • Extreme-value flags (negative, zero, extreme high/low) are only applied to ffs negotiation_arrangement rates — bundle and capitation rates have different magnitude ranges and lack calibrated thresholds.
  • P95/P50 spread and flat-rate IQR checks are keyed by (billing_class, negotiated_type) so fee schedule and negotiated distributions are evaluated independently.
  • flat_rate_distribution is suppressed for negotiated_type='fee schedule' buckets — a flat distribution is correct behaviour for a fee schedule, not a defect.

The dashboard assigns a persistent mrf_key to each MRF. All validation runs of the same MRF share the same key so the score-history chart reflects how a file has changed over time — even if the payer re-exports it at a new URL. This key is not stored in the report JSON; it is computed at ingest time.

Key derivation (priority order)
TierWhen usedInput string
1 Both reporting_entity_name and plan_id present plan|<entity>|<plan_id_type>|<plan_id>
2 plan_id absent — falls back to URL (entity name alone is not safe: a payer publishes multiple distinct plans under the same entity) <file_location URL>

The key is a 16-character MD5 hex digest of the input string (case-insensitive, whitespace-stripped). Tier 1 is stable across monthly file re-exports because the plan identity in the MRF header does not change when the payer fixes a bug and re-publishes. Tier 3 is URL-dependent and will produce a new key if the file path changes.

This run:
mrf_key800c5501063a3479
EntityOhio Health Choice
Key tier Tier 2 URL hash

Geographic analysis is a supplemental feature computed on demand after scoring completes. It does not affect any scoring dimension — it is an observational overlay to help assess the breadth and distribution of in-network providers.

Data Sources
NPPES CMS National Plan and Provider Enumeration System — monthly full-replacement CSV. Maps each NPI to its primary registered ZIP code.
ZCTA centroids GeoNames US postal code file. Maps each 5-digit ZIP to a (latitude, longitude) centroid for map placement.
Process
  1. Extract all NPIs from the MRF file (npi and npi_numbers fields).
  2. Resolve each NPI to its primary practice ZIP via NPPES lookup.
  3. Aggregate provider count per ZIP code.
  4. Map each ZIP to a (lat, lon) centroid via ZCTA table.
  5. Render as a weighted heatmap — intensity proportional to provider count per ZIP.
Limitations
  • NPIs not found in NPPES (recently issued, test NPIs, EINs used as NPIs) are excluded from the map and reduce the geocoding match rate.
  • Location reflects the provider's NPPES-registered primary address, not necessarily where they accept this specific plan.
  • Map viewport auto-fits to the bounding box of ZIP codes covering 90% of total provider count, dropping sparse geographic outliers.