Pre-enablement proof

Daily digest proof sheet

Five rooftops, five shapes. Every email below is a live render of the production template through the same model and renderer the sending Lambda runs — no mockups, no hand-edited HTML. Change the code and these proofs change with it.

Above each email: the rooftop spec it was generated from, the arithmetic restated so the figures can be checked against the email by eye, and the exact portal URL behind each section’s button.

Nothing is being sent. Delivery is frozen behind DAILY_EMAIL_SEND_ENABLED=false. Every dealer, customer, number, and appointment id here is fictitious.
What changed in this revision. Dispositions now read off the portal’s own seven-chip axis, so every label in the breakdown is something a dealer can find and filter on — and Abandoned, which the portal has no rung and no chip for, is gone. The three call sections no longer list every call: each is a roll-up plus a button into Completed Calls, pre-filtered to that disposition over the days this report covers. KPI tiles use the portal’s wording verbatim — Calls, Appointments, Reschedules, Transfers, Appointment Opportunity, Scheduling Rate.

High-volume metro service department with BOTH alert toggles on — every section renders. Booked CALLS (14) exceed distinct booked APPOINTMENTS (13): one repeat caller re-cited the same appointment id, so this tab proves the distinct-appointment dedupe. The Transfers row in the breakdown (13) also sits below the Transfers tile (16): 3 of those calls booked too, and the portal ranks Appointment above Transfer.

63Calls
17Appts (booked + resched.)
13Appointments
4Reschedules
5Appointment Opportunity
77.3%Scheduling Rate
16Transfers
9Status Checks
3m 11sAvg Call Duration

Rooftop spec

dealerStub
norm-turner-honda
Time zone
America/Los_Angeles
Send hour, local
17:00
Window covered
Aug 18, 2026, 17:00 – Aug 19, 2026, 17:00
appointmentNotificationsEnabled
on
transferNotificationsEnabled
on
Sections rendered
AppointmentsReschedulesTransfers

Section roll-ups & portal links

  • Appointments14 appointments booked for 12 customers. Slots booked span Thu, Aug 6 – Wed, Aug 12.
    https://portal.example.invalid/completed-calls?preset=custom&from=2026-08-18&to=2026-08-19&call_flag=appointment
  • Transfers16 calls transferred — 9 before scheduling, 7 after scheduling. Top destinations: Service advisor (4), Body shop (3), Parts (3), +2 others.
    https://portal.example.invalid/completed-calls?preset=custom&from=2026-08-18&to=2026-08-19&call_flag=transfer
  • Reschedules4 appointments rescheduled for 4 customers. New slots span Sun, Aug 9 – Wed, Aug 12.
    https://portal.example.invalid/completed-calls?preset=custom&from=2026-08-18&to=2026-08-19&call_flag=reschedule

Projection tie-out

  • TIESBreakdown rows sum to total calls14 + 13 + 9 + 11 + 4 + 1 + 11 = 63; total_calls = 63
  • TIESBefore/after split ties to the Transfers tile9 before + 7 after = 16
  • TIESScheduling Rate = (Booked + Rescheduled) ÷ (Appointment Opportunity + Booked + Rescheduled)17 ÷ 22 = 77.3%; email renders 77.3%
  • TIESBooked + Rescheduled = the Appts tile13 + 4 = 17
  • TIESBreakdown Transfer row ≤ the Transfers tilebreakdown Transfer row = 13; Transfers tile = 16 (3 also booked, so they rank as Appointment)
  • TIESTransfer destinations never exceed the section countService advisor 4, Body shop 3, Parts 3, Sales 3, Service BDC 3 (section counts 16)

The email this rooftop would receive

FromAlpha Drive AI Notifier <daily-report+no-reply@alphadriveai.com>
Toservice.director@normturnerhonda.invalid, bdc.manager@normturnerhonda.invalid
SubjectAlpha Drive - Daily Call Report - Norm Turner Honda - Aug 19, 2026 (63 calls)

Mid-volume rooftop that opted OUT of transfer alerts (transferNotificationsEnabled=false). The Transfers SECTION and its portal link must disappear entirely — but the Transfers TILE stays in the summary, because the tile is a roll-up figure, not an alert.

38Calls
11Appts (booked + resched.)
8Appointments
3Reschedules
4Appointment Opportunity
73.3%Scheduling Rate
6Transfers
7Status Checks
2m 43sAvg Call Duration

Rooftop spec

dealerStub
cascade-toyota-bellevue
Time zone
America/Los_Angeles
Send hour, local
16:00
Window covered
Aug 18, 2026, 16:00 – Aug 19, 2026, 16:00
appointmentNotificationsEnabled
on
transferNotificationsEnabled
off
Sections rendered
AppointmentsReschedules

