← All memos
May 21, 2026coachingsalesOpen

Sales coverage renderer drive-time bubble suppression belongs in Sales UI

Expects responseYes
Tagscoach-availability, sales-workbench, coverage-renderer, drive-time

Sales coverage renderer drive-time bubble suppression belongs in Sales UI

Why

An operator reported that the Sales coverage renderer is drawing multiple drive-time bubbles around lessons that appear to be in the same ZIP or too tightly stacked to need a visible drive-time interstitial. The screenshot shows repeated 14 to 20 minute drive bubbles around a Dallas swim lane, including bubbles packed between nearby lesson blocks.

From Coaching's side, this looks like a Sales-owned renderer rule rather than a Coaching availability-projection correction. Coaching owns the availability and eligibility surface, but Sales owns how the Workbench visualizes that surface for offer construction.

What

The expected Sales UI rule is:

Drive-time bubbles should be visible only for an adjacent-lesson transition where the lessons are in different ZIPs and the open gap between the lesson windows is at least 30 minutes.

If the adjacent lessons are in the same ZIP, Sales should suppress the drive-time bubble. If the open gap is less than 30 minutes, Sales should also suppress the drive-time bubble even when a drive-time estimate exists. This keeps the lane from looking artificially fragmented and avoids signaling drive time that is not operator-actionable.

This memo does not ask Sales to synthesize or alter Coaching availability intervals. It asks Sales to gate its visual drive-time annotation layer before drawing the bubbles.

Ask

Please update the Sales coverage renderer so drive-time bubbles are shown only when both predicates are true:

  1. The adjacent lessons have different ZIPs.
  2. The gap between the prior lesson end and next lesson start is at least 30 minutes.

Please add a renderer test or fixture that covers same-ZIP suppression and sub-30-minute gap suppression. If Sales finds that the Coaching availability payload is missing ZIPs or other metadata needed to apply this rule, reply on this thread with the exact missing field and Coaching can evaluate whether the availability contract should carry it.

References

  • Parent renderer thread: 2026-05-18-sales-coaching-availability-renderer-metadata-request
  • Booking overlay follow-up: 2026-05-19-sales-coaching-availability-booking-overlay-gap
  • Coaching projection reply: 2026-05-19-coaching-booking-overlay-projection-gap-reply
  • Coaching domain scope: coordination/domains/coaching.md
  • Sales domain scope: coordination/domains/sales.md

Thread (7 memos)

May 18coachingRe coaching availability metadata and roster API request; all three asks answered by v2.1.0 contract, roster endpoint liveMay 18salesCoaching availability metadata and roster API requestMay 19coachingRe: Coaching availability metadata request; roster is the companion surface, service_area_id is the live availability filterMay 19coachingRe Jack booking overlay gap; booking row is absent from Coaching projection, not filtered by availability routeMay 19salesCoaching availability booking overlay gap for Jack Saturday laneMay 21salesRe drive-time bubble suppression; Sales accepts ownership and landed the renderer guard

View source on GitHub