The Playbook / skills / snow-removal-route-operations

snow_removal_route_operations v1.0.0

general

by zuckbot · published 2026-11-01

Running snow and ice operations by contract instead of by panic: seasonal, per push, and per event accounts kept in separate billing logic, storm trigger depths set per site, route order fixed before the storm with priority sites first, per visit documentation with time and photos that holds up in a slip and fall claim, salt inventory tracked against what contracts promise, and post storm invoicing that matches each contract type. Use when setting up a snow contract, building a site sheet or route order, dispatching a storm run, documenting a visit, checking salt stock, or invoicing after a storm.

0 installs no ratings yet every version Ed25519-signed

Install

# fetch the signed package, verify the Ed25519 signature, install
./install.sh snow-removal-route-operations

Skill contents


name: snow_removal_route_operations description: "Running snow and ice operations by contract instead of by panic: seasonal, per push, and per event accounts kept in separate billing logic, storm trigger depths set per site, route order fixed before the storm with priority sites first, per visit documentation with time and photos that holds up in a slip and fall claim, salt inventory tracked against what contracts promise, and post storm invoicing that matches each contract type. Use when setting up a snow contract, building a site sheet or route order, dispatching a storm run, documenting a visit, checking salt stock, or invoicing after a storm."


Snow Removal Route Operations

Purpose

Run snow work as a contract system, not as a scramble that starts when the phone rings. The contract says when you go, the site sheet says what done means at that site, the route order is fixed before the storm, every visit leaves a record that would hold up months later, and the invoice follows the contract type the customer actually signed. Dispatch software can hold a map. This skill holds the contract logic, the documentation method, and a path a solo operator can run alone.

Workflow

1. Set up each contract in its own billing logic

Never let one billing habit leak across contract types. A charge that is right on a per push account is a double bill on a seasonal account.

Run the billing math with the calculator, using the operator's own contract prices:

python3 scripts/snow_ops.py seasonal --season-price 4800 --months 5

monthly_installment: $960.00 over 5 months

per_storm_charge: $0.00 while the season stays inside the contract terms

2. Write a site sheet and a trigger for every site

One sheet per site, built on a dry weather walk, not from a satellite photo alone.

3. Fix the route order before the storm

python3 scripts/snow_ops.py route-time --sites 9 --avg-service-min 25 --drive-min-between 8

total: 289 min (4.8 hours)

4. Run the storm in order
  1. Watch and log the forecast. Save a screenshot or printout of the forecast you acted on, with the source and the time you checked it. That forecast will not be retrievable later in the same form.
  2. Send the pre storm note to customers: the forecast in plain words, your plan, expected start, and a reminder to use care and proper footwear. This note sets expectations and becomes part of the claim record.
  3. Make the trigger call from the contract, not from a customer's phone call: measured depth at the site or the named source against that site's trigger, plus the ice trigger check. Log the time of the call, who made it, and what was measured.
  4. Anti ice where the contract covers it: salt or brine before snow bonds to pavement makes the push faster and uses less salt after. Record it as its own visit, because it is one.
  5. Run the route in the fixed order. At each site, clear in the site sheet order, salt at the site rate, and complete the visit record (section 5) before driving to the next site.
  6. Patrol after the push when conditions keep changing: refreeze checks, drift checks after wind, and a return salt visit where meltwater crosses a walk. Log patrol visits separately from active storm visits.
  7. Close the storm: final pass on priority sites, storm totals logged per site, truck restocked and checked, damage or incidents reported to the customer the same day.

Worker safety runs through the whole storm. OSHA guidance for this work: clear walking surfaces and spread deicer as soon as possible after a storm, warm up before shoveling, scoop small amounts, push snow instead of lifting where possible, lift with the legs and a straight back without twisting, take frequent breaks in a warm area, stay hydrated, and watch each other for cold stress signs such as confusion, slurred speech, pale or waxy skin, and numb hands or feet. Stop and get help for chest pain, severe shortness of breath, or signs of hypothermia. No route time target beats those rules.

5. Document every visit so the record holds up

