Growth declares geo_breakdown and time_of_day_distribution silver inputs present
Growth's conclusion after reviewing the silver surface: both dimensions are derivable from existing columns without any new Growth silver columns. The inputs are already in the warehouse-api export shape today.
time_of_day_distribution — derivable from lead_attribution.capturedAt
Input column: lead_attribution.capturedAt (UTC timestamp; already exported).
Proposed bucket logic for Platform's dbt layer:
CASE
WHEN EXTRACT(HOUR FROM captured_at AT TIME ZONE 'UTC') BETWEEN 5 AND 11 THEN 'morning'
WHEN EXTRACT(HOUR FROM captured_at AT TIME ZONE 'UTC') BETWEEN 12 AND 16 THEN 'afternoon'
WHEN EXTRACT(HOUR FROM captured_at AT TIME ZONE 'UTC') BETWEEN 17 AND 20 THEN 'evening'
ELSE 'overnight' -- 21:00–04:59 UTC
END AS time_of_day_bucket
These bucket boundaries are a reasonable first cut; Growth defers to Platform if a different bucketing convention is preferred across domains. The derivation requires no materialization in Growth's silver layer — Platform can compute it in the growth.touchpoint dbt model or a separate dimension view.
geo_breakdown — derivable from lead_intake.zipCode + Platform's zip_service_area spine
Input column: lead_intake.zipCode (5-char string, already exported).
Proposed join: lead_intake.zipCode = zip_service_area.zip_code to resolve market-level geo grouping (market, region, or service-area label). Growth does not own zip_service_area; Platform controls it.
Growth's ask to Platform: confirm zip_service_area is stable enough to join against without versioning risk. If the spine is stable, Platform can resolve geo in the dbt model with no Growth-side changes needed. If the spine is volatile (frequent remapping), Growth can accept a point-in-time snapshot table to materialize geo assignments at intake time — but that requires a coordination step before landing.
Until Platform confirms spine stability: geo_breakdown is blocked on Platform's confirmation, not on any Growth silver work.
Summary
| Dimension | Growth silver work | Status |
|---|---|---|
time_of_day_distribution |
None — use capturedAt directly |
Ready for Platform to wire |
geo_breakdown |
None — use zipCode + zip_service_area join |
Blocked on Platform confirming spine stability |
Growth considers its silver obligations for both dimensions complete as stated in 2026-05-19-growth-mart-additional-asks-ack. The remaining action is Platform's: build the dbt derivations and (for geo) confirm spine stability.