Why America has a school bus driver shortage

Across the country, school districts are struggling to fill transportation jobs. The shortage helps explain systemic problems in the labor market.

Last week, Jim Mayers, a high school composition teacher in Boston, wanted to take his 11th graders on a field trip. 

Per the usual protocol, he tried to book one of the district’s many chartered yellow school buses. 

But this time, a problem arose: There were no drivers.

To make the trip happen, the school had to hire a private party bus complete with neon lights and stripper poles.

Mayers’ tweet (Twitter/@mayersteach)

In Mayers’ home state of Massachusetts, the school bus driver shortage has gotten so severe that the governor recently deployed ~250 National Guardsmen to drive kids to school. Officials in Ohio and South Carolina are planning to follow suit.

The shortage is quickly becoming a national crisis:

  • In Texas, teachers and basketball coaches are being asked to drive buses before school
  • In Pennsylvania, some districts are paying families $300/mo to voluntarily opt out of bus pickups.
  • In New York, officials have launched a multi-agency recruitment effort targeted at 500k+ drivers with commercial licenses.

What’s driving this trend?

The Hustle talked to nearly a dozen bus drivers, school officials, and trade groups to find out.

First, a glance at the school bus market

During a typical year, 55% of all K-12 students — some 25m kids — use school buses to get to class.

Enjoying this article?

Get the Hustle’s 5-minute weekday roundup that keeps you hip to happenings in tech, business, and internet… things.

In total, the nation’s 13.8k school districts spend a collective $22B/year on transportation.

Zachary Crockett / The Hustle

Around 60% of the nation’s 500k school buses are owned and operated directly by districts, which hire their own drivers. The other 40% are owned by private transportation companies that hire their own drivers and contract their services to schools.

On the private side, 3 companies — First Student, National Express, and Student Transportation — dominate the market.

When times are good, these companies rake in serious dough: In the 2019 fiscal year, First Student reported $1.85B in revenue and $173m in profit — 15x more than Greyhound.

But right now, the wheels on the bus aren’t going round and round.

In a recent national survey, ~81% of districts reported not being able to find enough school bus drivers to fill their needs.

More than half of surveyed districts categorize this shortage as “severe” or “desperate.”

Zachary Crockett / The Hustle

School bus driver shortages aren’t a new phenomenon. At the beginning of most school years, districts and private bus companies often find themselves short-staffed by a few positions.

This year, though, many districts say they have 30%-50% fewer drivers than needed to adequately fill the demand.

The obvious driver: pandemic woes

The current shortage began to mount last year, when 95% of all K-12 schools in the US transitioned to remote learning.

Though school districts were given $13.5B in federal aid to weather the storm, many didn’t use any of the money to pay transportation contractors.

Bus companies — which rely on the 180-day school year for business — were forced to furlough or lay off their drivers en masse. These drivers went on to find other transportation jobs, and it’s been extraordinarily difficult to recruit them back.

This year, as schools have reopened, many of the remaining drivers have also quit voluntarily over health concerns.

At 56, the average school bus driver is 14 years older than the median US worker.

Zachary Crockett / The Hustle

Workers in this age bracket are 40x more likely to die from COVID-19 than those in the 18-29 age bracket.

By nature, the job also comes with a higher risk of infection:

  • Kids <12 don’t qualify for the vaccine, and cases of COVID are on the rise among children.
  • Buses are enclosed spaces, which experts say pose higher transmission risks.

From Georgia to Florida to Michigan, bus drivers are dying of COVID-19 at an alarming rate as the Delta variant sweeps the nation.

Sally Morgan, a Georgia bus driver in her late 60s, left her job at the start of this school year over safety concerns.

“I need the money, but it’s just not worth the risk,” she tells The Hustle.

Poor pay, rough schedule

Like Morgan, many bus drivers have decided that the sacrifices they make aren’t justified by their paychecks.

Bus drivers typically work a split schedule, meaning they work in 2 shifts: One in the morning, and another in the afternoon. This makes it harder for them to take on side hustles or second jobs to supplement their income.

Zachary Crockett / The Hustle

Nationally, bus drivers earn a salary of $16.80/hour. In some states, like Mississippi and Arkansas, pay averages less than $12/hour.

