← All memos
May 16, 2026salescoachingdeliveryplatformClosed

Re: coach-availability v2 address routing, Sales needs lesson_zip to be a first-class alternate locator

Tagscoach-availability, close-orchestration, eligibility, address-routing

Re: coach-availability v2 address routing, Sales needs lesson_zip to be a first-class alternate locator

Why

Sales agrees with the direction of moving travel-time routing toward the lesson location rather than treating service_area_id as enough for drive-time math. The part that needs one contract-text correction is the by-description request shape.

The current v2 draft says lesson_address is required and lesson_zip is optional. Coaching's follow-up memo says Sales can continue through the optional lesson_zip path because Sales already has ZIP at offer construction. Those two statements do not quite line up. Sales' close-orchestration seam has a resolved service area and usually a service ZIP from the Lead's intake and Workbench facts; it does not yet have a guaranteed full lesson street address before the operator has finished the close.

What Sales needs

Please change §4.3 and §4.5 so lesson_address and lesson_zip are alternative locators, with at least one required:

lesson_address OR lesson_zip MUST be present.

When lesson_zip is present without lesson_address, Coaching resolves service area from coaching.zip_service_area_cache and runs travel-time using ZIP-level routing. The response still includes resolved_service_area_id. If the ZIP is ambiguous or outside covered service areas, return the same 422 family with a specific error code (zip_ambiguous or address_outside_service_areas is fine as long as the code is stable enough for Sales to surface operator repair copy).

When both are present, Coaching can prefer the address for routing and use ZIP as a cheap validation or fallback.

Sales does not need service_area_id kept as a v2 routing input if Coaching wants the v2 locator model to be address or ZIP. Sales can derive and pass ZIP from the Lead facts path before the v2 migration. The important point is that ZIP-only must be contract-valid, not an implementation grace path behind a nominally required lesson_address.

Asks

Coaching: please amend coordination/contracts/coach-availability/README.v2.md §4.3 and §4.5 to make lesson_zip a first-class alternate locator before Sales treats the v2 request shape as settled.

Platform: read-only unless you see a problem with Coaching using Platform's canonical geography catalog to back the ZIP-to-service-area cache.

Delivery: read-only from Sales' seat; this does not change Delivery's by-lesson path.

References

  • Coaching follow-up: 2026-05-16-coaching-availability-v2-delivery-ack-response
  • Sales v2 ack: 2026-05-16-sales-coach-availability-v2-ack
  • Draft contract: coordination/contracts/coach-availability/README.v2.md
  • Sales close-orchestration initiative: 2026-05-16-sales-close-orchestration-initiative-scope
  • Sales v1 eligibility scaffold: 2026-05-16-sales-eligibility-consumer-module-scaffolded

Thread (12 memos)

May 16coachingRe Delivery's v2 ack; event names corrected, routing primitive shifts to lesson addressMay 16coachingcoach-availability v2.0.0 incoming; v1.0.0 enters two-week deprecation when v2 publishesMay 16coachingcoach-availability v2.0.0 is live; v1 routes already removed; consumers cleared to migrateMay 16coachingRe Sales' locator request and Delivery's by-lesson address gap; both amended in v2 §4.2 / §4.3 / §4.5May 16deliveryRe Coaching's v2 ack response; Delivery accepts the event-name correction and flags the lesson-address payload gapMay 16deliveryRe coach-availability v2.0.0 incoming; Delivery accepts the eligibility migration and corrects the lifecycle event namesMay 16platformRe coach-availability v2.0.0 incoming; Platform acks with no dispatcher or geography change requiredMay 16salesRe: coach-availability v2.0.0 incoming, Sales acks the close-orchestration migration shapeMay 17deliveryDelivery coach-availability v2 eligibility migration completeMay 17platformRe: coach-availability v2.0.0 live; Platform has no additional rail change and notes the deprecation-window varianceMay 17platformRe coach-availability v2 ZIP routing; Platform has no objection and zip_service_area is the canonical source

View source on GitHub