Check if a student is eligible to self-request a test-out
Checks whether a student can self-request an assessment to test out of their current grade level for a given subject.
The endpoint performs the following checks in order:
- Verifies the student has an active enrollment for the subject in a non-placeholder course (endDate is null or in the future, and course metadata does not have placementPlaceholder set to true)
- Fetches the student’s highest grade mastered for the subject
- If the student has no mastery in the requested subject, applies that subject’s cross-subject placement prerequisites using all-source prerequisite mastery while FF_TEST_OUT_ENTRY_PLACEMENT_GATE is enabled
- When advancing from mastered K-2 Reading to the next grade’s test-out, requires a passed ORF screener at the mastered grade (summer-experience students retain their configured waiver while its feature flag is enabled)
- Resolves the target grade from highestGradeMastered + 1; if mastery is unavailable, falls back to the lowest active-enrollment grade and then the active course sequence’s lowest assessment grade
- Returns terminal-grade ineligibility when the resolved target exceeds the Grade 12 self-elected AlphaTest inventory, or the active sequence’s highest assessment grade for FastMath
- For FastMath Kindergarten and above, blocks pending AlphaTest/mastery-track assessments and passed assessments with missing or unknown operation tags, then selects the first canonical operation in active-sequence order that has no passed non-quiz assessment result at the target grade
- For other subjects, queries the assessment_results table for any existing fully-graded self-elected test-out at the resolved target grade
Returns eligible: true with targetGrade if no prior test-out exists at the target grade. FastMath Kindergarten-and-above responses also include the required gradeAssessmentTag.
Returns eligible: false with a reason if the student has no qualifying active enrollment, has no supported higher target grade, or has already tested out. Terminal-grade responses include code: "terminal_grade".
FastMath sequence configuration is cached for up to 30 seconds within the same authorization and tenant context; student evidence is always read fresh. During deployment, an older eligibility service that omits the operation returns temporary ineligibility, and assignment returns 403 until operation selection is available.
Subject matching is case-insensitive. Supported subjects: Math, FastMath, Reading, Language, Science, Writing, Vocabulary.
Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Path Parameters
The OneRoster sourcedId of the student
The subject to check eligibility for
Response
Eligibility result
- Option 1
- Option 2
The grade approved by this eligibility decision
-1 <= x <= 12For FastMath Kindergarten and above, the exact operation selected from the active sequence and approved by this eligibility decision
addition, subtraction, multiplication, division, mixed-operations