Before hitting the road, a new driver must obtain a commercial driver’s license — a process that can take up to 12 weeks and cost thousands of dollars.

The school year is only 180 days, and drivers usually aren’t compensated for holidays, PTO, or summers without work. Many are non-union employees who don’t receive benefits or regular pay raises.

Corey Ford, a school bus driver in Minnesota, recently quit after running some numbers.

As a driver, he earned $19/hr, which works out to a pre-tax income of ~$19.4k for 180 days of 5-hour shifts.

But during the pandemic, he found himself out of work without pay — and he realized that he made more money off of unemployment benefits (~$2k/month) than he did as a bus driver.

He was offered a $2/hour pay bump to come back but declined.

“I think [the shortage] boils down to the annual pay being far too low, particularly when coupled with the split shifts, the poor hours, the days without pay, the lack of PTO, the lack of sick days, and the summers without work,” he tells The Hustle.

Zachary Crockett / The Hustle

School bus employers have tried to sweeten the pot a little:

  • First Student, the largest school bus contractor in the US, has bumped pay to $21/hr
  • School districts in Pennsylvania, Arizona, Virginia, and many other states are offering drivers signing bonuses of up to $3k.

But workers with commercial licenses are in high demand right now. And districts are competing with tech giants on the recruitment front.

Amazon is poaching school bus drivers 

In Palm Beach, Florida, the district is short 75 drivers on its 700-bus fleet.

A major reason is that the district can’t compete with Amazon, which recently opened a 96k-sq.-ft. warehouse there, and is actively recruiting commercial delivery drivers.

The district’s bus drivers start at $14.57/hour; Amazon offers $16.50+.

Aaron Dietrich, who works with a union that represents many of Florida’s bus drivers, says the shortage there is quickly becoming an “emergency.”

“What we are seeing is the result of market pressures, plain and simple,” he told The Hustle. “People are opting for better-paying jobs, and our severely underpaid education sector in Florida is not equipped to compete.”

Zachary Crockett / The Hustle

Rodney, a bus driver in upstate New York who spoke to The Hustle anonymously over fears of retribution, says he’s thinking about jumping ship to Amazon.

The Amazon gig pays ~$22/hour — more than his current $16/hour pay — but it comes with tradeoffs.

As an Amazon Flex driver, Rodney would have to pay for his own vehicle, gas, insurance, and wear and tear. Accounting for overhead, many contract drivers for the company end up making as little as $5-10/hour.

Still, Rodney says he’d prefer to set his own schedule, work more flexible hours, and have regular year-round pay.

“A few [bus drivers] I know have left to deliver packages,” he says. “When you work it out, they pull in $15k-$20k more per year. And they don’t have to deal with — pardon my French — all the bullshit of school bus life.”

The “bullshit” he’s talking about? 

“You get kids throwing stuff at you on the bus, you get the fights, the bullying, the name-calling,” he says. “You have to be a chaperone on top of the driving. And we ain’t getting paid for that part of it.”

After a long day with 2 shifts, Rodney often has to clean his bus for several hours, scrubbing away spilled juice and scraping gum off the floor.

TOP: A school bus drives by a cornfield in Pennsylvania (Ben Hasty/MediaNews Group/Reading Eagle via Getty Images); BOTTOM: Janay Perkins, a school bus driver in Manassa, Virginia, cleans a bus at the Prince William County depot (Jahi Chikwendiu/The Washington Post via Getty Images)

Rodney’s dilemma — choosing between a low-paying but stable job and the gig economy — has become increasingly common in the American workforce.

“The real problem,” he says, “is that the system in this country just isn’t very ideal right now. Any way you cut it, it’s tough out there.”

Big picture: Not just a bus driver problem

The plight of bus drivers comes in the context of a broader national labor shortage.

Corporations across America are experiencing a moment of reckoning, as workers refuse to return to jobs in low-wage industries:

The argument has been made that what America is experiencing right now isn’t so much a job shortage as it is a shortage of good wages and worker rights.

The federal minimum wage, for instance, has been stagnant for over a decade. Adjusted for inflation, it’s been in decline for 50 years.

Zachary Crockett / The Hustle

