The schema

The JSON Schema contracts that every sidecar must satisfy

Each authored sidecar is validated against its JSON Schema before any derivation. A field marked required must be present; fields with an enum accept only the listed values. These schemas are the executable Tier A contract — this page renders them directly, so it never drifts from what the validator enforces. v2 (ADR-009) is canonical; v1 remains accepted during the migration window.

One file describes exactly one (jurisdiction x assessment_system x year). v2 (ADR-008/ADR-009) adds: the enrollment-grade model on every content area (intended_enrollment_grade fixed|variable + enrolled_grades_tested — disentangling the instrument's target grade, the student's enrolled grade, and cut keys), scale_bounds (loss/hoss keyed by enrolled grade, mirroring cutscores), a canonical assessment_type enum with conditional measurement.elp / measurement.alternate extension blocks, source_documents[], and per-grade cutscores_source confidence. AXIS RULE: cutscores, scale_bounds, and cutscores_source are ALWAYS keyed by ENROLLED grade — never by instrument or form name; instrument forms (e.g. WIDA grade clusters) are measurement facts in the extension blocks. v1 records remain valid during the migration window (ADR-009 D6).

Assessment System Metadata (self-contained per-annual sidecar) v2 · https://centerforassessment.github.io/assessment-metadata-registry/schemas/amr.assessment.v2.json

schema_versionconstrequired= amr.assessment.v2

Canonical v2 identifier. Supersedes amr.assessment_system.v1 (and the sgpc.assessment_metadata.v0.1 alias), which remain accepted by the validator during the migration window.

statusenumrequired

Governance status. draft = unreviewed (incl. machine-drafted or placeholder values); reviewed = a human checked it; verified = confirmed against an authoritative citation; deprecated = retained for history but superseded. Colleague verification-state map: unverified->draft, auto_derived->draft(+low), in_review->reviewed, human_verified->verified.

draft reviewed verified deprecated
source_confidenceenum

Confidence in the substantive facts (esp. cutscores/levels/bounds). Placeholder/scaffold values are low. Per-value confidence lives on scale_bounds entries (source) and cutscores_source.

low medium high
provenanceobject

Where this record came from, who entered it, and what changed. Required (with source_citation) for any status other than draft.

source_citationstring

URL or document reference for the authoritative source of the substantive claims (the primary citation; additional evidence goes in source_documents).

entered_bystring

Author identifier; for machine-drafted records use the form ai:<harness-id>.

entered_atstring
last_verified_atstring | null
verified_bystring | null

