Snow removal software should hold each site's contract type and trigger, log every push with a timestamp and photo, send arrival and finish texts, give each truck a route list, and batch-invoice per push or in seasonal instalments. AI helps around it: invoice wording from crew notes, storm texts drafted once, and a month-end check for pushes nobody billed.
The costly failure is rarely a missing feature. It is a push nobody invoiced, or a client who says you never came and a log that cannot answer. Both come from records, so judge any package by how it captures and reuses the visit record. Treat the wording jobs below as work for a general assistant such as ChatGPT or Claude, and check each vendor's page for AI features of its own.
One visit log has to feed two kinds of bill
Per-push clients are billed for what happened. Seasonal clients are billed for what was agreed, and the log's job is to show whether their cap has been reached. The fields are the same; the use differs.
| Field in the visit record | Per-push client | Seasonal client |
|---|---|---|
| Site and contract type | Selects the price per push | Selects the cap and the instalment |
| Date, arrival and finish time | Proves the visit and separates one push from the next | Counts the visit towards the cap |
| Depth measured and its source | Shows the trigger was met | Shows the trigger was met, or marks a visit made below it at the client's request |
| Material applied | Becomes its own invoice line | Counts towards the applications included in the fee |
| Photos before and after | Answers "you never came" | Answers "you never came" |
| Pushes so far this season | Not needed | Running count against the cap |
A realistic way this goes wrong: invoicing per push from memory at month-end. What you remember is the big storm. What you forget is the second pass at 04:00 that nobody wrote down, and the salt-only visit on a clear morning. The log is the only reliable list, which is why the tests below start with capturing the record, not with the invoice screen. The contract wording that decides what counts as a push is in the snow removal contract tutorial, and the prices behind each push are covered in how to price snow removal.
A trial script: replay last storm before you pay
Every package demos well. Load ten of your real sites with their contract types, then replay last storm through it. Write the plan name beside each result, because the feature you need may sit on a higher plan than the one you trial.
- Create the storm's visits in one action. Pass if every Tier 1 and 2 site has a visit, assigned to a truck, within a few minutes of the trigger being confirmed.
- Capture a push on a phone. A driver should log arrival, finish, depth and a photo in under a minute with gloves on, and the timestamp should come from the phone, not be typed.
- Send each storm text to your own phone. Read what a client sees: the sender, the length, any link. Include the delay text.
- Invoice last month's per-push work in one batch. Compare the result to what you billed. If a visit is missing from the batch, find out why.
- Set up one seasonal client with a cap. See whether the system counts pushes against it and warns you before the cap is passed.
- Export everything. If visits cannot leave the system as a spreadsheet, the month-end check below is impossible.
- Push one test invoice through to your accounting package. Look at what arrives: the line descriptions, the dates and the tax treatment you set. Jobber's pricing page puts the QuickBooks Online sync on Connect and above, and Yeti lists a QuickBooks Online integration. A sync that drops line descriptions leaves you retyping the wording you worked to get right.

