Salaripedia
English

How much does a middle school teacher make in Waterloo?

$60,460a year

Median yearly pay for middle school teachers in the Waterloo-Cedar Falls, IA metro area. That is $29.07 an hour or $5,038 a month.

Hourly
$29.07
Vs. national median
-6%
Rank among cities
250 of 357
Jobs in the area
400
Pay range
Lowest 10%: $47,170Median: $60,460Highest 10%: $88,380
PercentileYearlyHourly
10th$47,170$22.68
25th$48,710$23.42
Median$60,460$29.07
75th$77,240$37.13
90th$88,380$42.49

Other cities in Iowa

Median yearly pay for middle school teachers.

Omaha, NE$63,750
Ames, IA$63,200
Cedar Rapids, IA$63,040
Davenport, IA$62,800
Iowa City, IA$61,380
Des Moines, IA$60,980
Sioux City, IA$57,900
Middle School Teacher salary in Iowa Middle School Teacher salary in all states

Related jobs in Waterloo

Same field, median yearly pay.

Postsecondary Teacher$103,700
Health Specialties Teacher$100,200
Instructional Coordinator$81,190
Career/Technical Education Teacher$69,920
Nursing Instructor and Teacher$64,710
Librarian and Media Collections Specialist$63,180
Elementary School Teacher$60,780
Kindergarten Teacher$60,530
Secondary School Teacher$60,440
Special Education Teacher$59,760
Salaries for every job in Waterloo, IA

Frequently asked questions

How much does a middle school teacher make an hour in Waterloo?

The median hourly pay in the Waterloo-Cedar Falls, IA metro area is $29.07 ($60,460 a year).

Do middle school teachers make more in Waterloo than the national average?

No: $60,460 against $64,370 nationally, 6% less.

How does Waterloo compare with the rest of Iowa?

The median in Iowa is $60,450, so Waterloo pays 0% more.

Where does Waterloo rank for middle school teacher pay?

250 of 357 metro areas with data.

How much does a middle school teacher make starting out in Waterloo?

The lowest-paid 10% make $47,170 or less a year; the top 10% make $88,380 or more.

Source: U.S. Bureau of Labor Statistics, Occupational Employment and Wage Statistics (OEWS): pay in May 2025, published by BLS in 2026. Hourly pay is the yearly figure divided by 2,080 hours.