Seasonal vs per-push snow removal pricing in central Minnesota: the break-even math I use for my own driveway contracts

Seasonal snow removal pricing beats per-push for the operator in a light winter and for the customer in a heavy one, so the only honest way to set it is to count plowable storms, not inches. In central Minnesota I price seasonal at about 9 to 11 of my own per-push visits, cap it at 12, bill overage at my one-time rate, and have it signed before mid-October. I priced and sold my own 2026-27 accounts this way, built the quote and agreement flow myself, and lost a four-stop account along the way. Here is the math.

Seasonal at 9-11 pushes, capped at 12: the math behind my contracts

Key takeaways

  • Count storms, not inches. St. Cloud sees about 7 plowable (2-inch-plus) storms in a normal winter, 13 in a heavy one, and 14 in the worst of the last 20.
  • Break-even is seasonal price divided by per-push price. At my $475 seasonal and $50 per push that is 9.5 visits, so a normal winter favors me and a heavy one favors the customer.
  • A 12-visit cap with overage billed at the one-time rate ($85 for me) is what keeps a 14-storm winter from erasing the season.
  • Seasonal buyers decide in September and early October. By the first forecast, the callers want per-push.
  • Put the driveway-marking job on the customer in writing. Staking 20 driveways is route time you never get back.

The short answer, and why the national price guides are useless here

Seasonal is a bet on the weather, and whoever sells the bet should know the odds. Price it at 9 to 11 of your per-push visits, cap the visits, bill overage at your one-time rate, sign it before mid-October. The rest of this post is the math and the clauses that make it hold.

Search the question and you get national guides with one per-visit range and one seasonal number for the whole country, usually with a line admitting the sample leans on states that see a few storms a year. None of them tell you how many times a plow goes out in central Minnesota, which is the only number that decides whether seasonal makes or loses you money.

Where I am speaking from: I run Revisions Unlimited, a remodeling company in central Minnesota, and plow in-town driveways with a skid steer all winter. For 2026-27 I priced three towns, signed a handful of driveways on seasonal and per-trip agreements, and watched my biggest per-trip account, four stops at $380 a run, decline the season in late September. I also build software through Style Marking, which is why my quote, agreement and sign-up run as one flow. Small sample, real money, my own numbers.

St. Cloud's real numbers: 7 plowable storms in a normal winter, 13 heavy, 14 at worst

Inches are the wrong unit. The same seasonal total can arrive as six big storms or fifteen small ones, and your cost is in the trips. So before setting a price I pulled the last 20 winters at the St. Cloud airport station from NOAA's ACIS tool and counted storms of 2 inches or more that started November through March, the ones that trip my 2-inch trigger.

Add April and the average creeps toward 8, which is why my season runs through April 15 while the cap is sized against the November-to-March count.

Three things jump out. The spread is enormous: a heavy year carries twice the trips of a normal one and seven times the lightest. The median sits below the average, so more than half of winters come in under 'average' and a seasonal price set at the average already favors the operator most years. And my 12-visit cap was exceeded in only 2 of 20 winters. That is the whole case for the hybrid below.

Pull your own station. The pattern holds across the Upper Midwest, the counts do not, and a Duluth operator should not be pricing off my presets.

The break-even math for seasonal vs per-push snow removal pricing

The formula is one line. Break-even visits = seasonal price divided by per-push price. Below that count, the seasonal customer overpaid and you won. Above it, they got a deal and you ate the trips.

Here is my standard in-town driveway for 2026-27: $50 a push on a signed per-trip agreement, or $475 for the season. Break-even is 9.5 visits. Run it against the St. Cloud scenarios with no cap:

So a flat, uncapped seasonal at 9.5 pushes makes me money in most winters and hands the customer $175 to $225 in the two heavy ones. That is a fair trade if you can carry a bad February, and a dangerous one if the seasonal money got spent in December. The heavy-winter loss is cash, not just missed revenue: a full run of two dozen driveways is 5 to 8 engine hours and roughly $120 to $320 in diesel and wear at this fall's fuel prices.

