Eligible after tuition

Exams, AP tests and vocational training

Testing and career training are written into the Iowa statute's list of qualified expenses.

Last verified: October 2026

Can ESA money cover AP exams and college entrance tests for an Iowa high schooler?

Yes. Standardized test fees, Advanced Placement exams and exams related to postsecondary admission or credentialing are eligible, as is approved vocational and life-skills education from a credentialed provider.

What are the rules for exams, ap tests and vocational training?

  • Standardized test fees, AP exams and admission or credentialing exams.
  • Vocational and life skills education from a provider approved by the Department of Education or another state agency.

What is not allowed in this area?

  • Non-school classes
  • Camps of any kind (summer, holiday, athletic)

What does this mean for a Des Moines-area family?

For college credit itself, juniors and seniors at accredited schools can also use Iowa's PSEO program, which is separate from the ESA.

ESA purchase rules: is / isn't
It isIt isn't
Paid from money left after tuition and feesPaid before tuition
Bought through the Odyssey Marketplace or billed by the schoolReimbursed when bought at another store
Checked against the state's expense listA guarantee that every item will be approved

Plan my child's ESA →

Sources: Iowa Department of Education, "Iowa's Students First Act ESA Program: Eligible and Ineligible Expenses" (educate.iowa.gov/media/8595, updated May 25, 2023 and still linked from the ESA program page in October 2026); Iowa Code section 257.11B(1)(b); Iowa Administrative Code 281-20.1(6); Odyssey Iowa help center. This is a summary, not legal advice; Odyssey and the Department decide individual purchases, and a parent may appeal a decision to the State Board of Education within 30 days.

See what your family can use this year

Two minutes, five questions. A School Funding Advisor calls back with your ESA, grant and credit options and the dates that apply.

Start the funding check →