Snow Removal Contract: Per Push vs Seasonal, Priced Out

Snow Removal Contract: Per Push vs Seasonal, Priced Out

Snow contracts get signed in September and October, which means the decision that sets your entire winter margin is made before a single flake falls. The choice is old and well documented: per push, per inch, time and materials, or seasonal. What is not documented — not on a single page-one result we could read — is the number that decides which one you should sign.

We read the five reachable green-industry pages ranking for snow removal contract on 2026-09-07. Between them they describe the contract types clearly and correctly. Not one publishes a dollar figure, a per-push price, a seasonal price, or an event count. The two template properties that would at least hand you the document both returned HTTP 403 to our fetch, so they are excluded here rather than described from a search snippet.

So this post does the part that is missing. We price one property four ways, using a cost book we have carried unchanged across our leaf removal, owner salary and profit margin posts, and then we do the thing the seasonal contract actually is: a bet on how many times it will snow.

What page one actually tells you

Every source below was fetched and read in full on 2026-09-07, not characterised from its search snippet.

SourceDatedContract types namedTrigger depthAny dollar figure?
BrightView, "Snow Removal Contracts 101"Dec 2017Time & materials, per inch, per push, fixed feeExample tiers only (1–3", 3–5")No
Schill Landscaping, "3 Types of Commercial Snow Plowing Contracts"Jan 2024Per push/per event, seasonal (2–3 yr), full-service seasonal2" trigger; tiers 2–4", 4–6", 6–8"No
Level Green Landscaping, "Seasonal Snow Removal Contracts"UndatedSeasonal vs time & materialsNoneNo
Granum, "How to Bid Snow Removal Contracts"Updated Sep 2025Per event, per inch, seasonalNoneNo
ALCC, "8 things your snow contract should cover"Aug 2013— (clause checklist)Discussed, not specifiedNo

Two of the five are older than most of the trucks doing the work: BrightView's guide is from 2017 and the ALCC checklist from 2013. The most recent of the five, Granum's bidding guide updated in September 2025, is titled around how to bid and still contains no rate, no price and no example.

None of this makes those pages wrong. The contract taxonomy they give you is accurate, and the ALCC clause list is genuinely good. It just means that after reading every one of them you know the four shapes a snow agreement can take and you still cannot answer the only question that matters in September: at what number of storms does the seasonal contract I am about to sign stop making money?

Contractor's pickup with a front plow clearing a lit commercial parking lot before dawn during a snow removal contract service

The four structures, honestly

All four are legitimate. They differ in exactly one respect: who carries the weather.

