I built my own snow removal app instead of paying per truck: what a central Minnesota storm day actually needs

A snow removal app for a one-to-three-truck contractor has to do five things: put tonight's stops in the fastest road order, let you flag the stops that go first, show you one stop at a time with Navigate, On my way and Done, re-plan from wherever you are when the snow keeps coming, and tell you whether you will finish inside the window you promised. Route4Me, Upper and Jobber each do part of that for a monthly seat fee, and none of them were written by someone who plows. I run a remodeling company in central Minnesota, plow in town with a Bobcat through the winter, and in September 2026 I built my own route app instead of renting one. This is what it does, what it replaced, and the geocoding bug that nearly put a driveway in the wrong county.

One route app, built around your storm day, not a delivery van.

Key takeaways

  • One machine honors about 20-24 residential driveways inside a 12-hour window; past that you need a second machine or a sub, not a better app.
  • Five features earn their place on a storm day: fastest road order, 'do first' stops, a one-stop-at-a-time card, re-plan from GPS, and a finish-by time checked against your promise.
  • Per-seat route software runs $50 to $199 a month, every month; hold any quote for a route app built for your trucks, build price plus the monthly plan, against three winters of it.
  • Geocoders will put 'County Rd 10' in the wrong county. Normalize street names, run two geocoders, and throw out anything outside your service area.
  • Count per-storm clients as weather money, not signed money. My app shows the two totals on separate tiles because I fooled myself once.

The short answer: five things, and none of the per-seat tools were built by a plower

Here is the whole list. If an app does these five things well, the rest is decoration.

  1. Storm-day ordering. Every active client, ordered by real road time from your shop, not straight-line distance.
  2. 'Do first' stops. The daycare lot, the business that opens at six. They lead; everything else optimizes behind them.
  3. A Next-up card. One stop on the screen with four buttons: Navigate, On my way, Done, Skip.
  4. Re-plan from where you are. For skipped stops, mid-storm sign-ups, and the first six driveways with three new inches on them.
  5. A finish-by estimate. Total hours for the route, checked against the hours you promised, with a cushion.

When I priced the tools that rank for this search, the gap was obvious. Upper starts at $50 per user per month ($40 on annual billing) and advertises 250 stops per route and 10 driver profiles, which are numbers for a parcel van, not a 22-stop plow route. Route4Me starts at $199 a month with recurring routing sold as a paid add-on. Jobber is $49 a month for one user on Core, $139 on Connect, plus $29 per extra user, and routing is one row in a long feature list.

None of them know what a service promise is, none split seasonal money from per-storm money, and none have a 'do first' flag that survives a re-plan. They are delivery software with snow listed as a vertical.

Mine is a private web app pinned to my iPhone home screen, so it works like a snow plowing app for iPhone without the App Store. It took two weekends in September.

What a storm day looks like at 20-60 driveways

Do the math first, because the math decides what the app has to show you.

In my shop a standard driveway runs 8 to 10 minutes in the skid steer at a 2-4 inch event. Between stops in town I budget road distance at about 9 miles an hour plus a minute to position, which comes to 2 to 4 minutes a hop.

Depth multiplies the on-site number, not the drive. My app uses the multipliers I set after watching my own storms: 4-8 inches is 1.4x, 8-12 inches is 2x, a foot or more is 2.5x.

Run it for 22 stops. At 2-4 inches that is 220 minutes on site plus about 66 moving, call it 4.8 hours. At 8-12 inches the on-site part doubles and the same list is 8.4 hours. Add the 20 percent cushion I draw on every plan and you are at 10 hours against a 12-hour promise. That is the ceiling: one machine honors about 20 to 24 residential driveways inside 12 hours, and a commercial lot counts as three or four driveways.

Past the ceiling you need a second machine or a sub, not a better app. I plow central Minnesota, Avon and Freeport myself and hand St. Cloud work to a plow subcontractor rather than promise what one Bobcat cannot deliver.

Re-runs are the part the brochures skip: when it is still coming down at hour six, the first stops have fresh snow on them and the order matters twice, which is why re-plan from GPS is on my short list.

