Free template · Excel, Google Sheets, or CSV · companion to Issue #4

Night-Call Log Template

ShopDispatch · one row per after-hours contact · same reason codes as Issue #4

A free log for whoever covers nights and overflow. Fee stated, capacity actually checked, booked or not, and one reason code when it didn’t book, plus callback tracking for the warm ones. The weekly tab does the Friday math.

Download the .xlsx Download the .csv

What’s in it

  • Log tab — one row per contact. Dropdowns on reason_code, outcome, capacity_check_status, the Y/N columns, and the callback columns.
  • Weekly summary tab (.xlsx) — type a week start date. It counts calls, booked, each reason code, never-bookable vs. bookable-but-lost, and the booking rate.
  • One EXAMPLE row, highlighted, so you can see a filled line. Delete it before real use. The summary ignores it either way.

Callbacks

Some unbooked calls are still warm. Five columns track what happened when you called back: callback_attempts, callback_owner, last_callback_at, callback_outcome, and ok_to_text.

  • Who gets one: H_calling_back first. Then E_fee_declined, F_wanted_price_first, and J_other_quotes, if you have something new to offer: a clearer fee explanation, an opening, or a direct question about booking. Never A–D. G is a capacity question for Friday, and I depends on when the decider is around, so neither is on the callback list.
  • When: the same business day if you can, the next morning at the latest. During business hours. One named person owns the callbacks.
  • How many: three tries at most. That’s our suggestion, not a rule from anywhere. Stop right away if they say no or ask you to stop.
  • Outcome, one of four: Booked · Not booked (new code if the reason changed) · No answer after all tries · Asked not to be contacted. If an H turned into an E on the callback, change reason_code to E.
  • OK to text? Ask on the first callback and write Y or N.

The weekly tab counts callbacks attempted, each outcome, callbacks booked, attempted and booked for each of H, E, F, and J, and warm calls nobody called back.

Texting: this is not legal advice. FCC rules on texting customers depend on consent, and opt-outs have to be honored. The rules are changing and state rules differ, so ask a lawyer before you text customers. If someone says stop, in any clear way, it’s final — no call, no text.

Into Google Sheets

  1. Easiest: upload the .xlsx to Google Drive, then open it with Google Sheets (or File → Import → Upload in a blank sheet, choose “Replace spreadsheet”). Dropdowns and the summary tab come with it.
  2. CSV only: in a blank Google Sheet, File → Import → Upload → night-call-log.csv → “Replace current sheet.” Then add dropdowns yourself: select the reason_code column, Data → Data validation → Dropdown, and paste the eleven codes below. Do the same for outcome, callback_attempts (0, 1, 2, 3), and callback_outcome (the four outcomes above).
  3. Type dates as 2026-10-12 style so the weekly tab can read them.
  4. Keep the sheet private. Don’t paste its link anywhere public.

The booking-rate math

booked ÷ (booked + bookable-but-lost). Never-bookable calls (A–D) stay out of it. “Other” stays out too until you read the line and decide which pile it belongs in. Put the never-bookable count next to the rate every Friday, so the rate can’t quietly improve by moving calls into the excused pile.

Reason codes (unbooked calls only)

CodePileMeans
A_not_customerNever bookableNot a customer call
B_existing_jobNever bookableExisting job or bill
C_outside_areaNever bookableOutside our area
D_work_we_dont_doNever bookableWork we don’t do
E_fee_declinedBookable but lostFee declined
F_wanted_price_firstBookable but lostWanted a price first
G_no_slot_that_workedBookable but lostNo slot that worked
H_calling_backBookable but lostCalling back / thinking it over
I_needs_deciderBookable but lostNeeds spouse, owner, or landlord
J_other_quotesBookable but lostGetting other quotes
Other—One line in notes, in the caller’s words

Outcome codes: confirmed, structured_handoff, escalate, no_verified_slot, declined_after_fee, abandoned, incomplete_qualify.

Rule of the sheet: never mark booked = Y unless capacity_check_status = verified_available with a time in capacity_checked_at. Prefer a clear “no slot” over a fake hold. The After-Hours Intake Checklist explains each move, and the call scripts give the words.