Section roll-ups & portal links

  • Appointments8 appointments booked for 7 customers. Slots booked span Thu, Aug 6 – Wed, Aug 12.
    https://portal.example.invalid/completed-calls?preset=custom&from=2026-08-18&to=2026-08-19&call_flag=appointment
  • Reschedules3 appointments rescheduled for 3 customers. New slots span Sun, Aug 9 – Tue, Aug 11.
    https://portal.example.invalid/completed-calls?preset=custom&from=2026-08-18&to=2026-08-19&call_flag=reschedule

Projection tie-out

  • TIESBreakdown rows sum to total calls8 + 5 + 7 + 9 + 3 + 0 + 6 = 38; total_calls = 38
  • TIESBefore/after split ties to the Transfers tile4 before + 2 after = 6
  • TIESScheduling Rate = (Booked + Rescheduled) ÷ (Appointment Opportunity + Booked + Rescheduled)11 ÷ 15 = 73.3%; email renders 73.3%
  • TIESBooked + Rescheduled = the Appts tile8 + 3 = 11
  • TIESBreakdown Transfer row ≤ the Transfers tilebreakdown Transfer row = 5; Transfers tile = 6 (1 also booked, so they rank as Appointment)
  • TIESTransfer destinations never exceed the section countService advisor 2, Body shop 1, Parts 1, Sales 1, Service BDC 1 (section counts 6)

The email this rooftop would receive

FromAlpha Drive AI Notifier <daily-report+no-reply@alphadriveai.com>
Tofixedops@cascadetoyota.invalid
SubjectAlpha Drive - Daily Call Report - Cascade Toyota of Bellevue - Aug 19, 2026 (38 calls)

Small rural rooftop that opted OUT of appointment alerts (appointmentNotificationsEnabled=false). BOTH the Appointments and Reschedules sections must disappear — they share one toggle — while the Transfers section stays. Also a different timezone (America/Chicago) and send hour.

21Calls
5Appts (booked + resched.)
4Appointments
1Reschedules
2Appointment Opportunity
71.4%Scheduling Rate
7Transfers
3Status Checks
2m 28sAvg Call Duration

Rooftop spec

dealerStub
prairie-ford-lincoln
Time zone
America/Chicago
Send hour, local
18:00
Window covered
Aug 18, 2026, 18:00 – Aug 19, 2026, 18:00
appointmentNotificationsEnabled
off
transferNotificationsEnabled
on
Sections rendered
Transfers

Section roll-ups & portal links

  • Transfers7 calls transferred — 5 before scheduling, 2 after scheduling. Top destinations: Parts (2), Service advisor (2), Body shop (1), +2 others.
    https://portal.example.invalid/completed-calls?preset=custom&from=2026-08-18&to=2026-08-19&call_flag=transfer

Projection tie-out

  • TIESBreakdown rows sum to total calls4 + 7 + 3 + 4 + 1 + 0 + 2 = 21; total_calls = 21
  • TIESBefore/after split ties to the Transfers tile5 before + 2 after = 7
  • TIESScheduling Rate = (Booked + Rescheduled) ÷ (Appointment Opportunity + Booked + Rescheduled)5 ÷ 7 = 71.4%; email renders 71.4%
  • TIESBooked + Rescheduled = the Appts tile4 + 1 = 5
  • TIESBreakdown Transfer row ≤ the Transfers tilebreakdown Transfer row = 7; Transfers tile = 7 (no call both booked and transferred)
  • TIESTransfer destinations never exceed the section countParts 2, Service advisor 2, Body shop 1, Sales 1, Service BDC 1 (section counts 7)

The email this rooftop would receive

FromAlpha Drive AI Notifier <daily-report+no-reply@alphadriveai.com>
Togm@prairiefordlincoln.invalid, service@prairiefordlincoln.invalid
SubjectAlpha Drive - Daily Call Report - Prairie Ford Lincoln - Aug 19, 2026 (21 calls)

ZERO calls in the window (a Sunday, or a rooftop whose line was down). Proves the divide-by-zero path on Scheduling Rate, that every section states its own zero case and still offers its portal link, and that a rooftop receives a coherent — not broken — email on a quiet day.

0Calls
0Appts (booked + resched.)
0Appointments
0Reschedules
0Appointment Opportunity
0%Scheduling Rate
0Transfers
0Status Checks
0m 0sAvg Call Duration

Rooftop spec

