California Teacher Salary Dashboard
The California Teacher Salary Dashboard is a public-data analytics dashboard built on California's annual teacher-salary release, CDE Form J-90. The state publishes the complete dataset every year, but it arrives as a raw Microsoft Access database that most people cannot open, filter, or compare. This project ingests that release and normalizes it into one consistent model that anyone can browse and read with assistive technology, with district-to-district comparison built in. The product has five views, a statewide overview, a searchable district directory, per-district salary schedules with the full step-and-lane detail, a side-by-side comparison, and a salary explorer. Every figure stays aggregate and institution-level, with small reporting units suppressed and no individual teacher records.
- Role
- Product Manager
- Type
- Public-data analytics dashboard
- Status
- Complete
- PRD
- Charter
- User Guide
- Skeletal App Demo
Problem
- California publishes the complete teacher-salary dataset every year, but it arrives as a raw Microsoft Access database.
- Most people cannot open a file like that, much less filter or compare it.
- Comparing pay across districts, or reading a full step-and-lane schedule, took real technical effort for the public and researchers.
- In very small districts, a summary figure could come close to one person's compensation, so the raw figures needed careful handling.
Solution
- Scoped an ingestion and normalization workstream that turns the raw release into one consistent model.
- Designed five views so a reader can browse the overview, find a district, read a schedule, and compare side by side.
- Defined small-reporting-unit suppression so per-district figures below the floor are removed and shown as suppressed.
- Set accessibility and data privacy as acceptance-level requirements, with each chart carrying a data-table alternative.
Results
- Turned a raw state database into a dashboard anyone can browse and read with assistive technology.
- Gave the public district-to-district salary comparison built in.
- Made full step-and-lane schedules readable without opening a database.
- Suppressed figures for small reporting units so no summary can reveal one person's pay.
What you can explore here
- The skeletal dashboard below is an interactive prototype that renders a static, pre-baked snapshot of the public data. The overview, district directory, comparison, explorer, and about views are all present, with accessible charts that each carry a data-table alternative and never rely on color alone. The search, county and type filters, column sorting, comparison selectors, and the salary explorer all work client-side over the inlined snapshot; there is no backend, no login, and no data collection.
- Small-reporting-unit suppression is applied in the data itself. For any district below the reporting-unit floor, the per-district salary figures are removed from the shipped snapshot and shown as "suppressed, small reporting unit," because in a very small district a summary figure could equal one person's compensation. Individual superintendent and principal salary fields from the source are excluded entirely.
Skeletal App Demo
Source: California Department of Education, Form J-90 Certificated Salaries and Benefits, 2024-2025 school year (published November 2025). https://www.cde.ca.gov/ds/fd/cs/ An independent portfolio project built from public data. It is not affiliated with, sponsored by, or endorsed by the California Department of Education.
Statewide
California teacher salary overview
Headline figures across 697 reporting districts that meet the reporting-unit floor, from 776 total reporting districts in the 2024-2025 snapshot. Source: California Department of Education (CDE), Form J-90, 2024-2025 school year.
- Statewide average $96,422 Median district average $96,242
- Highest average district $181,322 Mountain View-Los Altos Union (Santa Clara)
- Lowest average district $54,108 Big Valley Joint Unified (Lassen)
- Districts reporting 776 697 meet the reporting-unit floor; 79 suppressed
- Total teacher FTE 263,018 Across all reporting districts
Average beginning salary $60,558
Average highest salary $122,058
Show data table
| District | County | Average salary |
|---|---|---|
| Mountain View-Los Altos Union | Santa Clara | $181,322 |
| St. Helena Unified | Napa | $169,801 |
| Fremont Union High | Santa Clara | $158,950 |
| Santa Clara Unified | Santa Clara | $149,175 |
| Menlo Park City Elementary | San Mateo | $147,525 |
| Palo Alto Unified | Santa Clara | $145,938 |
| Laguna Beach Unified | Orange | $143,700 |
| Montecito Union Elementary | Santa Barbara | $141,414 |
| Los Gatos-Saratoga Union High | Santa Clara | $141,136 |
| Los Gatos Union Elementary | Santa Clara | $141,021 |
Show data table
| County | Districts | Mean district average |
|---|---|---|
| Napa | 3 | $138,706 |
| Santa Clara | 28 | $121,368 |
| Marin | 12 | $113,580 |
| Orange | 28 | $113,249 |
| Riverside | 21 | $112,261 |
| San Mateo | 18 | $111,299 |
| Imperial | 13 | $110,099 |
| Alameda | 17 | $109,280 |
Show data table
| Salary band | Districts |
|---|---|
| $40k-50k | 0 |
| $50k-60k | 4 |
| $60k-70k | 20 |
| $70k-80k | 96 |
| $80k-90k | 127 |
| $90k-100k | 174 |
| $100k-110k | 154 |
| $110k-120k | 76 |
| $120k-130k | 27 |
| $130k-140k | 5 |
| $140k-150k | 11 |
| $150k-160k | 1 |
| $160k-170k | 1 |
| $170k-180k | 0 |
| $180k-190k | 1 |
Horizontal axis: beginning salary. Vertical axis: highest salary.
Show data table
| District | Beginning | Highest |
|---|---|---|
| Saddleback Valley Unified | $30,000 | $133,169 |
| Templeton Unified | $46,688 | $107,678 |
| Piner-Olivet Union Elementary | $48,872 | $126,391 |
| Fortuna Union High | $50,096 | $102,137 |
| Susanville Elementary | $51,125 | $95,106 |
| Upper Lake Unified | $51,883 | $114,383 |
| Fallbrook Union Elementary | $52,921 | $129,725 |
| Brea-Olinda Unified | $53,617 | $128,193 |
| Ballico-Cressey Elementary | $54,349 | $99,485 |
| Linden Unified | $55,108 | $113,502 |
| Ripon Unified | $56,000 | $110,709 |
| Anderson Valley Unified | $56,585 | $97,234 |
| Chico Unified | $56,997 | $121,381 |
| Lassen View Union Elementary | $57,716 | $109,390 |
| Redding Elementary | $58,469 | $107,666 |
| San Pasqual Union Elementary | $58,859 | $117,409 |
| John Swett Unified | $59,264 | $117,249 |
| Oroville City Elementary | $59,796 | $114,343 |
| National Elementary | $60,297 | $129,486 |
| Bennett Valley Union Elementary | $60,837 | $112,560 |
| Mcswain Union Elementary | $61,142 | $120,159 |
| Shiloh Elementary | $61,594 | $107,573 |
| Perris Elementary | $62,325 | $144,477 |
| Nuview Union Elementary | $62,950 | $144,050 |
| Walnut Valley Unified | $63,690 | $143,470 |
| Ross Valley Elementary | $64,142 | $117,301 |
| Orange Unified | $65,014 | $136,010 |
| Long Beach Unified | $65,703 | $137,718 |
| Pixley Union Elementary | $66,756 | $117,449 |
| San Bernardino City Unified | $67,927 | $136,734 |
| Roseville Joint Union High | $69,263 | $134,857 |
| Hacienda La Puente Unified | $70,168 | $134,578 |
| Burton Elementary | $71,538 | $137,082 |
| Beverly Hills Unified | $74,743 | $142,810 |
| Sunnyvale | $80,296 | $150,834 |
Directory
Districts
All 776 reporting districts. Search, filter by county or type, sort any column, and limit to districts with a full salary schedule. Districts below the 10-FTE reporting-unit floor are listed and counted, but their salary figures are suppressed. Source: California Department of Education (CDE), Form J-90, 2024-2025 school year.
Showing 1 to 25 of 776 districts.
| Full schedule | |||||||
|---|---|---|---|---|---|---|---|
| Abc Unified | Los Angeles | Unified | 740 | $65,755 | $103,886 | $127,886 | Summary only |
| Acalanes Union High | Contra Costa | High school | 292 | $64,303 | $114,940 | $131,169 | Summary only |
| Ackerman Elementary | Placer | Elementary | 29 | $56,966 | $86,172 | $111,477 | Summary only |
| Adelanto Elementary | San Bernardino | Elementary | 366 | $65,646 | $108,309 | $138,368 | Summary only |
| Alameda Unified | Alameda | Unified | 488 | $68,272 | $100,649 | $124,990 | Summary only |
| Albany City Unified | Alameda | Unified | 226 | $61,136 | $97,728 | $120,016 | Summary only |
| Alhambra Unified | Los Angeles | Unified | 847 | $54,265 | $110,564 | $148,983 | Summary only |
| Alisal Union Elementary | Monterey | Elementary | 344 | $57,111 | $97,484 | $129,403 | Summary only |
| Allensworth Elementary | Tulare | Elementary | 7 | Suppressed - small reporting unit | Summary only | ||
| Alpaugh Unified | Tulare | Unified | 19 | $61,261 | $78,385 | $103,350 | Summary only |
| Alpine County Unified | Alpine | Unified | 8 | Suppressed - small reporting unit | Summary only | ||
| Alpine Union Elementary | San Diego | Elementary | 80 | $59,701 | $91,484 | $122,820 | Summary only |
| Alta Loma Elementary | San Bernardino | Elementary | 276 | $56,659 | $98,353 | $126,233 | Summary only |
| Alta Vista Elementary | Tulare | Elementary | 27 | $59,926 | $94,653 | $122,120 | Summary only |
| Alum Rock Union Elementary | Santa Clara | Elementary | 457 | $69,440 | $105,419 | $129,227 | Summary only |
| Alview-Dairyland Union Element | Madera | Elementary | 19 | $54,956 | $81,642 | $102,601 | Summary only |
| Alvord Unified | Riverside | Unified | 705 | $67,828 | $124,525 | $147,670 | Summary only |
| Anaheim Elementary | Orange | Elementary | 796 | $65,813 | $112,102 | $132,436 | Summary only |
| Anaheim Union High | Orange | High school | 1,174 | $63,781 | $119,943 | $139,964 | Summary only |
| Anderson Union High | Shasta | High school | 82 | $50,399 | $90,453 | $116,784 | Summary only |
| Anderson Valley Unified | Mendocino | Unified | 32 | $56,585 | $70,420 | $97,234 | Summary only |
| Antelope Elementary | Tehama | Elementary | 40 | $48,223 | $84,056 | $103,048 | Summary only |
| Antelope Valley Union High | Los Angeles | High school | 843 | $50,398 | $99,486 | $133,882 | Summary only |
| Antioch Unified | Contra Costa | Unified | 763 | $63,441 | $108,640 | $131,859 | Summary only |
| Apple Valley Unified | San Bernardino | Unified | 715 | $60,367 | $95,886 | $136,253 | Summary only |
No districts match your filters. Clear the search or filters to see more.
District detail: San Diego City Unified
Unified district, San Diego County. Full salary schedule (first 14 steps shown).
- $58,609Beginning
- $105,672Average
- $124,050Highest
- 5,589Teacher FTE
| Step | BA | BA+36 OR MA | BA+60 OR BA+54+MA | BA+72 OR MA+66 | BA+90 OR MA+84 |
|---|---|---|---|---|---|
| 1 | $58,609 | $62,185 | $65,763 | $69,338 | $72,917 |
| 2 | $60,809 | $64,387 | $67,963 | $71,541 | $75,116 |
| 3 | $63,099 | $66,674 | $70,252 | $73,828 | $77,406 |
| 4 | $65,481 | $69,059 | $72,635 | $76,213 | $79,789 |
| 5 | $67,958 | $71,534 | $75,112 | $78,687 | $82,265 |
| 6 | $70,532 | $74,110 | $77,686 | $81,264 | $84,842 |
| 7 | $73,213 | $76,791 | $80,366 | $83,945 | $87,520 |
| 8 | $75,997 | $79,575 | $83,151 | $86,729 | $90,305 |
| 9 | $78,891 | $82,469 | $86,047 | $89,623 | $93,201 |
| 10 | $81,903 | $85,479 | $89,057 | $92,633 | $96,211 |
| 11 | $85,034 | $88,609 | $92,188 | $95,766 | $99,341 |
| 12 | $85,034 | $91,868 | $95,446 | $99,022 | $102,600 |
| 13 | $85,034 | $91,868 | $98,835 | $102,413 | $105,988 |
| 14 | $85,034 | $91,868 | $98,835 | $105,934 | $109,512 |
- BA
- BA+36 OR MA
- BA+60 OR BA+54+MA
- BA+72 OR MA+66
- BA+90 OR MA+84
Horizontal axis: step (1 to 14, years of experience). Vertical axis: salary. Each lane is one continuous line, labelled at its right end and keyed above; full values are in the schedule table above.
Side by side
Compare districts
Choose two to four full-schedule districts to compare over their common steps on the base lane. Lane labels vary by district, so comparisons use the first (base) lane and common steps only. Source: California Department of Education (CDE), Form J-90, 2024-2025 school year.
Comparing 3 districts over 12 common steps.
| Step | Los Angeles Unified | San Diego City Unified | Fresno Unified | Difference |
|---|---|---|---|---|
| 1 | $60,420 Highest | $58,609 Lowest | $59,054 | $1,811 |
| 2 | $60,420 Lowest | $60,809 | $62,597 Highest | $2,177 |
| 3 | $60,420 Lowest | $63,099 | $66,141 Highest | $5,721 |
| 4 | $61,471 Lowest | $65,481 | $69,684 Highest | $8,213 |
| 5 | $64,641 Lowest | $67,958 | $71,774 Highest | $7,133 |
| 6 | $65,314 Lowest | $70,532 | $71,774 Highest | $6,460 |
| 7 | $67,333 Lowest | $73,213 Highest | $71,774 | $5,880 |
| 8 | $69,599 Lowest | $75,997 Highest | $71,774 | $6,398 |
| 9 | $72,801 | $78,891 Highest | $71,774 Lowest | $7,117 |
| 10 | $76,034 | $81,903 Highest | $71,774 Lowest | $10,129 |
| 11 | $85,034 Highest | $59,999 | $85,034 | |
| 12 | $85,034 Highest | $63,599 | $85,034 |
Salary explorer
Who pays most at a chosen step and lane
Pick an experience step and an education lane, then rank the full-schedule districts by salary at that point. Source: California Department of Education (CDE), Form J-90, 2024-2025 school year.
Ranking 12 districts at step 10, First lane (base column).
Ranked list
- Fremont Unified $108,378
- Riverside Unified $91,110
- Long Beach Unified $89,894
- Capistrano Unified $88,887
- San Diego City Unified $81,903
- Sweetwater Union High $79,976
- Oakland Unified $78,360
- San Bernardino City Unified $77,257
- Kern Union High $76,492
- Los Angeles Unified $76,034
- Irvine Unified $72,514
- Fresno Unified $71,774
About this data
Source, terms, and limitations
Source
Source: California Department of Education, Form J-90 Certificated Salaries and Benefits, 2024-2025 school year (published November 2025). https://www.cde.ca.gov/ds/fd/cs/
An independent portfolio project built from public data. It is not affiliated with, sponsored by, or endorsed by the California Department of Education.
Key terms
- Step
- Years of experience on the salary schedule.
- Lane / column
- Education level (for example bachelor's, bachelor's plus units, master's). Labels vary by district.
- Beginning
- The minimum salary on the schedule.
- Average
- The FTE-weighted average salary across schedule positions.
- Highest
- The maximum salary on the schedule.
- Teacher FTE
- Full-time-equivalent teacher count on the schedule.
Coverage and limitations
- The J-90 survey is voluntary, so not every district reports. Not-reported values are labeled, never shown as a misleading zero.
- Lane labels and step structures differ by district, so cross-district comparisons are approximate and use common steps only.
- Figures are a fixed 2024-2025 snapshot and will age until the next annual release.
Privacy
The dashboard presents aggregate, institution-level statistics and published salary schedules only, with no individual teacher records or identifiers. Districts below the 10-FTE reporting-unit floor have their per-district salary figures suppressed in the data itself, because in a very small district a summary figure could equal one person's compensation. Individual superintendent and principal salary fields in the source are excluded from the data entirely.