California public employers · 2026 pay · 4,816 people
How much does a maintenance worker make in California public employers?
$76,988typical pay for full-year maintenance workers in 2026
$74,495 – $83,682what most people earned
Counting everyone paid during 2026, including part-year workers, typical pay was $61,636. Each employer counts with its latest published year (2025 or 2026). Typical pay rose 3.8% from the same employers' year before.
✓ Official data from 7 agencies · Matches each agency's latest release · Show sourcesHide sources
- California State Controller's Office · sco.ca.gov ↗
- California State Controller's Office · sco.ca.gov ↗
- California State Controller's Office · sco.ca.gov ↗
- City of San Jose · sanjoseca.gov ↗
- California State Controller's Office · sco.ca.gov ↗
- City of Richmond · ci.richmond.ca.us ↗
- California State Controller's Office · sco.ca.gov ↗
Where maintenance workers work
Typical pay at each employer, 2026 (everyone paid).
- San Jose235 people$87,689
- Sonoma County92 people$73,539
- City of Pasadena82 people$80,591
- City of Modesto76 people$57,684
- City of Tracy70 people$80,458
- Contra Costa County65 people$73,459
- City of Rancho Cucamonga65 people$50,816
- City of Torrance61 people$48,695
- Kern County61 people$52,616
- City of Pittsburg57 people$68,778
- City of Redondo Beach52 people$40,171
- City of Norwalk50 people$59,024
- City of Patterson49 people$54,640
- City of Cupertino47 people$97,404
- City of Oceanside46 people$67,203
- Rancho Simi Recreation and Park District45 people$21,619
- City of Victorville44 people$66,293
- City of Coronado43 people$28,311
- City of Palmdale42 people$57,501
- City of Delano41 people$30,678
- South San Joaquin Irrigation District41 people$90,586
- City of Bellflower39 people$45,410
- City of Lancaster38 people$65,825
- City of Montebello37 people$39,865
- Tulare County37 people$54,008
- City of Chula Vista35 people$61,937
- City of Chino Hills34 people$74,778
- City of Santa Maria34 people$55,823
- City of Turlock33 people$53,050
- Santa Barbara County33 people$61,256
- City of San Leandro32 people$93,282
- City of Brea32 people$48,361
- City of Gilroy30 people$75,922
- Southgate Recreation and Park District30 people$40,239
- San Diego Unified Port District29 people$74,916
- City of Moreno Valley29 people$61,800
- San Diego County Regional Airport Authority29 people$67,717
- City of Sunnyvale29 people$87,857
- City of Lake Elsinore28 people$73,217
- City of Los Banos28 people$67,216
- San Joaquin County28 people$29,754
- City of Simi Valley27 people$33,034
- Santa Clara Valley Water District27 people$122,676
- City of Oxnard26 people$72,326
- City of Alameda25 people$91,748
- City of Perris25 people$70,294
- Sacramento County25 people$28,879
- City of Lynwood24 people$34,840
- City of Hemet24 people$67,178
- City of Laguna Beach24 people$61,858
- City of Vallejo23 people$62,452
- City of Ridgecrest23 people$48,144
- City of Palm Springs23 people$69,029
- Central California Irrigation District22 people$56,551
- City of Colton22 people$71,638
- City of San Mateo22 people$85,393
- City of West Covina22 people$52,159
- City of Baldwin Park22 people$53,586
- City of El Monte22 people$80,096
- City of Pismo Beach21 people$29,936
- City of Clovis21 people$67,181
- City of Bell Gardens21 people$10,461
- Turlock Irrigation District21 people$79,647
- Richmond21 people$75,814
- City of Millbrae20 people$72,727
- Ventura County20 people$55,953
- City of Hollister20 people$82,959
- City of Santa Rosa20 people$33,112
- City of Lemoore20 people$37,123
- Glenn-Colusa Irrigation District20 people$65,359
- Chico Area Recreation and Park District20 people$32,100
- City of San Gabriel20 people$68,794
- City of West Sacramento19 people$23,382
- City of Merced19 people$29,955
- City of Concord19 people$54,810
- Placer County Water Agency19 people$81,719
- Yorba Linda Water District18 people$91,318
- City of Sacramento18 people$51,374
- Orange County Fair - DAA 3218 people$46,942
- City of Pomona18 people$10,391
- City of Pico Rivera17 people$72,072
- City of American Canyon17 people$79,357
- City of Selma17 people$48,972
- City of Fountain Valley17 people$34,204
- City of Santa Ana17 people$53,128
- Bear Valley Community Services District17 people$58,947
- Town of Hillsborough17 people$78,480
- City of Tustin17 people$68,304
- City of Compton17 people$45,443
- City of Pacific Grove16 people$72,159
- Town of Danville16 people$65,830
- City of Novato16 people$60,737
- City of Los Altos16 people$38,110
- North Highlands Recreation and Park District15 people$18,837
- City of Eureka15 people$52,127
- City of Redlands15 people$49,076
- City of La Mirada15 people$10,765
- Town of Windsor15 people$76,109
- City of Grass Valley15 people$50,106
- Merced County Association of Governments15 people$49,752
- City of Culver City15 people$69,488
- City of Mendota15 people$57,083
- Laguna Beach County Water District14 people$143,995
- City of Dixon14 people$72,828
- City of Anderson14 people$58,933
- City of Pleasant Hill14 people$78,322
- San Bernardino County14 people$87,903
- San Diego County Water Authority14 people$92,658
- City of Suisun City13 people$63,153
- City of Newport Beach13 people$35,474
- City of Hesperia13 people$59,220
- City of Capitola13 people$51,406
- City of San Jacinto13 people$67,978
- City of Avalon12 people$62,449
- City of Downey12 people$57,586
- City of Campbell12 people$84,592
- City of Menlo Park12 people$89,064
- City of Covina12 people$67,595
- City of Lathrop12 people$67,521
- City of Camarillo12 people$97,443
- City of San Pablo12 people$79,580
- City of Cypress12 people$25,857
- City of Arcadia12 people$68,192
- Sacramento Area Sewer District (SacSewer)12 people$67,741
- San Luis and Delta-Mendota Water Authority12 people$74,627
- City of Placerville12 people$55,741
- Jurupa Area Recreation and Park District11 people$60,112
- City of Crescent City11 people$45,029
- City of South El Monte11 people$65,380
- City of East Palo Alto11 people$82,967
- City of Monterey11 people$15,474
- City of Huntington Park11 people$80,358
- City of Yreka11 people$48,817
- City of Buena Park11 people$69,205
- City of Carmel-by-the-Sea11 people$68,391
- Linda County Water District11 people$58,797
- City of Los Alamitos11 people$59,286
- City of Ontario11 people$60,761
- Greater Vallejo Recreation District10 people$57,211
- South Placer Municipal Utility District10 people$73,150
- City of Orland10 people$50,348
- City of Lawndale10 people$75,632
- Reclamation District No. 10810 people$39,072
- City of Grover Beach10 people$43,066
- City of La Verne10 people$55,831
- City of Tehachapi10 people$58,493
- City of Monterey Park10 people$40,377
- City of Lomita10 people$55,340
- City of San Carlos10 people$100,842
- City of Upland10 people$26,866
- El Toro Water District10 people$85,555
- West Side Recreation and Park District10 people$6,043
- City of Sonoma9 people$80,634
- City of Placentia9 people$57,316
- City of Pacifica9 people$77,046
- Crestline County Sanitation District (San Bernardino)9 people$63,170
- City of Yucaipa9 people$65,671
- City of Milpitas9 people$125,776
- Madera Irrigation District9 people$48,728
- Placer County9 people$61,861
- City of San Marino9 people$64,706
- City of Fillmore9 people$84,565
- City of Goleta9 people$65,738
- City of Lincoln9 people$62,181
- City of National City9 people$39,824
- City of Kerman9 people$55,111
- Desert Recreation District9 people$58,181
- City of Williams9 people$62,177
- City of Gridley9 people$72,422
- City of San Bernardino9 people$65,211
- El Dorado Hills Community Services District9 people$61,528
- City of Fort Bragg9 people$53,884
- Lower San Joaquin Levee District (Merced)8 people$51,310
- City of Twentynine Palms8 people$57,038
- City of Soledad8 people$66,244
- City of Jurupa Valley8 people$49,841
- City of Rio Vista8 people$68,353
- Mammoth Community Water District8 people$58,184
- Crescent City Harbor District8 people$9,168
- City of Rosemead8 people$48,345
- West Bay Sanitary District (San Mateo)8 people$63,858
- City of California City8 people$64,427
- City of Newman8 people$34,376
- Santa Barbara Fair and Exposition - DAA 198 people$41,950
- City of Marysville8 people$55,044
- City of Winters8 people$64,020
- City of Reedley7 people$34,482
- Joshua Basin Water District7 people$59,062
- City of Ojai7 people$65,129
- City of Orange Cove7 people$45,127
- City of Piedmont7 people$73,394
- City of Westminster7 people$70,635
- Palos Verdes Library District7 people$72,882
- City of Montclair7 people$56,761
- City of Nevada City7 people$53,630
- City of Mt. Shasta7 people$53,874
- Feather River Recreation and Park District7 people$44,815
- City of Carlsbad7 people$11,392
- Tahoe Paradise Resort Improvement District7 people$2,160
- City of Scotts Valley7 people$70,233
- Truckee Sanitary District (Nevada)7 people$114,205
- City of Cudahy7 people$59,840
- Ventura Port District7 people$56,484
- City of Irwindale7 people$84,166
- City of Gustine7 people$13,432
- City of Colfax7 people$29,602
- City of Hayward7 people$125,970
- City of Gonzales7 people$66,639
- City of Moorpark6 people$47,782
- City of Corcoran6 people$49,056
- City of South Pasadena6 people$52,706
- City of Susanville6 people$42,291
- Town of Yountville6 people$89,041
- City of King City6 people$55,099
- City of Livingston6 people$52,982
- City of Riverbank6 people$50,496
- Reclamation District No. 9006 people$22,672
- City of La Puente6 people$53,493
- City of Morgan Hill6 people$107,018
- Casitas Municipal Water District6 people$78,518
- City of Glendale6 people$58,018
- Northern Inyo Healthcare District6 people$70,168
- City of Wildomar6 people$48,520
- Calleguas Municipal Water District6 people$81,742
- City of Jackson6 people$63,211
- City of Lakeport6 people$54,356
- City of Hercules6 people$118,263
- City of Larkspur6 people$93,692
- Pajaro Valley Public Cemetery District6 people$65,061
- Monterey Peninsula Airport District6 people$57,210
- State Center Community College District6 people$72,813
- Yolo County Flood Control and Water Conservation District6 people$57,431
- City of Glendora6 people$52,944
- Moss Landing Harbor District6 people$19,915
- City of Ione6 people$47,695
- City of Costa Mesa6 people$76,473
- City of Cerritos6 people$71,549
- City of Hughson6 people$50,909
- City of Dos Palos5 people$62,162
- Lake Shastina Community Services District5 people$50,072
- McKinleyville Community Services District5 people$45,247
- Sweetwater Springs Water District5 people$80,203
- City of Farmersville5 people$56,698
- City of Albany5 people$71,006
- City of Belmont5 people$88,928
- City of Half Moon Bay5 people$104,949
- Town of Tiburon5 people$81,288
- North Tahoe Public Utility District5 people$68,101
- Roseville Cemetery District5 people$55,299
- City of Solvang5 people$65,168
- Napa County5 people$85,128
- City of Rocklin5 people$12,968
- City of Escalon5 people$59,764
- Last Frontier Health District5 people$62,390
- City of Monrovia5 people$19,164
- Firebaugh Canal Water District5 people$73,421
- City of San Clemente4 people$20,840
- Big Bear Airport District4 people$77,298
- East Contra Costa Irrigation District4 people$72,412
- City of Bishop4 people$90,164
- City of Highland4 people$25,814
- City of Dana Point4 people$78,684
- City of Clearlake4 people$16,667
- City of Woodlake4 people$66,240
- City of Artesia4 people$58,448
- City of Orinda4 people$102,242
- City of Fullerton4 people$55,197
- Santa Maria Public Airport District4 people$66,865
- City of Live Oak4 people$33,886
- City of Clayton4 people$81,559
- Truckee-Donner Recreation and Park District4 people$72,320
- City of Cotati4 people$69,517
- Town of Los Altos Hills4 people$120,187
- City of Weed4 people$65,412
- Chabot-Las Positas Community College District4 people$76,675
- City of Bell4 people$56,222
- City of Adelanto4 people$74,652
- Town of Fairfax4 people$68,628
- City of Sausalito4 people$77,656
- City of Citrus Heights4 people$38,787
- City of Alturas4 people$51,517
- City of San Luis Obispo4 people$59,863
- Maxwell Irrigation District3 people$81,016
- City of Carpinteria3 people$18,921
- City of San Marcos3 people$2,101
- Corning Cemetery District3 people$57,668
- City of Corning3 people$64,801
- Georgetown Divide Public Utility District3 people$58,941
- Tehachapi Valley Recreation and Park District3 people$48,810
- City of Calimesa3 people$53,914
- Oroville Cemetery District3 people$49,701
- City of Waterford3 people$64,724
- City of Colusa3 people$51,714
- John C. Fremont Healthcare District3 people$57,980
- City of Wheatland3 people$52,486
- City of Santa Paula3 people$84,534
- Shafter Recreation and Park District3 people$38,806
- Marin Municipal Water District3 people$108,585
- Quartz Hill Water District3 people$85,928
- Dublin San Ramon Services District3 people$48,211
- City of Laguna Niguel3 people$76,079
- Bear Valley Community Healthcare District3 people$89,175
- Del Rey Community Services District3 people$44,718
- Town of Paradise3 people$66,836
- City of San Buenaventura3 people$83,564
- Town of Woodside3 people$65,113
- Marinwood Community Services District3 people$76,248
- City of Sutter Creek3 people$61,029
- City of Irvine3 people$13,226
- City of Sebastopol3 people$98,535
- City of Auburn3 people$52,831
- City of Belvedere3 people$29,213
- California Mid-Winter Fair & Fiesta - DAA 453 people$45,695
- Town of San Anselmo3 people$77,008
- Ventura County Community College District3 people$91,798
- City of Guadalupe3 people$43,793
- West Side Cemetery District3 people$60,054
- Monterey Regional Waste Management District3 people$97,827
- City of Temple City3 people$21,595
- Kern County Hospital Authority3 people$56,051
- Florin County Water District2 people$48,386
- North Humboldt Recreation and Park District2 people$8,371
- Coastside County Water District2 people$39,138
- City of Indian Wells2 people$86,620
- Pine Cove Water District2 people$67,867
- Town of Corte Madera2 people$72,004
- Pebble Beach Community Services District2 people$95,155
- Arden Park Recreation and Park District2 people$44,172
- Town of Portola Valley2 people$120,592
- Cosumnes Community Services District2 people$40,178
- Golden Hills Community Service District2 people$54,861
- Little Lake Cemetery District2 people$40,620
- City of Grand Terrace2 people$69,402
- Westside Water District2 people$33,229
- Fire House Community Park Agency2 people$15,631
- City of Rancho Palos Verdes2 people$87,833
- Antelope Valley Healthcare District2 people$60,562
- City of Walnut2 people$84,018
- City of La Habra Heights2 people$19,372
- City of Montague2 people$39,453
- City of Solana Beach2 people$69,128
- Hi-Desert Memorial Hospital District2 people$31,771
- Town of Moraga2 people$79,529
- Humboldt Bay Municipal Water District2 people$47,744
- City of Antioch2 people$26,254
- Quail Valley Water District2 people$12,030
- City of Coalinga2 people$70,333
- West Valley Sanitation District of Santa Clara County (Santa Clara)2 people$134,848
- San Bernardino International Airport Authority2 people$7,034
- City of Mountain House2 people$69,279
- City of Villa Park2 people$24,092
- Banta-Carbona Irrigation District2 people$64,599
- Midway Heights County Water District1 person$48,632
- Glenn County Fair - DAA 421 person$1,750
- City of Atascadero1 person$63,322
- Scott Valley Irrigation District1 person$3,520
- San Joaquin Valley Unified Air Pollution Control District1 person$55,356
- West Valley-Mission Community College District1 person$96,725
- City of Hawaiian Gardens1 person$55,875
- Denair Community Services District1 person$48,732
- March Inland Port Airport Authority1 person$72,797
- Templeton Community Services District1 person$30,972
- City of Seal Beach1 person$46,188
- City of Dinuba1 person$56,196
- City of Maricopa1 person$40,063
- Monterey One Water1 person$95,862
- Marina Coast Water District1 person$93,891
- Trinity County1 person$51,709
- Castroville Community Services District1 person$40,333
- Goleta Sanitary District (Santa Barbara)1 person$81,307
- Siskiyou Golden Fair - DAA 101 person$21,520
- City of Lakewood1 person$95,617
- City of Taft1 person$44,483
- City of Greenfield1 person$642
- City of La Palma1 person$70,610
- June Lake Fire Protection District1 person$26,250
- East Niles Community Services District1 person$73,239
- Greenfield Memorial District1 person$60,000
- City of Willits1 person$66,023
- Southern Inyo Healthcare District1 person$21,194
- Lassen County Water Works District No. 11 person$13,000
- City of Del Mar1 person$55,802
- Dixon May Fair - DAA 361 person$64,268
- City of Hawthorne1 person$8,790
- City of Orange1 person$58,406
- City of Sand City1 person$93,361
- City of Riverside1 person$60,099
- Seneca Hospital District1 person$59,139
- City of Santee1 person$40,130
- Rim of the World Recreation and Park District1 person$59,369
- City of Barstow1 person$15,224
- Town of Yucca Valley1 person$46,781
No employers match.
Pay by level
Levels with 5 or more people.
- Maintenance Worker - (Part-Time)10 people$4,836
- Maintenance Worker I (Part-Time)25 people$6,379
- (Part-Time) Maintenance Worker I7 people$8,502
- Maintenance Worker III - (Part-Time)8 people$8,777
- (Part-Time) Maintenance Worker29 people$10,473
- Maintenance Worker (Part-Time)11 people$19,936
- (Part-Time) - Maintenance Worker15 people$21,547
- Maintenance Worker IV - (Part-Time)33 people$21,619
- Maintenance Worker 134 people$41,013
- Maintenance Worker V5 people$41,280
- Maintenance Worker I1,531 people$52,791
- Maintenance Worker1,196 people$55,556
- Maintenance Worker IV46 people$68,369
- Maintenance Worker 35 people$73,639
- Maintenance Worker II1,466 people$74,578
- Maintenance Worker III343 people$82,553
- Maintenance Worker 235 people$87,535
- Maintenance Worker III - 409 people$125,776
Related jobs and the next step up
Same line of work at a different rank, by typical pay (full-year employees where we can tell).
- Maintenance Worker Assistant$18,999 (everyone)
- Maintenance Worker Apprentice$23,903 (everyone)
- Maintenance Worker Trainee$24,624 (everyone)
- Maintenance Worker Lead$72,520 (everyone)
- Maintenance Worker (this page)$76,988
- Senior Maintenance Worker$82,910 (everyone)
- Lead Maintenance Worker$88,480 (everyone)
- Maintenance Lead Worker$116,189
Highest-paid maintenance workers, 2026
Common questions
How much does a maintenance worker make in California public employers?
Full-year maintenance workers were typically paid $76,988 in 2026; most earned between $74,495 and $83,682. Counting all 4,816 people paid, typical pay was $61,636.
How much of the pay is overtime?
Overtime made up 6.7% of all pay for maintenance workers in 2026.
Which job titles are included?
Everyone whose payroll title is Maintenance Worker, at any level (for example "Maintenance Worker - (Part-Time)"). Part-time-schedule titles (such as "20 hours") are left out. Senior, supervising and trainee titles have their own pages.
Job titles are written out in full from the payroll's abbreviations (for example "SR CRRECTNL POLC OFCR" → "Senior Correctional Police Officer"). "Typical pay" is the median; "most earned" is the middle half. How we calculate this