Check out North Carolina, our first state. See the district tracker

Research

Data dictionary

Fields and values in the files on the downloads page.

Last reviewed: 2026-10-16

Status values

k8_requirement
Shown publicly as "Requirement before grade 9" (the code is unchanged). A statute or rule requires financial education and reaches at least one grade before ninth, so the earliest grade covered is kindergarten to grade 8; some start only in grade 6 or 7. The law may name grade numbers, or name both elementary and middle (or primary, intermediate and middle) levels, which counts as a range before grade 9. See requirement_earliest_grade, requirement_grade_range and requirement_verb.
requirement_grades_unspecified
A statute or rule says, in operative language such as shall or must, that students receive instruction in personal finance or financial literacy (or that the program of instruction includes it), and names no grade or grade range. It is a requirement, but it is not confirmed to reach K-8. Permissive wording does not count.
k8_standards_only
State standards or frameworks name a personal-finance concept (earning, saving, spending, budgeting, credit or borrowing) at two or more K-8 grade levels, and no requirement to teach it was found. Money or coin arithmetic alone does not count.
high_school_only
Shown publicly as "No K-8 personal-finance standards found" (the code is unchanged). A requirement or graduation course exists in grades 9-12, and no requirement for any grade before ninth and no K-8 standards naming a personal-finance concept at two or more grade levels were found. It describes what was found, not proof that none exist.
study_or_pilot_only
A task force, study, pilot or unfunded permission exists, without a requirement.
none_found
After the searches recorded for the state, no statute, rule or standard on K-8 financial education was found. This is not proof that none exists.
under_review
The record is not yet confirmed to the standard we publish. No status and no conclusion are given; only the primary sources found so far are listed.

Terms

Under review
We found sources but have not confirmed a status. It does not mean there is no requirement, and it is not a negative finding. Under-review rows carry a status of under_review, no summary and no excerpts, and list their primary sources only.
Unknown
A field is empty because the sources do not say, or we could not confirm it. Unknown is never the same as false: false means a source supports the negative statement, such as no requirement found.
Primary source
A statute, administrative rule, board resolution or agency document from the state itself.
Check result
The outcome of an automated second pass that retrieves each source and looks for the excerpt. It is not legal review.

states.csv and states.json

One row per jurisdiction (50 states and DC). states.json adds pending bills and sources as lists.

FieldTypeMeaning
abbrtextTwo-letter postal abbreviation of the state or DC.
nametextJurisdiction name.
public_statustextThe published status. One of the values listed under "Status values". Matches the badge shown on the site.
confidencetextHow well the sources support the status: high or medium. Empty when the status is under_review.
summarytextOne or two neutral sentences on what the law says and does not say. Empty when the status is under_review.
k8_gradestextGrades from kindergarten to 8 for which the sources show financial education content, space-separated (K 1 2 ...). Empty means none were found or the status is under_review.
k8_is_mandatetrue | false | emptytrue only when a statute or rule requires it in K-8. false means no requirement was found. Empty means unknown or under_review.
k8_deliverytextcourse (a standalone course), embedded (within another subject) or not_stated. Empty means unknown.
k8_assessedtrue | false | emptyWhether the sources say the content is assessed. Empty means unknown.
k8_fundedtrue | false | emptyWhether the sources say it is funded. Empty means unknown.
k8_standards_documenttextName of the standards document that includes the content, if one was found.
k8_standards_yeartextYear of that standards document, if stated.
hs_graduation_requirementtrue | false | emptyWhether a high school course or credit is required for graduation. Empty means unknown.
hs_course_lengthtextLength of the required high school course, as the source states it.
hs_effective_datetextWho the high school requirement applies to or from when, as the source states it.
pending_billsnumberCount of pending bills recorded for the state. Bills are listed in states.json only.
requirement_sweeptextWhat a sweep of state statutes and rules found about a requirement to teach financial literacy below grade 9: k8_named (a named K-8 grade or a range including K-8), grades_unspecified (operative language, no grade named), high_school_only, none_found (no requirement found in the text checked) or unconfirmed (the text could not be read). Empty when the status is under_review. It describes what was found, not proof that none exists.
requirement_earliest_gradetextThe earliest grade the instruction requirement found reaches: K or 1 to 12. For a requirement before grade 9 it is K to 8. Empty when no grade is named (requirement_grades_basis not_specified), when no requirement was found, when it could not be confirmed, or when the status is under_review. It describes the requirement, not the standards.
requirement_grade_rangetextThe grades the requirement reaches, for example K-12, 6-8 or 9-12. When the law names both elementary and middle levels instead of grade numbers (requirement_grades_basis school_levels), elementary is taken to begin at kindergarten and the range is the levels named. Empty under the same conditions as requirement_earliest_grade.
requirement_grades_basistextHow the grades were determined: grade_numbers (the law names grade numbers), school_levels (the law names both elementary and middle, or primary, intermediate and middle, levels), not_specified (operative language, no grade or level named), none_found or unconfirmed. Empty when the status is under_review.
requirement_verbtextoffer when the operative verb of the requirement is "offer": the law says districts shall or must offer courses or instruction (shown on the site as "offer courses"), which does not say every student must receive it. Empty otherwise.
source_countnumberNumber of sources in sources.csv for this jurisdiction.
last_verifieddateISO date the record was last checked against its sources.

sources.csv

FieldTypeMeaning
abbrtextJurisdiction the source belongs to. Joins to states.csv.
source_urlurlAddress of the source document.
source_typetextprimary (a statute, rule, board or agency document) or secondary (a summary by another organization, used only as a cross-check).
roletextWhat the source is cited for: status, k8, high_school, pending_bill or crosscheck.
publishertextWho published the source.
citationtextStatute section, rule or document title.
excerpttextVerbatim text from the source, 25 words or fewer. Empty for under_review jurisdictions.
retrieveddateISO date the source was retrieved.
original_urlurl | emptyWhen source_url is an archived copy (web.archive.org), the agency's own address the copy was made from. Empty otherwise.
archive_captureddate | emptyWhen source_url is an archived copy, the ISO date the archive captured the page. Empty otherwise.
check_fetchedtrue | false | emptyWhether the second check could retrieve the source. Empty means the source was not checked.
check_excerpt_foundtrue | false | emptyWhether the excerpt was found word for word in the retrieved source.
check_supports_statusyes | partly | no | not_checked | emptyWhether the second check found that the source supports what the record says. Empty for under_review jurisdictions.

manifest.json

FieldTypeMeaning
versiontextRelease version, date-based (YYYY.MM.DD). It is the date of the latest verification in the data.
generated_attimestampThe same date at 00:00:00Z. It is derived from the data, not the clock, so rebuilding unchanged data gives identical files.
countsobjectJurisdictions per public status, plus total and researched. These are the counts shown on the home page and the States page.
fileslistEach released file with its size in bytes and SHA-256 checksum. manifest.json is not listed in itself.

Back to data and downloads. Also released as DICTIONARY.md.