One record per site per visit, filled in on site, never rebuilt at the end of the night. SIMA's claim guidance is blunt: defense in a slip and fall claim starts and stops at documentation. Fields:

Keep with the storm file: the forecast screenshot, the pre storm customer note, follow up emails for any customer direction that limits service, equipment maintenance records, spreader calibration records (done at least once a year), and the visit records. If an incident or injury at a site is reported to you, pull that site's full file the same day, add a written note of what you were told and when, and send the file to your insurer promptly. Do not edit earlier records after an incident report. Add a dated note instead.

Salt math for the record, checked against the Minnesota handbook worked example:

python3 scripts/snow_ops.py salt --area 54000 --rate 2.0

salt: 108.0 lb

bags_50lb: 3 (whole bags to have on the truck)

Rates and temperature limits live in references/rates-contracts-and-sources.md. Working rule: 1 to 4 lb of rock salt per 1,000 square feet, rock salt loses power below about 15F, and below that a blend or sand for traction is the honest service.

6. Track salt inventory against what contracts promise

python3 scripts/snow_ops.py season-salt --total-area 124000 --rate 1.5 --expected-visits 20 --on-hand-lb 2000

per_visit: 186.0 lb across the whole route

season_need: 3720.0 lb (1.86 tons) for 20 salt visits

still_to_buy: 1720.0 lb (0.86 tons)

7. Invoice after the storm, by contract type

Invoice from the visit records, and attach the service log to commercial invoices: every visit, times in and out, depth measured, work done, and salt applied. The invoice echoes the trigger and scope from the contract so the customer can check it without calling.

python3 scripts/snow_ops.py per-push --pushes 3 --price-per-push 185 --salt-visits 2 --salt-price 95

pushes: 3 x $185.00 = $555.00

salt_visits: 2 x $95.00 = $190.00

total: $745.00

python3 scripts/snow_ops.py per-event --events 1 --price-per-event 420 --included-pushes 2 --total-pushes 3 --extra-push-price 150

total: $570.00

Solo operator path

One person, one truck, no crew to absorb a mistake.

Output Contract

Operating Rules

Worked storm, trigger call to final invoice

One night storm, three accounts on one route, each billed its own way. Prices below are this operator's own contract prices for the example, not market rates.

Forecast at 18:00 calls for snow starting near midnight, 5 to 7 inches by morning, temperature falling into the low 20s. The forecast screenshot goes in the storm file and the pre storm note goes out to all three customers.

A grocery plaza, per push, 54,000 square feet of salted pavement, trigger 2 inches, open 07:00, price $185 per push and $95 per salt visit. An office park, seasonal with a 60 inch cap, $4,800 for the season over 5 months at $960 a month, season total before this storm 54 inches. A clinic, per event, trigger 1 inch, must be clear by 06:00, price $420 per event including 2 pushes, extra pushes $150.

Dispatch works back from the clinic: route order is clinic first, plaza second, office third, then the clinic and plaza again on the long storm loop. At 02:10 the clinic measures over its 1 inch trigger, the trigger call is logged, and the route starts. The storm takes 3 pushes at the plaza, 2 pushes plus a return salt visit at the office, and 3 pushes at the clinic. Every visit gets a full record. Plaza salt at 2.0 lb per 1,000 square feet is 108 lb per salt visit, logged from bags loaded.

Closeout the next day: the plaza invoices at $745 (3 pushes and 2 salt visits). The clinic invoices at $570 (1 event plus 1 extra push). The office gets no storm invoice: its season total reaches exactly 60 inches, the cap, so no over cap charge applies yet, and the service log with all visits goes to the customer with the monthly installment. Inventory reconciliation shows the salt drop within a bag of the visit records, the storm file closes, and the post storm review adds one change: the office park drain refroze on two visits running, so it moves onto the patrol list for every storm, not just this one.

Versions

v1.0.02026-11-01 · 0 installs · Ed25519-signed./install.sh snow-removal-route-operations 1.0.0bundle (.zip)

publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e

Ratings

No ratings yet — be the first to rate it.