For how often this happens: about 7 plowable storms in a normal St. Cloud winter, 14 in the worst two of the last 20 (NOAA ACIS, 2"+ storms Nov-Mar), and what that does to seasonal versus per-push pricing is its own post.

One honest note on scale: my own first-winter list is smaller than that ceiling and still filling from October's postcards; I sized the app for the ceiling, not for my current list.

What is dispatching by hand costing you?

Drag the sliders to match your business. The numbers update instantly.

—
hours a year on it
—
what it costs you a year
—
per month

Assumes 50 working weeks. Your numbers, not ours — nothing here is sent anywhere. A system built for your business has a set build price and a monthly plan for just the services you use: get a free quote.

The five features I actually use on a storm day

Storm-day ordering

Tap Start storm and the app pulls every client marked On route, asks an open-source routing engine (OSRM) for road time between every pair, and orders them fastest-first from my home base. Straight-line ordering looks fine on a map and sends you across the tracks three times.

'Do first' stops

Flagged stops go to the front in their own best order; the rest optimize behind them. A gym in town that signed up this fall wants the lot clear before morning classes, and a retired neighbor I plow for free needs her car out early. They lead every storm no matter where they sit on the map.

The Next-up card

One stop, big type, four buttons. Navigate opens Apple Maps to the pin. On my way opens a prefilled text. Done stamps the time against this storm and counts a push for that client. Skip sends the stop to the end and the route re-orders.

Done taps queue on the phone when I lose signal between towns and replay when it returns, and every write checks a version tag on the server so a Done tapped on bad signal cannot overwrite the one I tapped ten seconds later.

Re-plan from GPS

Skipped a stop, added a sign-up mid-storm, or the snow restarted? Re-plan recomputes the order from where I am standing. By default the route starts from home base; a plan built from a bad GPS fix is worse than no plan.

The finish-by estimate

Every plan shows an arrive time per stop, the return-home leg, a Leave at time, the 20 percent cushion, and the finish-by time next to the 12-hour promise. Prospects sit on the same map as purple pins with 'adds about 14 minutes to a storm' beside each one, which is how I decide whether the next sign-up gets a yes or a 'next season'.

Keeping track of customers (and texting them) without a CRM

The Clients tab is grouped by road. Each client has a status (Prospect, Call back, On route, No), a plan (Seasonal, Per trip, One-time), a price, paid, owed, and a push count against the 12-visit cap in my agreement.

Two money tiles sit at the top. Contracts signed is seasonal and prepaid money only. Each storm is the sum of per-push prices. In September I looked at a single tile that said $450 and felt good about the season until I admitted none of it was signed; it only shows up if it snows. Count per-trip clients as revenue and you will plan a winter you have not sold.

A sign-up form that feeds the list

The public page at revisionsunlimited.com/snow takes name, phone, address, property type and how they want to pay. The QR codes on my postcards, yard signs, flyers and business cards each carry a source tag, so I know which piece of paper a lead came from. A submission lands on the storm map as a New online prospect and pushes to my phone with a tap-to-call button. From the client sheet, Text their price opens a quote text that ends with 'Reply YES and you're locked in.'

Texting 'on my way' without a texting platform

The On my way button opens my phone's Messages app with the client's number and the message already typed: who I am, that they are next, about how many minutes out. My thumb sends it. No texting platform, no carrier registration, no per-message fee.

The trade-off is that nothing is automatic. A done-with-photo text sent without you means a Twilio integration, which is exactly where registration and per-message costs show up. For a route of 24, the thumb wins.

One line lives in both the client sheet and the agreement: the customer marks their own driveway edges and obstacles before the first snow and I follow the lines, for reasons covered in the pricing post.

The geocoding trap and the GPS gotchas

The routing took an afternoon. The addresses took a week.

I typed a client's address as 'County Rd 10, 56307' and the pin landed on a County Road 10 near the Twin Cities, 90 miles from the driveway. 'First St' matched a First Street in another town. The geocoder matched the street name confidently and treated the zip code as a suggestion.

Four fixes, in the order I added them:

Then the GPS problems, which were mine.

The app showed no location at all for a day. The cause was a security header on my own website that disabled geolocation site-wide, a line I had added months earlier and forgotten. Allowing location for my own pages fixed it in one commit.

Second, an iPhone with Precise Location off hands you a fix that can be 250 meters or worse. The app now refuses any fix worse than 250 meters, starts from home base instead, draws the accuracy circle on the start marker, and tells me how to turn Precise Location back on.

Route4Me, Upper and Jobber vs one built for your route: three winters

Prices are from the vendors' own pages in October 2026, linked above, and assume you pay year-round, which most owners do because nobody cancels in April.

Honest guidance, since I sell builds: five or more trucks with a dispatcher, live driver tracking and proof-of-service photos: buy Route4Me or Upper. Snow as one service inside a landscaping company that needs invoicing, crew scheduling and quotes: Jobber is a reasonable rental and routing comes along.

One to three machines, a customer list that fits on a phone, and a storm-day card that is the job: have one built around your route. Add up three winters of per-seat software and hold my quote against it: the build price plus three winters of the monthly plan, not the build price alone. If you want the rest of the business on the same phone, I wrote about building a whole business OS as an iOS app and what small Minnesota businesses automate first.

How to get one built for your route

Three things you can do this week without hiring anyone, and the same three I need if you want me to build it.

  1. Write your promise in one line. Trigger depth, hours after the snow stops, visits per season, the price of an extra visit. Mine is 2 inches, 12 hours, 12 visits.
  2. List every stop with two numbers. Minutes on site at 2-4 inches and a Yes or No in a 'first' column. Then drive the list once in plow order and time the loop. That is your real capacity; compare it to the ceiling above.
  3. Split signed money from weather money. Seasonal and prepaid in one column, per-push in another. Plan the winter on the first column only.

If you would rather have the app than the spreadsheet, send me those three things through the contact page. You get a clear scope, a set build price quoted up front, and a monthly plan for just the services your route uses. Our development team builds it around your trucks, your towns and your promise. The storm-day card, the client list and the sign-up form are the core; texting, invoicing and a second-machine split are options we price in or leave out.

More on how I work with contractors and trades, and the automation services and AI automation pages cover what else I have wired.

Frequently asked questions

Is there an app for snow plowing businesses?

Yes, but most of what ranks is general route software (Route4Me, Upper) or field-service software (Jobber) with snow listed as one vertical, and none of them were built by someone who plows. For one to three trucks you need five things: fastest road order, 'do first' stops, a one-stop-at-a-time card, re-plan from GPS, and a finish-by time checked against your service promise. You can rent one of those tools per seat or have a route app built around your own route; mine is a web app pinned to my iPhone home screen.

How do snow plow companies keep track of their customers?

Small operators mostly use a spreadsheet and the contacts on their phone; bigger outfits use Jobber or a CRM. What matters is four fields per customer: status (prospect, call back, on route, no), plan (seasonal, per storm, one-time), paid versus owed, and how many pushes they have used against your visit cap. Keep signed seasonal money and per-storm money in separate totals so you do not plan a winter you have not sold.

How do I plan a snow plow route?

Start from your shop, put the stops that must be done first at the front, then let a road-time routing engine order the rest; never order by straight-line distance. Give every stop a minutes-on-site number at 2-4 inches and multiply it for deeper snow. Add 20 percent and check the total against your service window. If it does not fit, split the route or add a sub; do not plan on driving faster.

How many driveways can one plow truck do in a storm?

In my experience about 20 to 24 residential driveways per machine inside a 12-hour window at a typical 2-4 inch event, using 8 to 10 minutes per driveway and 2 to 4 minutes between stops in town. An 8-12 inch storm roughly doubles the on-site time, so the same list takes 8 to 10 hours. Count a commercial lot as three or four driveways.

How do I let customers know when I'm on my way to plow?

The simplest way is a prefilled text from your own phone. My app's On my way button opens Messages with the customer's number and the message already typed, so there is no texting platform, no carrier registration and no per-message cost. If you want texts sent automatically, with a done-with-photo message for example, that is a Twilio integration with 10DLC registration and a small fee per message.

Is there free snow plow route software?

Partly. Google Maps takes up to 10 stops and Apple Maps up to 15, but you order them yourself. Route4Me's driver app has a free 10-stop plan and Upper offers a trial. None of them keep your customer list, your visit cap or a finish-by estimate. The building blocks I used, OpenStreetMap routing, the Census geocoder and free push notifications, cost nothing; what you pay for is the build and a monthly plan for hosting and support.

Want a route app built for your trucks?

Tell me how many stops you run, the window you promise, and the towns you cover. You'll get a clear scope with a set build price, quoted up front, and a monthly plan for just the services your route uses, priced to compete with the per-seat route apps. You talk directly with the people who build it.

Jacob Fischer
Jacob Fischer

Founder, Style Marking · owner, Revisions Unlimited. Jacob builds custom websites, apps and operations systems for small-business owners — and runs a remodeling company on the same tools he builds for clients. Every post here comes from systems he has actually shipped.

Related reading