Who performed the last verification (reviewer identifier), or null if unverified. Pairs with last_verified_at (ADR-010, adopted from the colleague spec's provenance).

changed_from_priorstring | null

What changed vs the prior year/commit and why (assessment-system change vs metadata correction vs modeling decision).

source_documentsarray

Evidence list beyond the primary provenance.source_citation: technical manuals, interpretive guides, state memos. url may be null when a document is known but not yet located online (ADR-009 D4).

each item:
titlestringrequired
urlstring | null
jurisdictionobjectrequired
idstringrequired
namestringrequired
typeenumrequired
state territory consortium district other
nces_idstring
fipsstring
assessment_systemobjectrequired
idstringrequired
namestringrequired
familystringrequired
assessment_typeenumrequired

Canonical discriminator (ADR-008 SS5). Legacy v1 strings (state-summative, english-language-proficiency, general) are normalized by migrate_registry(). elp permits measurement.elp; alternate permits measurement.alternate.

summative alternate elp science end-of-course
administrationobjectrequired
idstringrequired
yearstringrequired^[0-9]{4}$
vendorstring
windowstring
csem_refstring | null
assessment_programobject
assessment_namestring
abbreviationstring
organizationobject
namestring
abbreviationstring
urlstring
cutscores_provenancestring

Free-text note about the provenance/status of the cutscores/scale_bounds blocks specifically (e.g. a PLACEHOLDER warning). Complements the structured provenance block and per-grade cutscores_source.

comparabilityobject

Year-resolved comparability of this administration to the prior year: scale breaks, vendor/blueprint changes, and administration gaps (e.g. COVID-19).

comparable_to_prior_yearboolean | null
scale_transitionboolean
prior_scale_namestring | null
administeredboolean
notesstring | null
content_areasarrayrequired
each item:
idstringrequired
labelstring
vertical_scalebooleanrequired
scale_namestring
enrollmentobjectrequired

The enrollment-grade model (ADR-009 D1): the relationship between this instrument and the ENROLLED grade of the student taking it. fixed = the instrument targets one enrolled grade (ILEARN Grade 8 Math); variable = students from multiple enrolled grades sit the same instrument (ACT; WIDA grade-span forms).

intended_enrollment_gradeenumrequired
fixed variable
enrolled_grades_testedarrayrequired

Ordered enrolled grades that sit this content area. K (and PK) permitted. EOC without a grade association may use [] with an explanatory note.

notestring

Free text for the murky edge cases (e.g. 'ACT is a high-school test usually administered to 11th graders but taken by 10th/12th for graduation-competency purposes').

notesstring
achievement_levelsobject
values (keyed map):
&lt;key&gt;object
labelsarrayrequired
proficient_fromstring

Canonical proficiency benchmark (ADR-010): the label (one of labels[]) of the LOWEST level counted as proficient. A single value that is robust to label edits and cleanly separates the measurement fact (the levels exist) from the policy fact (where proficiency begins). Consumers derive the boolean mask from it. Preferred over the legacy proficient[] mask; the validator checks it names a real label.

proficientarray

DEPRECATED (ADR-010): legacy boolean mask aligned positionally to labels[]. Superseded by proficient_from (a single label), which avoids positional coupling and the non-monotonic masks the array form permits. Still accepted during migration; when both are present the validator checks they agree.

notesstring
cutscoresobject

content_area -> ENROLLED grade -> strictly increasing level lower bounds (count = n_levels - 1). Grade keys are enrolled grades, never instrument/form names (axis rule). EXCEPTION (ADR-010): an end-of-course assessment, whose standard is instrument-level rather than grade-specific, may use the single sentinel key "eoc" in place of enrolled grades — write the cut once instead of copying it across every enrolled grade. Permitted by the validator only when assessment_type = end-of-course.

values (keyed map):
&lt;key&gt;object
values (keyed map):
&lt;key&gt;array
cutscores_sourceobject

Optional per-grade confidence for cutscore vectors: content_area -> enrolled grade -> official|derived|provisional (ADR-008 SS5 per-value confidence).

values (keyed map):
&lt;key&gt;object
scale_boundsobject

content_area -> ENROLLED grade -> scale envelope {loss, hoss, source?}. Mirrors cutscores keying exactly (ADR-009 D2), including the end-of-course "eoc" sentinel key (ADR-010); per-grade because scales may differ by grade (ILEARN); uniform scales simply repeat values. Invariant (validator): loss <= min(cuts) <= max(cuts) <= hoss where both blocks are present.

values (keyed map):
&lt;key&gt;object
values (keyed map):
&lt;key&gt;object
lossnumberrequired

Lowest obtainable scale score.

hossnumberrequired

Highest obtainable scale score.

sourceenum
official derived provisional
notesstring
measurementobject

Type-conditional measurement extension blocks (ADR-009 D3). Vendor/psychometric facts ONLY — policy facts (ELP exit, growth targets, timelines, participation rules) live in the accountability record (ADR-002 heuristic).

elpobject

English-language-proficiency measurement facts (permitted only when assessment_type = elp).

instrumentstring
domainsarray
compositesobject

Composite score definitions keyed by composite id (which may match a content_areas[].id, e.g. ELP_COMPOSITE): label + domain weights.

values (keyed map):
&lt;key&gt;object
grade_clustersarray

Instrument FORM spans (e.g. K, 1, 2-3, 4-5, 6-8, 9-12). These are forms, not score-interpretation keys — cuts and bounds are keyed by enrolled grade (axis rule).

band_schemestring
alternateobject

Alternate-assessment measurement facts (permitted only when assessment_type = alternate). Participation criteria and the federal 1% cap are POLICY facts -> accountability record.

instrumentstring
achievement_standardstring
scoring_modelenum
scale profile
linkage_levelsarray
equating_notesstring
aliasesobject

Crosswalks: canonical id -> alternate names/codes (old names, SGP content-area names, colleague 'subjects' names, state abbreviations).

values (keyed map):
&lt;key&gt;array
edfiobject

Optional Ed-Fi descriptor crosswalk overrides for this cell.

namespacestring
assessment_categorystring
academic_subjectsobject
values (keyed map):
&lt;key&gt;string
grade_levelsobject
values (keyed map):
&lt;key&gt;string
performance_levelsobject
values (keyed map):
&lt;key&gt;string
notesstring

Optional free-text interpretive note for this administration (how to read the metadata; policy caveats). Distinct from provenance.source_citation and cutscores_provenance (source/citation). A note may also attach per content_area, achievement_levels entry, and scale_bounds cell.

One file describes exactly one (jurisdiction x accountability_system x year). The accountability system is a state-wide object that USES one or more assessment systems: it carries the policy goals a score is measured against, year-resolved, each cross-linking an assessment system + content area (ADR-002). v2 (ADR-009 D5) adds the policy blocks reclassified out of the colleague spec's measurement extensions: growth_targets, timelines, and participation, plus source_documents[]. targets[] is unchanged from v1 — the SGPc re-merge contract is untouched. growth_targets shape is provisional and hardens when the first real record is authored.

Accountability System Metadata (self-contained per-annual sidecar) v2 · https://centerforassessment.github.io/assessment-metadata-registry/schemas/amr.accountability.v2.json

schema_versionconstrequired= amr.accountability.v2

Canonical v2 identifier. Supersedes amr.accountability_system.v1, which remains accepted by the validator during the migration window.

statusenumrequired

Governance status; non-draft requires provenance.source_citation.

draft reviewed verified deprecated
source_confidenceenum
low medium high
provenanceobject
source_citationstring
entered_bystring
entered_atstring
last_verified_atstring | null
changed_from_priorstring | null
source_documentsarray

Evidence list beyond the primary provenance.source_citation (state board rules, ESSA plans, exit-criteria memos). url may be null when known but not yet located (ADR-009 D4).

each item:
titlestringrequired
urlstring | null
jurisdictionobjectrequired
idstringrequired
namestringrequired
typeenumrequired
state territory consortium district other
nces_idstring
fipsstring
accountability_systemobjectrequired
idstringrequired
namestringrequired
frameworkstring

e.g. ESSA, state-specific. Optional.

administrationobjectrequired
idstringrequired
yearstringrequired^[0-9]{4}$
targetsarrayrequired

Criterion-referenced achievement targets: the policy goal a score is measured against. Each target cross-links the assessment system + content area it applies to. Unchanged from v1 (SGPc re-merge contract).

each item:
assessment_system_idstringrequired

Cross-link to an assessment record (same jurisdiction + year).

content_areastringrequired
labelstring
semanticsenumrequired

exit (ELP reclassification) or proficiency (summative accountability goal).

exit proficiency
basisenumrequired

proficiency_boundary resolves against the linked assessment's cutscores + proficient mask; scale_score carries explicit per-grade thresholds; level is reserved.

proficiency_boundary scale_score level
comparisonenum
>= >
per_grade_scale_scoreobject

Required for basis='scale_score': ENROLLED grade -> scale-score threshold (axis rule: grade keys are enrolled grades).

values (keyed map):
&lt;key&gt;number
level_valuenumber

For basis='level' (deferred): the fractional level target (e.g. 4.2).

provenancestring
notesstring
growth_targetsarray

Expected growth toward exit/proficiency (reclassified from colleague elp$growth_targets — ADR-009 D5). PROVISIONAL SHAPE: required cross-link + description; per-grade values optional. Harden when the first real record is authored.

each item:
assessment_system_idstringrequired
content_areastring
labelstring
descriptionstringrequired

The growth expectation rule in prose (e.g. 'gain >= 0.5 proficiency levels per year toward exit').

per_gradeobject

Optional ENROLLED grade -> numeric growth expectation.

values (keyed map):
&lt;key&gt;number
provenancestring
timelinesobject

Exit/on-time policy timelines (reclassified from colleague elp$timelines — ADR-009 D5).

max_years_to_exitnumber
on_time_rulestring
ltel_definitionstring

Long-term English learner definition (e.g. '> 6 years without exit').

notesstring
participationobject

Participation policy (reclassified from colleague alternate$participation_criteria / federal_cap — ADR-009 D5).

criteriaarray

Participation criteria statements (e.g. alternate-assessment eligibility rules).

federal_capnumber

Federal alternate-assessment participation cap as a proportion (e.g. 0.01).

notesstring
notesstring

Optional free-text interpretive note for this accountability administration. Distinct from provenance.source_citation; a note may also attach per target.

One file describes exactly one (jurisdiction x assessment_system x year). Identity (jurisdiction + assessment_system) is invariant and conflict-checked at ingest; administration, assessment_program, content_areas, achievement_levels, and cutscores are year-resolved (the file is the year), so performance-level re-establishment is first-class. Ported from SGPc sgpc.assessment_metadata.v0.1; the legacy schema_version string is accepted as an alias during migration.

Assessment System Metadata (self-contained per-annual sidecar) v1 · https://centerforassessment.github.io/assessment-metadata-registry/schemas/amr.assessment_system.v1.json

schema_versionenumrequired

amr.assessment_system.v1 is canonical; sgpc.assessment_metadata.v0.1 is the accepted legacy alias during migration.

amr.assessment_system.v1 sgpc.assessment_metadata.v0.1
statusenumrequired

Governance status. draft = unreviewed (incl. machine-drafted or placeholder values); reviewed = a human checked it; verified = confirmed against an authoritative citation; deprecated = retained for history but superseded.

draft reviewed verified deprecated
source_confidenceenum

Confidence in the substantive facts (esp. cutscores/levels). Placeholder/scaffold values are low.

low medium high
provenanceobject

Where this record came from, who entered it, and what changed. Required (with source_citation) for any status other than draft.

source_citationstring

URL or document reference for the authoritative source of the substantive claims.

entered_bystring

Author identifier; for machine-drafted records use the form ai:<harness-id>.

entered_atstring
last_verified_atstring | null
changed_from_priorstring | null

What changed vs the prior year/commit and why (assessment-system change vs metadata correction vs modeling decision).

jurisdictionobjectrequired
idstringrequired
namestringrequired
typeenumrequired
state territory consortium district other
nces_idstring
fipsstring
assessment_systemobjectrequired
idstringrequired
namestringrequired
familystringrequired
assessment_typestringrequired

e.g. state-summative, english-language-proficiency, alternate, science, end-of-course.

administrationobjectrequired
idstringrequired
yearstringrequired^[0-9]{4}$
vendorstring
windowstring
csem_refstring | null
assessment_programobject
assessment_namestring
abbreviationstring
organizationobject
namestring
abbreviationstring
urlstring
cutscores_provenancestring

Free-text note about the provenance/status of the cutscores block specifically (e.g. a PLACEHOLDER warning). Retained from the SGPc sidecars; complements the structured provenance block.

comparabilityobject

Year-resolved comparability of this administration to the prior year: scale breaks, vendor/blueprint changes, and administration gaps (e.g. COVID-19). Lets consumers flag non-comparable growth spans and the changelog surface breaks.

comparable_to_prior_yearboolean | null

Are scores comparable to the immediately prior administered year? null = unknown.

scale_transitionboolean

Did the scale change in this year (a break vs the prior year)?

prior_scale_namestring

Name of the superseded scale when scale_transition is true.

administeredboolean

Was this administration given at all? false records an intentional gap (e.g. 2020 COVID) as a first-class fact.

notesstring
content_areasarrayrequired
each item:
idstringrequired
labelstring
vertical_scalebooleanrequired
scale_namestring
achievement_levelsobject
values (keyed map):
&lt;key&gt;object
labelsarrayrequired
proficientarray
cutscoresobject
values (keyed map):
&lt;key&gt;object
values (keyed map):
&lt;key&gt;array
aliasesobject

Crosswalks: canonical id -> alternate names/codes (old names, SGP content-area names, state abbreviations).

values (keyed map):
&lt;key&gt;array
edfiobject

Optional Ed-Fi descriptor crosswalk overrides for this cell. Each map overrides the bundled descriptor-profile defaults; absent keys fall back to the profile.

namespacestring
assessment_categorystring
academic_subjectsobject
values (keyed map):
&lt;key&gt;string
grade_levelsobject
values (keyed map):
&lt;key&gt;string
performance_levelsobject
values (keyed map):
&lt;key&gt;string

One file describes exactly one (jurisdiction x accountability_system x year). The accountability system is a state-wide object that USES one or more assessment systems: it carries the policy goals a score is measured against (ELP exit thresholds, summative accountability proficiency targets), year-resolved. Each target CROSS-LINKS an assessment system + content area rather than living inside the assessment sidecar, because the target is state policy (see ADR-002), not a property of the assessment. Extensible: participation rules, N-size, indicator weights, and business rules are future additions.

Accountability System Metadata (self-contained per-annual sidecar) v1 · https://centerforassessment.github.io/assessment-metadata-registry/schemas/amr.accountability_system.v1.json

schema_versionconstrequired= amr.accountability_system.v1
statusenumrequired

Governance status; non-draft requires provenance.source_citation.

draft reviewed verified deprecated
source_confidenceenum
low medium high
provenanceobject
source_citationstring
entered_bystring
entered_atstring
last_verified_atstring | null
changed_from_priorstring | null
jurisdictionobjectrequired
idstringrequired
namestringrequired
typeenumrequired
state territory consortium district other
nces_idstring
fipsstring
accountability_systemobjectrequired
idstringrequired
namestringrequired
frameworkstring

e.g. ESSA, state-specific. Optional.

administrationobjectrequired
idstringrequired
yearstringrequired^[0-9]{4}$
targetsarrayrequired

Criterion-referenced achievement targets: the policy goal a score is measured against. Each target cross-links the assessment system + content area it applies to.

each item:
assessment_system_idstringrequired

Cross-link to an amr.assessment_system.v1 record (same jurisdiction + year).

content_areastringrequired
labelstring
semanticsenumrequired

exit (ELP reclassification) or proficiency (summative accountability goal).

exit proficiency
basisenumrequired

proficiency_boundary resolves against the linked assessment's cutscores + proficient mask; scale_score carries explicit per-grade thresholds; level is reserved.

proficiency_boundary scale_score level
comparisonenum
>= >
per_grade_scale_scoreobject

Required for basis='scale_score': grade -> scale-score threshold.

values (keyed map):
&lt;key&gt;number
level_valuenumber

For basis='level' (deferred): the fractional level target (e.g. 4.2).

provenancestring