# Colorado Parent Voices — Comparison rules v0.2

November 2, 2026. Review candidate; not approved for deployment.

## Evidence and eligibility

Reuse the saved v1.82 external-asset integration payloads, which identify evidence release v1.78. Source payloads are read without mutation. No database rebuild, import, or assessment reimport occurs. The adapter selects existing observations and preserves all 60 fields, source metadata and evidence notes. The master database is not included in public assets.

244 reporting units: 178 districts and 66 retained AU roster entries. The foundation uses the joint type `au_or_sop`. Four explicitly named state-operated program entries (66050, 66060, 66070, 66080) are excluded from AU navigation, rather than silently described as comparable districts. Original AU/SOP source scope remains. This is not independent certification of all historical AU boundaries.

Included: source-reported enrollment and educational placement; discipline; restraint/seclusion; educator-shortage mechanism and unfilled staffing cells; four CMAS measures (Number of Total Records, Number of Valid Scores, Participation Rate, Percent Met or Exceeded Expectations). Different topics may be absent for a level/year. All source categories and populations within these selected measures remain separate. This is a limited indicator release, not all measures in the statewide database.

Excluded: IDEA compliance and determination measures; graduation and dropout; growth; PSAT/SAT, ACCESS and CoAlt; complaint comparisons and all scoring/ranking. Some educational-placement cells originate in IDEA source series; existing binding conflicts remain blocked. The original dashboards retain their broader evidence and limitations.

## Exact matching contract

The authoritative machine list is `CPVCompare.MATCH_FIELDS` in `engine.js`:

domain, indicator, reporting_year, source_id, source_sheet, subgroup, category, basis, unit, indicator_definition, denominator_note, assessment, education_level, subject, period_end, source_header, report_designation, period_basis, derived_period_end, derived_reporting_year, period_rule_id, period_source_url, period_locator, period_verification_status, graduation_window_years, selected_best_window_years, source_ayg_range, count_scope, outcome_family.

Null/undefined metadata normalize to an empty string only for signature construction. Source observation fields remain unchanged. Neither indicator name nor a shared school-year label alone establishes a match. The same source series is mandatory; different sources are never implicitly equated. There is no semantic/fuzzy matching or automatic reconciliation of legacy labels. A false-negative match is preferable to a misleading pair.

Report-unit namespace AND entity type must match. Each row must belong to its selected entity. Numerical denominators may differ across communities; their definitions must match. Numerator/denominator statuses and values remain attached to the source observation. No new rates, differences, totals or pooled samples are calculated. Existing published percentages remain source-reported values.

Records form a union by exact signature, preserving unmatched rows separately. No prior-year fallback, closest-grade substitution, source preference or best numeric selection occurs. Multiple observations with the same signature on either side block comparison; none is automatically chosen.

## Family-facing status labels

- **Matching definitions and periods:** one exact match on each side; two published finite numeric values; no detected evidence hold; percentage denominators available for both sides. This is a metadata match, not proof of causal or statistical comparability.
- **Use caution:** matching count/FTE rows, or published percentage rows without numeric denominator context for both sides. Community sizes, collection coverage and sample context matter. No risk rate or staffing caseload is implied.
- **Cannot compare:** no exact match, duplicate signature, nonpublished/nonnumeric/bounded/suppressed observation, or an existing conflict/hold. The source raw value and notes remain visible. Numeric held source values are displayed as source observations, accompanied by this blocking label; their appearance is not an admission for comparison or scoring.

Hold detection conservatively blocks records whose quality status, verification status, source notes or definition contain conflict, quarantine, hold, ambiguous or unresolved. The test suite checks retained holds across every adjacent statewide validation pair. The heuristic cannot certify that every possible future evidence concern has been encoded; new imports require eligibility review, not automatic promotion.

## Population cautions

October district membership is distinct from AU December count, full December child count, assessment records, exit populations and annual discipline exposure. AU observations are never inherited by districts. Historical memberships remain incomplete. Counts across grades, demographic slices or source series may overlap; no totals across slices are offered. CMAS IEP and non-IEP groups remain separate; the tool does not extrapolate test-taker performance to every student with an IEP. Grade and All Grades rows overlap.

Discipline action counts, AU events and unduplicated-student measures stay separate. Collection changes and the existing 2024–25 population-title conflict are retained. A shared year is not a cross-collection trend comparison. Safety totals may include seclusion; never add seclusion to an inclusive total. Shortage mechanisms do not establish total staffing, service delivery or caseloads.

Complaint listings are not substantiated findings; publication is not a complete complaint filing inventory. Unknown corrective-action completion is not verified completion or proof of noncompletion. Complaint rankings/totals are not offered in this release.

## Export and security

CSV contains every displayed group, comparison label/reason, displayed values, duplicate counts, all 60 source observation fields for each unambiguous side, source filename/hash/access date and originating payload hash. An unmatched side has blank source fields plus an explicit unavailable displayed value. Duplicate source rows remain in data JSON; export intentionally does not select a duplicate. UTF-8 BOM and CRLF support common spreadsheet readers. Quoting preserves commas, quotes and newlines; potential leading formula expressions are prefixed with an apostrophe. Source metadata stays unchanged in JSON. Displayed numbers use grouping separators and at most ten decimal places to remove binary floating-point artifacts; stored values and raw source text remain unchanged.

Web edition uses same-site external scripts, styles and JSON, textContent for source strings, and HTTPS-only source links with noopener/noreferrer. It does not require unsafe-inline, unsafe-eval, third-party assets, frames, authentication or a backend. Preserve the website's existing headers and CSP. CSV uses a temporary local blob download. Browser/CSP acceptance remains a release gate.