dealerStub
harborview-kia
Time zone
America/New_York
Send hour, local
17:00
Window covered
Aug 18, 2026, 17:00 – Aug 19, 2026, 17:00
appointmentNotificationsEnabled
on
transferNotificationsEnabled
on
Sections rendered
AppointmentsReschedulesTransfers

Section roll-ups & portal links

  • AppointmentsNo appointments were booked during this reporting period.
    https://portal.example.invalid/completed-calls?preset=custom&from=2026-08-18&to=2026-08-19&call_flag=appointment
  • TransfersNo calls were transferred during this reporting period.
    https://portal.example.invalid/completed-calls?preset=custom&from=2026-08-18&to=2026-08-19&call_flag=transfer
  • ReschedulesNo appointments were rescheduled during this reporting period.
    https://portal.example.invalid/completed-calls?preset=custom&from=2026-08-18&to=2026-08-19&call_flag=reschedule

Projection tie-out

  • TIESBreakdown rows sum to total calls0 = 0; total_calls = 0
  • TIESBefore/after split ties to the Transfers tile0 before + 0 after = 0
  • TIESScheduling Rate = (Booked + Rescheduled) ÷ (Appointment Opportunity + Booked + Rescheduled)no scheduling activity — denominator 0, email renders 0%
  • TIESBooked + Rescheduled = the Appts tile0 + 0 = 0
  • TIESBreakdown Transfer row ≤ the Transfers tilebreakdown Transfer row = 0; Transfers tile = 0 (no call both booked and transferred)
  • TIESTransfer destinations never exceed the section countno destinations captured

The email this rooftop would receive

FromAlpha Drive AI Notifier <daily-report+no-reply@alphadriveai.com>
Toservice.manager@harborviewkia.invalid
SubjectAlpha Drive - Daily Call Report - Harborview Kia - Aug 19, 2026 (0 calls)

A rooftop with 58 booked and 54 transferred calls in one window — the case that made per-call listing untenable (the old email capped each section at 50 rows and appended a truncation note). Proves the roll-ups report the FULL counts with no cap and no note, and that the portal CTA is what carries the reader to the detail.

214Calls
67Appts (booked + resched.)
55Appointments
12Reschedules
21Appointment Opportunity
76.1%Scheduling Rate
54Transfers
26Status Checks
2m 48sAvg Call Duration

Rooftop spec

dealerStub
summit-auto-group-riverside
Time zone
America/Los_Angeles
Send hour, local
17:00
Window covered
Aug 18, 2026, 17:00 – Aug 19, 2026, 17:00
appointmentNotificationsEnabled
on
transferNotificationsEnabled
on
Sections rendered
AppointmentsReschedulesTransfers

Section roll-ups & portal links

  • Appointments58 appointments booked for 25 customers. Slots booked span Thu, Aug 6 – Wed, Aug 12.
    https://portal.example.invalid/completed-calls?preset=custom&from=2026-08-18&to=2026-08-19&call_flag=appointment
  • Transfers54 calls transferred — 31 before scheduling, 23 after scheduling. Top destinations: Body shop (11), Parts (11), Sales (11), +2 others.
    https://portal.example.invalid/completed-calls?preset=custom&from=2026-08-18&to=2026-08-19&call_flag=transfer
  • Reschedules12 appointments rescheduled for 12 customers. New slots span Thu, Aug 6 – Wed, Aug 12.
    https://portal.example.invalid/completed-calls?preset=custom&from=2026-08-18&to=2026-08-19&call_flag=reschedule

Projection tie-out

  • TIESBreakdown rows sum to total calls58 + 48 + 26 + 33 + 12 + 3 + 34 = 214; total_calls = 214
  • TIESBefore/after split ties to the Transfers tile31 before + 23 after = 54
  • TIESScheduling Rate = (Booked + Rescheduled) ÷ (Appointment Opportunity + Booked + Rescheduled)67 ÷ 88 = 76.1%; email renders 76.1%
  • TIESBooked + Rescheduled = the Appts tile55 + 12 = 67
  • TIESBreakdown Transfer row ≤ the Transfers tilebreakdown Transfer row = 48; Transfers tile = 54 (6 also booked, so they rank as Appointment)
  • TIESTransfer destinations never exceed the section countBody shop 11, Parts 11, Sales 11, Service advisor 11, Service BDC 10 (section counts 54)

The email this rooftop would receive

FromAlpha Drive AI Notifier <daily-report+no-reply@alphadriveai.com>
Tofixedops.director@summitautogroup.invalid, callcenter@summitautogroup.invalid
SubjectAlpha Drive - Daily Call Report - Summit Auto Group — Riverside - Aug 19, 2026 (214 calls)