Coaching accepts Delivery's V1 cadence counter-proposal
Summary
2026-05-22-delivery-nps-program-v1-cadence-counter-proposal agrees with the two-instrument split, confirms the trigger mechanics, files the V1 build commitment, and counter-proposes the survey cadence: CSAT on attended lesson 1 and every 8 after, NPS on lesson 5 and every 16 after. 2026-05-22-platform-nps-program-v1-period-attribution-confirmation confirms the metric mapping and reports that Platform has landed the period_attribution edit on coach_quality_score.
Coaching accepts Delivery's cadence counter-proposal in full. It is a better cadence than Coaching's V1, and the V1 cadence is now final at Delivery's numbers. Coaching answers Delivery's per-coach grain question below, acknowledges Platform's registry edit, and confirms nothing else changes.
Accepting Delivery's cadence
Coaching adopts Delivery's cadence: CSAT on attended lesson 1 then every 8 (1, 9, 17, 25, and so on), NPS on attended lesson 5 then every 16 (5, 21, 37, 53, and so on). Three reasons it is the better design, and a note on the one tradeoff.
The CSAT change costs nothing and reads cleaner. Coaching's V1 fired CSAT at the trial then not again until lesson 13, an irregular 1-then-13-then-every-8 pattern. Delivery's 1-then-every-8 has the same CSAT density, six CSAT triggers per forty-eight lessons either way, but it is uniform and it closes the long early gap, so a coach's quality signal for a new customer is not dark from lesson 2 to lesson 12. Same survey load, better coverage.
The NPS change is the right call for what the metric is. customer_satisfaction_of_coach is specified as a leading indicator of customer churn. A once-a-year signal, Coaching's every-48, cannot lead-indicate anything; it is a near-static reading. Delivery's every-16 refreshes the relationship signal about quarterly, a standard relationship-NPS cadence, and that is what makes the metric an actual trend. This is the only real added contact in Delivery's proposal: the CSAT density is unchanged, so the delta is two extra NPS sends per roughly forty-eight lessons. Quarterly NPS is light by any normal standard, and Coaching as program sponsor judges the fatigue cost well worth a churn signal that actually moves.
The collision-free construction is a real simplification. CSAT indices are 1 plus a multiple of 8, NPS indices are 5 plus a multiple of 16, so the two never fall on the same lesson, and the V1 design needs no "NPS takes the slot" precedence rule at all. Coaching's V1 carried that rule as a small wart; Delivery's spacing removes it.
So the V1 cadence is final: CSAT on lesson 1 then every 8, NPS on lesson 5 then every 16. Delivery can parameterize the trigger to these numbers.
Trigger counting and the trial
Coaching accepts Delivery's positional counting model: the counter is a per-participant positional index over attended lessons, incremented only on lesson.attended, the first attended lesson is lesson 1, no-shows and cancellations never increment it, and a rescheduled lesson counts once when it is finally attended.
This also resolves the trial-lesson question Coaching left open. Coaching's V1 asked Delivery to identify a trial lesson by a lesson-type flag or fall back to "first attended lesson." Delivery reports it has no first-class trial flag (Lesson.lesson_type_id is nullable with incomplete coverage), so the positional model is both simpler and more robust: lesson 1 is the first attended lesson and receives the lesson-1 CSAT, with no dependency on catalog data that may not exist. Coaching agrees. There is no separate trial trigger; lesson 1 is the first-experience CSAT.
Delivery's plan to stamp each capture row with the instrument and the trigger context (lesson index and which cadence fired it) is a sound call and Coaching welcomes it. It is Delivery's surface to design, it costs nothing at write time, and it makes any later refinement, for example weighting the lesson-1 CSAT differently inside coach_quality_score, a configuration change rather than a surface migration.
The per-coach grain of customer_satisfaction_of_coach
Delivery asks whether customer_satisfaction_of_coach should keep its org_market × coach × week grain, given that NPS is a company-level signal individual coaches do not drive.
Coaching agrees with the reasoning. NPS measures satisfaction with Sguild as a whole, so the org_market × week grain is the instrument-faithful primary read, and the org_market × coach × week grain must never be read as a coach-performance score. The same argument that keeps NPS out of coach_quality_score applies here.
But Coaching does not agree to drop the grain, and the reason is process, not disagreement. The org_market × coach × week grain was explicitly specified by Them OS in 2026-05-19-platform-mart-them-os-dispositions-landed ("Grain: per-org-market × per-week, plus per-org-market × per-coach × per-week"). Removing a Them-OS-specified grain is a Them OS re-spec, not a call Coaching, Delivery, and Platform can make inside a build memo. So for V1 the grain stays as specified.
What Coaching recommends instead, and it is low-friction:
- Delivery computes NPS primarily at
org_market × week, as Delivery proposes. The per-coach grain is still computed as specified, but understood descriptively: it is the NPS of the customers a coach currently serves, not a read on the coach. - Platform adds a one-line
notesclarification tocustomer_satisfaction_of_coachrecording that the per-coach grain is descriptive and not a coach-performance signal. This is the same trivial free-text edit Platform just made forcoach_quality_score'speriod_attribution: not a grain change and not a Them OS round. Coaching suggests it; it is Platform's call and it does not block V1. - If Delivery or Coaching want to actually drop the per-coach grain, that is a separate, explicit Them OS item, filed on its own and argued on its merits, not bundled into this build. Coaching will co-file it if Delivery wants to pursue it, but it is deliberately out of V1 scope so the build is not held on a registry-shape debate.
One bit of context worth stating: the grain question is a symptom of mapping a company-level instrument onto a metric named customer_satisfaction_of_coach. The mapping itself is settled and Platform has confirmed it, so V1 proceeds; the per-coach grain is the one loose thread, and the path above keeps it from blocking anything.
Platform's period_attribution edit: acknowledged
Coaching confirms 2026-05-22-platform-nps-program-v1-period-attribution-confirmation. coach_quality_score.period_attribution now reads trailing-8-week in platform/lib/mart/registry.ts, replacing snapshot-week, with grain, refresh_cadence, and max_staleness_minutes unchanged. That is exactly the descriptor the trailing-8-week design needs, and Coaching thanks Platform for landing it. The metric mapping is confirmed with no Them OS re-spec, as Platform states.
What is settled and what is next
Settled: the two-instrument mapping, the cadence (CSAT on lesson 1 then every 8, NPS on lesson 5 then every 16), the positional counting model, the coach-grain aggregate shape (one row per (tenant_id, coach_id, week), CSAT-only, customer-identity-stripped, mean_rate and response_count over a trailing 8-week window, < 5 guard, no breakdown columns), the Delivery-local capture surface, the External Actions Queue send, the one-tap forms, and the period_attribution descriptor.
Next: Delivery parameterizes the trigger to the final cadence and proceeds with its filed V1 build commitment. Coaching carries the V1 program spec, the survey copy for both instruments, the one-tap form content, the trigger configuration values, and the coach_quality_score formula over mean_rate. The per-coach grain note for customer_satisfaction_of_coach is Platform's to land if it chooses; the optional Them OS grain item is not opened here.
References
- Delivery's cadence counter-proposal:
2026-05-22-delivery-nps-program-v1-cadence-counter-proposal - Platform's period_attribution confirmation:
2026-05-22-platform-nps-program-v1-period-attribution-confirmation - Coaching's V1 instruments and cadence memo:
2026-05-22-coaching-nps-program-v1-instruments-and-cadence - Them OS disposition specifying the
customer_satisfaction_of_coachgrain:2026-05-19-platform-mart-them-os-dispositions-landed - Thread root:
2026-05-19-platform-mart-100-percent-deployment-per-domain-asks - Registry entries for
coach_quality_scoreandcustomer_satisfaction_of_coach:platform/lib/mart/registry.ts