This is a point that Jim Mayers — the Boston teacher whose school had to hire a party bus — is trying to drive home.

He’s since deleted his viral tweet and replaced it with a somber note about the “many systemic issues” that necessitated the rental in the first place.

But until the broader problems that undergird the shortage are addressed, districts around the country will continue to do whatever it takes to get kids to school.

Even if that means booking a bus with stripper poles.

Get the 5-minute roundup you’ll actually read in your inbox​

Business and tech news in 5 minutes or less​

Psst

How'd Bezos build a billion dollar empire?

In 1994, Jeff Bezos discovered a shocking stat: Internet usage grew 2,300% per year.

Data shows where markets are headed.

And that’s why we built Trends — to show you up-and-coming market opportunities about to explode. Interested?

We’re shooting our shot…

Start your mornings with The Daily.

Get the freshly baked 5-minute newsletter every day except Saturdays.

It’s filled with the most interesting stories on business, tech, and the internet.

And written for innovators of every industry. Sign up for the news that slaps.

If you don’t like it, unsubscribe any time. Privacy policy.

[email-submission-form redirect-to-home="true" button-text="Join Free" include-trends-opt-in="true" id="main-signup-form" fail-url="" success-url="https://thehustle.co/signup" default-source="thehustleco" default-campaign="home"]
<script type="text/javascript"> var onloadCallback = function() { grecaptcha.render('verify-your-humanity', { 'sitekey' : '6LdddrcZAAAAALyttpvOqiwQGwq5BNhgDz4tMQGE' }); }; function getCookieValue(a) { var b = document.cookie.match('(^|[^;]+)\\s*' + a + '\\s*=\\s*([^;]+)'); return b ? atob(decodeURIComponent(b.pop())) : ''; } function setHiddenFieldValue(wrappingDiv, searchParams, className, utmName, cookieName, defaultValue) { var el = wrappingDiv.getElementsByClassName(className)[0]; var existingVal = el.getAttribute('value'); var newVal = searchParams.get(utmName) || getCookieValue(cookieName); if ((existingVal == null || existingVal == '' || existingVal == defaultValue) && (newVal != null && newVal != '')) { el.setAttribute('value', newVal); } } function setHiddenFieldValueFromUtm( wrappingDiv, searchParams, className, utmName, defaultValue ) { var el = wrappingDiv.getElementsByClassName(className)[0]; if (el != null) { var existingVal = el.getAttribute("value"); var newVal = searchParams.get(utmName); if (newVal != null && newVal != "") { el.setAttribute("value", newVal); } } } function initForm() { var wrappingDivs = document.getElementsByClassName('email-submission'); wrappingDivs.forEach(wrappingDiv => { var sp = new URLSearchParams(window.location.search); setHiddenFieldValue(wrappingDiv, sp, 'funnel-source', 'utm_source', 'funnel_source', 'thehustleco'); setHiddenFieldValue(wrappingDiv, sp, 'funnel-campaign', 'utm_campaign', 'funnel_campaign', 'home'); setHiddenFieldValue(wrappingDiv, sp, 'funnel-medium', 'utm_medium', 'funnel_medium', ''); setHiddenFieldValue(wrappingDiv, sp, 'funnel-referral', 'ref', 'funnel_referral', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-a', 'a', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-c', 'c', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-o', 'o', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-oc', 'oc', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-e', 'e', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-f', 'f', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-r', 'r', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-t', 't', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-s1', 's1', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-s2', 's2', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-s3', 's3', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-s4', 's4', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-s5', 's5', ''); var error_message = getCookieValue('funnel_error_message'); if (error_message && error_message.trim() != '') { var error = wrappingDiv.getElementsByClassName('funnel-error')[0]; var prev_email = getCookieValue('funnel_email'); error_message = prev_email + " is not valid. Please try again"; error.innerHTML = error_message; error.style = ''; } }); if (false) { initCaptchaFormV2(); } } function initCaptchaFormV2() { var v3RecaptchaResponseEl = document.getElementById('recaptcha-response-v3'); v3RecaptchaResponseEl.parentNode.removeChild(v3RecaptchaResponseEl); var wrappingDiv = document.getElementById('main-signup-form'); var subForm = wrappingDiv.getElementsByClassName('email-submission')[0]; var captchaVersion = document.createElement('input'); captchaVersion.class = 'g-recaptcha hidden-input'; captchaVersion.type = 'hidden'; captchaVersion.name = 'g-recaptcha-response-v2'; captchaVersion.value = 'true'; subForm.appendChild(captchaVersion); var captchaEl = document.createElement('div'); captchaEl.id = 'verify-your-humanity'; subForm.appendChild(captchaEl); var captchaApiScriptEl = document.createElement('script'); captchaApiScriptEl.src = 'https://www.recaptcha.net/recaptcha/api.js?onload=onloadCallback&render=explicit'; captchaApiScriptEl.async = true; captchaApiScriptEl.defer = true; document.head.appendChild(captchaApiScriptEl); } function appendCheckboxes() { var optInDivs = document.querySelectorAll('.trends-opt-in'); optInDivs.forEach(el => { if (el.getElementsByClassName('trends-opt-in-checkbox').length < 1) { var checkbox = document.createElement('input'); checkbox.setAttribute('class', 'trends-opt-in-checkbox'); checkbox.setAttribute('type', 'checkbox'); checkbox.setAttribute('name', 'trends_opt_in'); var label = document.createElement('label'); label.setAttribute('class', 'trends-opt-in-text'); label.textContent = "Yes, I'd like to receive updates on market opportunities before they explode from Trends by The Hustle"; el.appendChild(checkbox); el.appendChild(label); checkbox.click(); } }) } window.addEventListener('DOMContentLoaded', (event) => { var funnel_email_cookie = getCookieValue('funnel_email'); if ( (true) && (funnel_email_cookie != null && funnel_email_cookie != '') ) { window.location.replace('/home'); } initForm(); if (true) { appendCheckboxes(); } }); </script> <div class="email-signup" id=main-signup-form> <div class="funnel-error" style="display:none;"></div> <form class="email-submission" action="https://cms.thehustle.co/api/v1/contacts/wordpress_create" method="post" autocomplete="email"> <div class="email-form-wrap"> <input class="funnel-source hidden-input" type="hidden" name="source" value="thehustleco"> <input class="funnel-campaign hidden-input" type="hidden" name="campaign" value="home"> <input class="funnel-medium hidden-input" type="hidden" name="medium" value=""> <input class="funnel-referral hidden-input" type="hidden" name="referral_code"> <input class="funnel-fail-url hidden-input" type="hidden" name="fail_url" value=""> <input class="funnel-a hidden-input" type="hidden" name="a" value=""> <input class="funnel-c hidden-input" type="hidden" name="c" value=""> <input class="funnel-o hidden-input" type="hidden" name="o" value=""> <input class="funnel-oc hidden-input" type="hidden" name="oc" value=""> <input class="funnel-e hidden-input" type="hidden" name="e" value=""> <input class="funnel-f hidden-input" type="hidden" name="f" value=""> <input class="funnel-r hidden-input" type="hidden" name="r" value=""> <input class="funnel-t hidden-input" type="hidden" name="t" value=""> <input class="funnel-s1 hidden-input" type="hidden" name="s1" value=""> <input class="funnel-s2 hidden-input" type="hidden" name="s2" value=""> <input class="funnel-s3 hidden-input" type="hidden" name="s3" value=""> <input class="funnel-s4 hidden-input" type="hidden" name="s4" value=""> <input class="funnel-s5 hidden-input" type="hidden" name="s5" value=""> <input class="funnel-success-url hidden-input" type="hidden" name="success_url" value="https://thehustle.co/signup"> <input id="recaptcha-response-v3" class="g-recaptcha hidden-input" type="hidden" name="g-recaptcha-response" value=""> <input class="signup-email" type="email" name="email" placeholder="Your email address" required autocomplete="email"> <input class="email-submit" type="submit" value="Join Free"> </div> <div class="trends-opt-in"></div> <div submit-success> <template type="amp-mustache"> <p class="c-message c-message--success">Thank you for subscribing.</p> </template> </div> <div submit-error> <template type="amp-mustache"> <p class="c-message c-message--failed">Your submission failed. Please try again!</p> </template> </div> </form> </div>