What about pricing seasonal at the median, 6 pushes, to be 'fair'? Then you lose in half of all winters, because the median is the point where half the years are worse. The premium over the median is not greed; it is the price of the customer not caring what the sky does. Nine to eleven pushes puts that premium at two to four trips, which my customers accepted without a blink and the St. Cloud subs below landed on independently.

The hybrid I actually sell: a 12-visit cap, per-push overage, and what St. Cloud subs charge

My agreement is seasonal with a cap. The $475 covers up to 12 visits between November 1 and April 15. Visit 13 and beyond bill at my one-time rate of $85, not the $50 per-trip rate, because a 14-storm winter is exactly when my hours are worth the most and the per-trip customers are calling too.

Re-run the two bad winters with the cap on:

The customer keeps most of the upside of seasonal, I give up the tail, and the cap only triggers in roughly one winter in ten. It fits in one sentence on the quote: 12 visits included, $85 each after that.

My full 2026-27 sheet, for the ratios rather than the prices: standard driveway $475 seasonal or $50 a trip; long rural driveway $625 to $750 seasonal or $75 to $95 a trip; small commercial lot $1,800 to $2,400 seasonal with $150 overage; one-time call with no agreement, $85. Paid in one payment or five monthly, November through March.

For a sanity check outside my own towns, I called St. Cloud subcontractors this fall to price a duplex with a six-stall rear pad, walks and a public sidewalk, because I sub out St. Cloud work and mark it up.

Per-push came back around $85 to $150 and seasonal around $900 to $1,600, with salt at $30 to $75 an application. Divide the middle of each range and the subs are pricing seasonal at roughly 10 to 11 pushes. Nobody mentioned storm counts, and they landed in the same spot anyway; the market did this math by feel years ago.

The sell-by clock: when contracts actually get signed

I learned this one by being late. My sales kit was finished September 20, the town-wide postcard hit about 1,900 mailboxes the first week of October, and the quote says 'sign by October 15 to lock this price.' Two weeks in, the mailer had produced a handful of sign-ups and a few more inquiries. But most of the driveways on my own street already had a plow guy, and they had him by Labor Day.

The clock as I now understand it:

The exception is commercial. On October 14 I emailed 45 businesses in town with parking lots, and the first reply came back within minutes from a youth gym that opens early and wanted the lot clear before classes. Businesses sign when the owner has a budget line and a problem, not when the calendar says so.

The other lesson was in my own app. In September the money tile read $450 per storm and I felt fine about the winter, until I admitted none of it was signed seasonal money. It was per-trip, and it only exists if it snows. When the four-stop account declined, the tile dropped to $70. I split it in two that night: contracts signed on one side, per-storm on the other. Plan the winter on the first number only.

Clauses that save your season: trigger depth, who marks the edges, salt and sidewalks

The price is half the agreement. These are the lines in mine that have already earned their place.

An earlier draft of my agreement said I would stake the driveways myself. Never put that line in a sales text.

Quote page to agreement PDF to signed, in one flow, then run the route

Everything above lives in one place for me. A customer scans the QR code on a postcard or yard sign and lands on a sign-up page that takes name, phone, address, property type and one payment or monthly. The page tags where they came from, so I know which piece of paper worked. The submission pushes to my phone with tap-to-call and drops a prospect pin on my storm map, the same setup as getting a text when someone fills out a form.

From the client sheet, one button texts them their tier, the visit cap and 'Reply YES and you're locked in.' A yes gets them the agreement PDF with the marks-the-edges clause, trigger, cap and payment schedule, and the client flips to On route. No separate proposal software or e-signature app, no retyping an address three times.

