Reviewed in the context of v3.2b Data Standard.
Properties of StudentObjectiveAssessment:
- ObjectiveAssessment (required)
- PerformanceLevel (optional collection)
- ScoreResult (required collection)
Therefore, a student objective assessment requires at least one score result.
Field usage has identified scenarios in which a performance level is available for an objective assessment but not a score result. Examples are ELPAC and CAASPP.
A detailed example of ELPAC:
"Written Language" objective assessment has both a performance level and score :
- Field 69: Written Language Performance Level
- Field 67: Written Language Scale Score
- "Oral Language" follows a similar pattern
"Listening" objective assessment has only a performance level:
- Field 70: Listening Performance
- "Speaking", "Reading", and "Writing" follow a similar pattern, i.e. there is not related score.
Consider changing cardinality requirements so that both PerformanceLevel and ScoreResult are optional collections. If metadata semantics supports it, the desired requirement is that either PerformanceLevel ScoreResult are required.
Alternatively, clarify why an objective assessment should always have at least one score result and suggest a recommended mapping strategy for ELPACS (and other similar cases).
The ObjectiveAssessment seems to be defined inconsistently with the StudentObjectiveAssessment resource. Note that both ObjectiveAssessment.AssessmentScore and ObjectiveAssessment.AssessmentPerformanceLevel are defined with a cardinality of optional collection.
It appears that enforcement of "required collection" cardinality was only introduced in technical suite 3: https://github.com/Ed-Fi-Alliance/Ed-Fi-ODS/pull/323/commits/bb33d00d06a8b98ddb2c09ac5e99d26bcd433a86
We came across this issue in the context of migrating from Data Flow to Data Import. Data Import correctly reads the metadata and rejects the mapping at processing time with an INFO message of "Discarding array item 'studentAssessmentStudentObjectiveAssessment' because one of its required properties was blank. This can happen when an input file with 'jagged' data is mapped to an ODS array property."
- relates to
DATASTD-1550 Consider aligning cardinality of ObjectAssessment.AssessmentScore and StudentObjectiveAssessment.ScoreResult