StructureHow it billsWho carries the weather riskBest when
Per push / per eventA fixed price each time you service the site, usually above a stated trigger depthThe clientYou are new to the property, or the site's snowfall history is unknown to you
Per inchTiered price by accumulation band (2–4", 4–6", 6–8", and so on)The client, with your cost better matched to the workBig storms are common and a flat per-push price would underpay you on them
Time and materialsCrew hours plus equipment hours plus salt usedThe client, fullySites with unpredictable scope; hardest to sell, easiest to defend
Seasonal / fixed feeOne price for the winter, often billed in equal monthly instalmentsYouYou have real local snowfall history and a cap in the contract

Property managers like seasonal contracts because they turn a variable into a budget line, and that preference is the whole reason the structure exists. Schill sells them as two-to-three year agreements; Level Green describes five-year terms with a rebate clause if the winter is unusually light. Both of the seasonal advocates on page one quietly concede the same thing by structuring it that way — the multi-year term is not a sales convenience, it is the risk control. Over several winters the event counts average out. Over one winter they emphatically do not.

This post is about contract structure and the risk it moves. For the cost side — what a push is worth in the market, and how to build the number up from a site survey — see the average cost of snow plowing and the commercial snow removal pricing calculator. The two questions are separate and both have to be answered before you sign.

The number nobody publishes: how many plowable storms is a season?

The Minnesota DNR State Climatology Office keeps a count of Twin Cities snow events by size, over a 120-season record running from 1891 to 2025. It is the cleanest public answer to the question a seasonal contract is a bet on.

Event sizeAverage days per seasonMost in one seasonFewest in one season
1.0" or more14.3273
2.0" or more (plowable)7.6161
4.0" or more2.780
6.0" or more1.250
8.0" or more0.540

Read the plowable row again. The average season brings 7.6 events at or above the 2-inch trigger nearly every commercial contract uses. The record season brought 16. The lightest brought 1.

That is a sixteen-to-one range on the single variable a seasonal price is set from, and it is the reason "the events per year average out" is true about the climate and misleading about your contract. The mean is stable across 120 seasons. Your contract is one season long.

Pricing one property four ways

Here is the cost book, stated openly so you can substitute your own numbers. The crew rate is the same one we have used in every pricing post on this site.

  • Two-person crew, fully loaded: $52.80/hr. Not the wage — wage plus payroll tax, workers' comp and the rest.
  • 2.5 hours on site per service: plow the lot, clear the walks, apply ice melt.
  • Truck, plow and spreader: $40/hr of plow time, covering fuel, maintenance, depreciation and the commercial auto premium apportioned to winter hours. This is our assumption, not a published market rate.
  • Ice melt: $60 per application. Also our assumption.

That gives $132.00 of labour + $100.00 of equipment + $60.00 of material = $292.00 of direct cost every time you roll on that property. At a 25% gross margin the per-push price is $389.

Now set the seasonal price the way the industry actually sets it — on the average. Multiply the Twin Cities mean by the per-push price: 7.6 × $389 = $2,956 for the winter. It is a defensible number. It is also a bet, and here is what it pays.

SeasonPlowable eventsDirect costSeasonal revenueGross resultRealised price per push
Record light (1891–2025 minimum)1$292$2,956+$2,664$2,956
Average season7.6$2,219$2,956+$737$389
Break-even10.1$2,956$2,956$0$292
Record heavy (1891–2025 maximum)16$4,672$2,956−$1,716$184.75

Three things fall out of that table, and none of them appear on page one.

One: the break-even is 10.1 events, not 7.6. The 25% margin you built into the per-push price is also your entire buffer against a heavy winter, and it buys you two and a half extra storms. Past the tenth push you are working for nothing; past that you are paying for the privilege.

Two: in the record season you are paid $184.75 per service against $292 of direct cost. Not thin margin. $107.25 below cost, sixteen times, on a contract you cannot walk away from.

Three: the bet is asymmetric against you. In the lightest winter on record the seasonal contract earns $2,664 where per-push would have earned $97 — you are $2,567 ahead. In the heaviest it loses $1,716 where per-push would have earned $1,552 — you are $3,268 behind. The downside is 27% larger than the upside, and the distance from the mean to the maximum (+8.4 events) is larger than the distance to the minimum (−6.6).

Two-person snow crew clearing an office walkway with a snow blower and spreading ice melt under a seasonal snow removal contract

The cap: how to sell seasonal without taking an open bet

BrightView's guide gestures at this — fixed-fee risk "is usually shared against extreme circumstances" with service caps — and then, like everyone else, declines to say what the cap should be. The arithmetic above answers it: set the cap at the break-even event count.

Write the contract as a seasonal fee that covers the first 10 services above the trigger depth, with each service beyond the tenth billed at the standard per-push rate. Nothing else changes. Here is what that one clause does:

SeasonEventsUncapped seasonalCapped at 10, per push afterDifference
Record light1+$2,664+$2,664$0
Average7.6+$737+$737$0
Heavy13−$840+$309+$1,149
Record heavy16−$1,716+$618+$2,334

This is the part worth taking to the client meeting. In a normal winter, and in a light winter, the cap costs the property manager exactly nothing. It changes their bill only in a winter that is already unusual, and in that winter it stops you eating a loss on their behalf. Any season at or below ten plowable events never reaches the cap at all, and the client keeps the budget certainty they wanted in every one of them.

Scale it to a twelve-property route and the clause stops being a detail:

Twelve-property routeUncapped seasonalCapped at 10
Average season (7.6 events)+$8,844+$8,844
Record heavy season (16 events)−$20,592+$7,416

One sentence in the contract is worth $28,008 in a record winter and costs you nothing in a normal one. That is a better return than any equipment purchase you will make this year.

One honest limit on that route figure: at 2.5 hours per property, sixteen events on twelve properties is 30 crew-hours per storm. A single crew cannot deliver that inside a storm window. If you sell twelve seasonal contracts you need the crews, subcontractors or staged shifts to actually serve them, and in a record winter the service obligation binds before the money does. A contract you cannot perform is a bigger problem than a contract that loses money.

What the contract has to say

The Colorado landscape association's checklist is thirteen years old and still the best clause list on the SERP. Ours is that list with the things the arithmetic above requires added to it.

  • Trigger depth, in inches. The single most important number in the document. 2 inches is the commercial norm. Without it, every dusting is an argument.
  • The event cap and the overage rate if you are selling seasonal. State the count and the per-push price for services beyond it.
  • What counts as one event. A 14-inch storm over two days is either one service or three, and the contract decides which.
  • Exact areas covered — lots, walks, entries, mail kiosks, priority order. Draw it on a site map and attach it.
  • Response window. "Within 4 hours of snowfall ending" is a commitment; "promptly" is a lawsuit.
  • Liability and the slip-and-fall allocation, plus your insurance limits. Check what your policy actually covers for winter operations before you sign, not after — see our note on what landscaping insurance costs.
  • Exclusions, in writing. Roof snow, ice damming, sanding after melt-off, hauling snow off site.
  • Pre-existing damage. Photograph the kerbs, bollards and sprinkler heads before the first storm. Every year.
  • Force majeure and extreme-event relief for the storm that is genuinely outside the record.
  • Payment terms and instalment dates. Seasonal contracts are usually billed monthly across five winter months regardless of when it snows — which is a cash-flow feature, not a discount.

If you need the document itself, our lawn care contract template covers the same clause structure for the green season, and the sample job quote shows how to present tiered pricing without burying it.

Landscaping business owner reviewing a snow removal contract on a clipboard at a work truck tailgate in winter

Billing it: the software decision is the same decision

The seasonal-versus-per-push choice has an exact counterpart in how you set the job up, and getting them to match is most of the administrative work.

Contract structureBill asWhat the invoice looks like
Seasonal / fixed feeFlat monthlyOne line per month at the contracted rate, whether it snowed once or five times
Per push, per inch, T&MPer visitOne line per service actually delivered, at the tier that applied

Landscapey handles both. Recurring jobs bill either flat monthly or per visit, and that setting is the only difference between invoicing a seasonal contract and invoicing a per-push one. "Snow removal" is one of the services in the picker, so it shows on your public profile and gets its own page for people searching your area. Invoices take card payments through Stripe with 0% taken by us, and the plan is $19.99/month (listed at $29.99) or $199.99/year, with a 14-day free trial. More on pricing, and on how recurring billing works.

Now the limits, because snow is where they bite. We checked the codebase rather than recalling it: there is no plow, salt, de-icing, per-inch or weather-trigger functionality anywhere in Landscapey — zero matches for any of those terms. That means no forecast-triggered dispatch, no automatic accumulation-tier pricing, no salt-usage tracking, no GPS or plow-route logging, and no in-app e-signature to get the contract executed. There is also one login per business, so a plow operator cannot have their own account.

Said plainly: we can hold the money side of a snow contract cleanly, either structure, alongside the rest of your year. If snow is the majority of your revenue and you need storm dispatch, per-inch automation and per-truck tracking, buy a dedicated snow platform. We would rather tell you that in September than have you discover it in January. If snow is a winter add-on to a mowing and maintenance book, running it in the same system as the rest of the year is the simpler answer — and our scheduling notes cover how the recurring side is put together.

FAQ

Should a first-year snow contractor sell seasonal contracts?

No. A seasonal contract prices a distribution you have not observed yet. Sell per push for a season or two, keep the event counts, and then price seasonal against your own history rather than a regional average. The per-push structure also puts the weather risk on the client, which is where it belongs while you are still learning the sites.

What trigger depth should the contract use?

Two inches is the commercial standard and both dated sources on page one that specify a number specify that one. The trigger matters more than almost anything else in the document, because it decides how many of the season's events you are obliged to service. A 1-inch trigger in the Twin Cities record turns 7.6 average services into 14.3 — nearly double the work for the same seasonal fee.

How do I set the seasonal price if I am not in Minnesota?

The method transfers, the numbers do not. Get your own local event counts — your state climatology office publishes them, and your own service logs are better still — then run the same three lines: direct cost per service, average events, break-even count. The break-even is your cap.

Is a multi-year seasonal contract actually safer?

Yes, and that is why the firms selling them structure them that way. Averaging across three or five winters pulls your realised event count toward the long-run mean. It does not remove the risk of a single record winter inside the term, which is why a cap and a multi-year term are complements rather than alternatives.

Do I bill a seasonal contract monthly even in a month with no snow?

Yes — that is the structure. The seasonal fee is normally split across the winter months and invoiced on schedule regardless of snowfall, which is exactly what the client is buying. Set the job to flat monthly and the invoice builds itself; set it to per visit and you will be arguing every December about a month with two dustings.

What happens if the season is so heavy I cannot service everyone?

You breach, and the money question becomes irrelevant. Before you sell the twelfth seasonal contract, check the crew-hours a record storm would demand across the whole route. If a single crew cannot cover it, the honest options are fewer contracts, more crews, a subcontractor arrangement agreed before winter, or a stated priority order written into every agreement.

Sources and limits

  • Snow event data is the Minnesota DNR State Climatology Office's Twin Cities snow event counts, 1891–2025 (120 seasons, combining downtown Minneapolis, MSP airport and the Chanhassen NWS office). It is Twin Cities-specific. Your market's mean, maximum and minimum will differ.
  • We know the mean, maximum and minimum — not the distribution. That source publishes 7.6 average, 16 maximum, 1 minimum. It does not publish how often a season exceeds 10 events, so this post cannot tell you the probability of crossing the break-even, only where the break-even sits. Do not read the record maximum as a likely outcome.
  • The $40/hr equipment rate and the $60 ice-melt application are our assumptions, not published market figures. The $52.80/hr fully loaded two-person crew rate is the same one used across our other pricing posts. Substitute your own three numbers and the whole model re-runs.
  • Every third-party page was fetched and read in full on 2026-09-07, not summarised from a search snippet. The two contract-template properties on page one and one Reddit discussion returned HTTP 403 to our fetch and are excluded entirely rather than characterised.
  • Landscapey claims were verified today, not recalled — pricing against the live pricing page, the flat-monthly/per-visit billing modes and the "Snow removal" service entry against the codebase, and the absence of plow, salt, de-icing, per-inch and weather-trigger features by a search of the whole tree returning zero matches.

The contract types on page one are not wrong. They are just the easy half. The hard half is one multiplication and one division: what a service costs you, and how many services the winter is going to ask for. Do those two before October and the structure picks itself.