Then the route. The same app orders a storm day by road time, leads with the 'do first' stops, shows a Next-up card with Navigate, On my way and Done, counts each Done against that customer's cap, and shows the finish-by time against my 12-hour promise. That is its own post. The point here: the cap in the agreement and the counter in the app are the same number, so overage billing is a tally, not a memory.

By hand, a web form, a PDF agreement with blanks and a spreadsheet with a visits column will get you through one winter. If you would rather have the whole flow built around your route, that is what my development team and I build through Style Marking: remotely, for operators anywhere it snows, with a Minnesota team that can sit down with you in person. Send your per-push price, your seasonal number and your towns through the contact page and I will come back with a clear scope, a set price for the build and a monthly plan for just the services you use.

The quote-and-sign app stack vs one flow built for your route

A typical one-truck stack at list price: a field-service app, a proposal and e-signature tool, and a form tool. Drag the horizon to see it add up.

The SaaS stack

Field-service app, 1 user$49/mo
Proposal and e-signature tool$25/mo
Form and notification tool$15/mo
Total$89/mo

One system built for your business

BuildSet price, quoted up front
Monthly planOnly the services you use
PricingPriced to compete
$89
stack, per month
โ€”
stack, per year
โ€”
stack, over 3 years

Typical list prices; yours may differ. Want it side by side with your real stack? Ask for a free quote.

Frequently asked questions

Is it better to charge per push or seasonal for snow removal?

Offer both, and price the seasonal at 9 to 11 of your per-push visits with a cap. Seasonal favors the operator in light and normal winters and the customer in heavy ones; a 12-visit cap with overage at your one-time rate trims the tail you cannot afford. Per-push alone leaves you with weather money that disappears in a dry winter, which is why I plan my season on signed seasonal dollars only.

How much should I charge to plow a driveway in Minnesota?

There is no national number that applies here. My own 2026-27 sheet in central Minnesota is $50 a push for a standard in-town driveway, $475 for the season with a 12-visit cap, and $85 for a one-time call; long rural driveways run $625 to $750 seasonal. St. Cloud subcontractors quoted me $85 to $150 a push and $900 to $1,600 seasonal for a duplex with a pad, walks and public sidewalk. Build yours from your cost per storm and your station's storm count, not from a guide.

How many times does it snow 2 inches in a Minnesota winter?

At the St. Cloud airport station, the last 20 winters of NOAA ACIS data show about 7 storms of 2 inches or more between November and March in a normal winter, with a median of 6 and a range of 2 to 14. The heavy winters, 2013-14 and 2022-23, each had 14. Counts differ by station, so pull your own before you price.

When should snow removal contracts be signed?

In central Minnesota, seasonal contracts should be signed by October 15. That means renewals go out in August, mailers and yard signs by mid-September, and the price lock ends on the 15th. The first plowable snow usually arrives in November, and the people who call at the first forecast almost always want per-push, so treat October 15 as the end of seasonal selling, not the start.

Should snow removal contracts include salting and sidewalks?

Keep them as separate line items. Salt is per application (St. Cloud subs quoted me $30 to $75 each), and sidewalks need their own trigger because city sidewalk rules do not wait for 2 inches; the St. Cloud duplex I priced required public walks cleared within 24 hours after any snowfall ends. Bundling them into the seasonal price means you absorb every icy morning for free.

Who marks the driveway edges for snow plowing?

In my agreements, the customer does. They stake or mark driveway edges, lane edges and anything that will be hidden under snow before the first snowfall and keep the markers up all season; I follow the lines and am not responsible for unmarked edges or buried objects. If you stake 20-plus driveways yourself you lose a day of route time and own every one you miss, so put it in writing and say it in the sales text.

Want the quote-to-signed flow built for your route?

Tell me your per-push price, your seasonal number and the towns you cover. I'll come back with a clear scope for a sign-up page, agreement and visit counter built around your route: a set price for the build, then a monthly plan for just the services you use. No templates, and you talk directly with the person who builds 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