The Complete Excel Course with AI Integration
From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.
By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner
Buy nowWhat Jobber, Yeti and Service Autopilot say on their own pages
These are the pages as read on 1 November 2026. Where a page was silent, the table says so rather than guessing, and plan features do move, so confirm on the vendor page before you buy.
| Tool | Aimed at | Routes | Invoicing | Texts | Price shown (USD) |
|---|---|---|---|---|---|
| Jobber | General home-service businesses; has a snow removal page | Route optimisation on Connect, Grow and Plus; reorders only visits without a fixed time, up to 7 days, run by an admin on the website | Batch create invoices: one invoice per client combining their jobs, created as drafts to review | On-my-way texts and automated follow-ups; two-way texting on select plans (from Grow on the pricing page) | Core $49 (1 user), Connect $139 (1 user) or $199 (5 users), Grow $199 or $299, Plus $499 (5 users), monthly with no commitment; lower on annual billing |
| Yeti Software | Snow removal and exterior maintenance | Multi-crew routes reusable each storm; geofences and required photos | Batch invoicing across sites; syncs to QuickBooks Online | Notifies clients when crews arrive and finish | One plan, from $66.50 a month billed annually for 1 to 25 sites; weather reporting is an add-on |
| Service Autopilot | Lawn, landscaping, snow removal and other trades | Route optimisation from Pro | Invoicing with integrated payments on every plan | Two-way texting on Elite only | Startup $49, Pro $199, Pro Plus $499 at annual-subscription rates, plus a sign-up fee; Elite on request |
Three readings of that table. Jobber is a general tool that fits snow as one service among several; its batch invoicing needs Invoice Reminders set up on the jobs, per its help article, so build that into your trial. Yeti is organised around the storm record itself: geofences, required photos, GPS history and an audit trail aimed at proof of service, priced by how many sites you manage. Service Autopilot's automations start on its second-highest plan, so check what you would be paying for before you assume it automates your storm texts. Jobber's own overview of plans is in this guide to Jobber plans for a small crew.
For scale, take a five-person crew. Jobber Connect for five users at the monthly no-commitment price is $199 a month, or $2,388 over twelve months. Service Autopilot Pro is $199 a month at its annual rate. Yeti's smallest tier, 1 to 25 sites, is $798 a year billed annually, which is the $66.50 a month on its page. Set those against a leak like the $915 in the unbilled-visit example below. The trial exists to find out whether the package actually closes that gap on your data.
None of the three pages describes software that decides the trigger for you. Yeti lists weather alerts in its mobile app and weather reporting as an add-on with no price shown; the other two pages I read do not mention weather data. Plan on a supervisor confirming the trigger from the source named in the contract.
Route lists: create the visits at the trigger, ordered by tier
Route lists are easy to get wrong in a general field-service tool, because its optimiser is built for tidy recurring rounds. Jobber's help article says route optimisation reorders only "anytime" visits, meaning those without a scheduled start or end time. Storm visits with a clear-by deadline are the opposite. So create each storm's visits as anytime visits, put them in tier order yourself, and let the optimiser reorder only within a tier. The tiers and truck assignments themselves come from the plan in the snow plough route tutorial.
A storm-day sequence that works in most tools:
- The supervisor confirms the trigger from the named source and notes the depth.
- Create visits for the Tier 1 and 2 sites, assigned to trucks from the plan.
- Crews log arrival with a photo; the finish text goes out from the phone or the office.
- When the first wave is done, create the Tier 3 and 4 visits.
- If a repeat push is due under the contract, create it as a new visit rather than editing the first one, so each has its own times.
- At month-end, batch invoice from the visits, then run the unbilled check below.
Proof of service: five photos on every push
A dispute turns on four facts: which site, when, how deep, and what it looked like when you left. Ask crews for the same five photos on every push, taken in the app so the time is stamped.
- A wide shot from the entrance showing the cleared area.
- A close-up of the main door and any disabled bays.
- A ruler or measuring stick in an undisturbed patch of snow, taken before clearing, with the depth readable.
- Where the snow was stacked, to show it went where the site plan said.
- If salt went down, the treated surface.
Here is how that pays off, as an illustration. A property manager emails that nobody came on the 14th. The log for site S-07 shows arrival at 03:12, finish at 03:58, 3 inches measured and five photos. You reply with the times and two photographs. The manager answers that they meant the side car park, which is not on the site plan attached to the contract. That is a scope question rather than a service failure, and it is settled by the contract wording rather than by argument. An assistant can draft the reply from the log lines in a minute, provided you paste the times and tell it not to add any.
From crew notes to invoice lines
Crews write terse notes. Invoices need lines a property manager can read and a dispute can rest on. An assistant can translate one into the other, as long as it does not do the sums. Replace client names with the site code before you paste, and keep the code key in your own file. On a consumer plan, check the data-controls setting that stops chats being used for training; business plans do not train on your content by default.
Turn each crew note into one invoice line description in plain English.
Keep the date, the times, the depth exactly as written, and what was
applied. Do not round numbers. Do not add prices or totals. One line per note.
C-004 | 9 Jan | 02:40-03:25 | 3.5 in | push + salt | photos 2
C-004 | 21 Jan | 04:05-04:40 | 2.0 in | push | photos 2
C-019 | 14 Jan | 05:10-05:25 | ice | salt only | photos 1
An illustrative first reply, flaws included:
C-004, 9 Jan: snow clearing after approximately 4 inches of snowfall (on site
02:40 to 03:25), including de-icing. Photos on file.
C-004, 21 Jan: snow clearing after 2 inches of snowfall (on site 04:05 to
04:40). Photos on file.
C-019, 14 Jan: de-icing service for ice (on site 05:10 to 05:25). Total: $175.
Three fixes. "Approximately 4 inches" rounds the logged 3.5 and hands a client a reason to question the log, so insist on exact figures. "De-icing" is not the line item in the price list, which says "salt application", and matching the contract's words avoids a query. The "Total: $175" is a number the model invented despite the instruction, and it adds up a salt-only visit at a price nobody gave it. Delete totals, always.
The sums belong to the invoicing system. A worked check for one client: 4 pushes at $140 is $560, plus 2 salt applications at $35 is $70, so $630. Let the software produce that figure, then compare it with your own quick calculation. Assistants are patchy at long additions, and a wrong total on an invoice is worse than a clumsy sentence.
Find the pushes nobody billed
The month-end check is where AI earns its keep. Export two simple lists: the visit log (client code, date, type) and the invoice drafts (client code, date, amount). Ask the assistant to compare them, and tell it to treat dates after midnight carefully, since a push at 00:40 may belong to the previous day's storm.
Compare list A (visit log) with list B (invoice lines). List every row in A
with no matching row in B for the same client code and the same date, and
every row in B with no match in A. Give a likely reason for each, and say
which ones you are unsure about. Do not guess prices.
Illustrative result for one month: 26 per-push clients and 131 visits in the log, of which 7 have no matching invoice line:
| Client | Date | Likely reason | Value |
|---|---|---|---|
| C-004 | 9 Jan | Push and salt logged after the batch closed | $175 |
| C-004 | 21 Jan | Second pass after 2 more inches | $140 |
| C-011 | 14 Jan | Invoiced under C-017 by a typo | $180 |
| C-019 | 14 Jan | Salt only, not invoiced | $35 |
| C-019 | 22 Jan | Salt only, not invoiced | $35 |
| C-023 | 21 Jan | Finished after midnight, dated 22 Jan | $140 |
| C-026 | 28 Jan | Client added mid-month, missing from the batch | $210 |
| Total | 7 visits, about 5% of the log | $915 |
Seven unbilled lines in 131 is 5%, and $915 is real money for an hour's work. Check every flag by hand before you bill. The assistant may call a genuine duplicate "missing", and the C-011 typo means a second client's invoice needs correcting too. Run the check monthly in your first season; after that, quarterly may be enough once the log habits have settled.
Storm texts, each short enough for one SMS
Four moments need a text, plus a fifth after any ice treatment. Write them once, by tier, and keep them short: a client reads these in a car park at 05:00. The drafts below use placeholders for the site name, time and your business name; real names make them longer, so check the length after you fill them in.
| Moment | Who gets it | Draft | Characters |
|---|---|---|---|
| Heads-up, once the forecast is firm | Tier 1 and 2 clients | Snow is forecast tonight. We'll clear [site] once 2 inches have fallen. Please move any vehicles off the lot before then. [Business] | 132 |
| Crew started | Tier 1 and 2 clients | Our crew has started clearing [site]. We'll text again when it's finished. [Business] | 85 |
| Finished | Every client | [Site] was cleared at [time]. Photos are in your client portal. If anything needs another pass, reply here. [Business] | 118 |
| Delay | Clients affected | Heavy snow and a truck problem have put us behind. [Site] is now due by about [time]. We'll text when we arrive. [Business] | 123 |
| Ice treated | Clients who asked or are on ice terms | We salted [site] at [time]. Ice can return as temperatures drop, so please take care. Reply if you want another visit. [Business] | 129 |
Generating the bank takes one prompt: give the assistant the five moments, the tiers, the 160-character limit and your business name, and tell it to promise no arrival time and use plain straight punctuation. Here is the kind of first draft you may get back without those instructions (illustrative):
Don’t worry! We guarantee your lot will be completely clear by 6am, no matter
how much snow falls. Our crew never misses a site. [Business]
Three problems. "Guarantee" and "6am" are promises your contract probably does not make, and a missed time becomes evidence against you. "Never misses a site" is the same promise again. And the curly apostrophe in "Don’t" matters more than it looks. Twilio's documentation says a text with such a character falls back to a 70-character segment (67 once a message is split), against 160 for plain characters. If your texting tool bills per segment, this 139-character draft would be three segments. The heads-up text in the table, at 132 characters, is one. Put a curly apostrophe in it and it becomes two.
Whether it matters for you depends on the tool. Jobber's help article says texts can run to 1,600 characters with no extra charge on plans that include two-way texting, while tools that sell credit packs may count segments. Ask how yours counts. Two further points from that article: clients opt out by replying STOP, and Jobber suggests emailing anyone who has opted out. Texting consent rules differ between places and between types of message, so check them for your customers rather than relying on a template.
Seasonal clients in the same system
Seasonal contracts add a counter and a rule. Say a client's agreement is $2,100 in equal instalments, with 16 pushes included and $130 for each push beyond that. The invoices run on a schedule, and the visit log supplies the count. When the log shows 19 pushes by the end of the winter, the overage is 3 x $130 = $390. The system may not make that calculation for you, so find out in the trial whether it counts pushes against a cap or whether you need a column in a spreadsheet.
The assistant's job is the explanation to the client, which is where seasonal clients push back. A first draft such as "Additional charges apply" will be questioned. A better one states the facts:
Your agreement included 16 pushes. We completed 19 this winter (dates listed
below), so 3 pushes are billed at $130 each: $390. Visit times and photos
are available on request.
Ask for the dates in the prompt and paste them in from the log. Never let the assistant reconstruct them. The same discipline applies to the early-warning message at 14 pushes, which lets a client hear about the cap before the bill: the log supplies the number, and the assistant only supplies the sentence. For autopay and late-payment follow-ups on the same kind of recurring bill, see the lawn care invoicing tutorial, which covers the same mechanics.
What stays manual, and what stays out of the chat window
Four things stay with a person. The trigger decision, from the measurement source named in the contract. The depth reading and the photo. Any promise about timing. And the reply to a damage report or an angry call, where the log is your evidence and a human needs to read it first. Do not connect an assistant to send texts unattended in your first season; draft, read, then send.
Storm nights also bring a spike of calls. Jobber lists its AI Receptionist as a $29-a-month add-on on its lower plans and included on Plus; its help article, updated 28 October 2026, says the $29 covers 30 conversations and further ones cost $0.79 each. It can take a message and create a work request. It cannot settle a "did you come?" dispute, which needs the visit record and a person. If you add it, set the urgent keywords carefully and read the transcripts the next morning.
Snow removal software questions contractors ask
Do I need snow-specific software, or will Jobber do?
It depends on the proof you need. Snow-specific tools such as Yeti Software are built around geofenced visits, required photos and subcontractor tracking. A general tool can work for a handful of sites if it passes a trial using last storm's data. Compare what each charges per site or per user against your count.
Can software text clients when snow reaches the trigger?
None of the vendor pages I read describes software that measures snowfall and decides the trigger itself. A supervisor confirms the trigger, then creates the visits and sends the texts. Yeti lists weather alerts in its app and weather reporting as an add-on, so ask what each one feeds into.
Can ChatGPT total my per-push invoices?
Let the invoicing system do the totals. Assistants are patchy at long sums. Use ChatGPT for the wording of invoice lines and for flagging mismatches between your visit log and your invoices, then check each flag by hand before you bill or amend anything.
How should a second pass in the same storm be billed?
Decide it in the contract, not at invoice time. A common rule is a new push after a further 2 inches of snow, or on the client's request. The software only records what the crew logs, so log each pass separately with its own start and finish time.
Further reads
- AI in Roofing: Weather-Delay Messages and Rescheduling Checklist — Weather-delay messages and rescheduling for another weather-driven trade.
- Property Maintenance Software: Jobber, ServiceM8 and Fergus Compared — Work-order software compared for property maintenance firms.
- Landscape Business AI Systems: Link Enquiries, Quotes, Crews and Invoices — Connect enquiries, quotes, crews and invoices as one system.
- Gritting Contracts: Price Winter Call-Outs and Plan Night Runs With AI — Work out what a night run costs, compare three ways to charge, write the trigger clause, order the route and keep a log that protects you.
- Winter Work for Landscapers: Plan Off-Season Services With AI — A winter service menu for landscapers (snow, lights, pruning, planning) and a way to test demand with past customers before buying equipment or hiring.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: Jobber pricing page, snow removal page and help centre (batch invoicing, route optimisation, two-way texting); Yeti Software site and pricing page; Service Autopilot pricing page; Twilio SMS character limits. Checked 1 November 2026; confirm plan features on the vendor pages before you buy. All sites, times and sums in the examples are illustrative.