Standard Scoring with Strand-Level Results
This article describes the strand-level scoring endpoint for the Standard Scoring Service. This endpoint returns an overall ability score along with a breakdown of performance by individual skill areas (strands) — in a single API call.
What Changed
Previously, retrieving strand-level performance required making a scoring call and then applying a separate conversion table to map results into skill-area measures and performance bands. This endpoint handles that process automatically and returns strand scores directly in the response.
URL
POST /api/score/items/idsWithResults/standard/strands
Request
The following parameters are required in the request. An example is provided below.
| Parameter | Type | Description |
|---|---|---|
grade |
integer | Required. The student's grade level (e.g. 0 for Kindergarten, 3 for Grade 3). |
timeOfYear |
string | Required. The point in the school year. Accepted values: BOY (Beginning), MOY (Middle), EOY (End). |
items |
array | Required. A list of assessment items the student responded to. |
items[].id |
string | Required. The unique identifier for the item (e.g. "Q1234"). |
items[].result |
integer | Required. The student's response result for that item. |
Example request:
{
"grade": 3,
"timeOfYear": "BOY",
"items": [
{ "id": "Q1234", "result": 1 },
{ "id": "Q1235", "result": 0 }
]
}
Response
A successful response (HTTP 200) returns an overall ability score and a strands array containing one entry per skill area assessed.
| Parameter | Type | Description |
|---|---|---|
ability |
integer | The student's overall ability score. |
abilityDisplay |
string | A display-ready version of the ability score with all standard formatting rules applied, including rounding, caps, and framework label (e.g. "320L" or "BR200L"). Use this value when presenting scores in user interfaces or reports. |
uncertainty |
integer | The confidence range around the overall ability score. |
framework |
string | The scoring framework used (e.g. "lexile"). |
apiVersion |
string | The build version of the API that processed the request. |
strands |
array | A list of strand-level scores. See fields below. |
strands[].name |
string | The name of the skill strand (e.g. "Phonics"). |
strands[].ability |
integer | The student's ability score for this strand. |
strands[].abilityDisplay |
string | A display-ready version of the strand ability score. |
strands[].uncertainty |
integer | The confidence range for this strand score. |
strands[].category |
integer | A numeric value representing the student's performance band for this strand. See the Performance Band Reference for category definitions. |
Example response:
{
"ability": 320,
"abilityDisplay": "320L",
"uncertainty": 288,
"framework": "lexile",
"apiVersion": "ecf08905-main",
"strands": [
{
"name": "Phonics",
"ability": 320,
"abilityDisplay": "320L",
"uncertainty": 288,
"category": 3
}
]
}
Error Responses
| HTTP Code | Meaning | What to Check |
|---|---|---|
| 400 | Invalid input | Check that all required fields are present and that item IDs and results are formatted correctly. The response body will include specific validation errors. |
| 401 | Unauthorized | Your credentials could not be verified. Check that you are sending a valid authentication token. |
| 403 | Forbidden | Your account does not have the required permissions to use this endpoint. Contact your account manager if you believe this is an error. |
Related Resources
- For performance band definitions, see the Performance Band Reference article.
- For Bayesian scoring with strand-level results, see Bayes Scoring with Strand-Level Results.
- For the standard scoring call without strands, see Standard Scoring Service.
