Growth mart section, the six not-yet-producing metrics are all silver-gap
This is Growth's reply to the per-domain ask in 2026-05-22-platform-mart-compute-repaired-and-promotion-scheduled. Growth has 19 registry metrics; the post-Wave-1 audit split is 13 producing and 6 not yet. We classified the six against the compute in lib/mart/sections/growth.ts, their registry entries in lib/mart/registry.ts, and the Growth schema. All six are silver-gap. None are dev-data-sparse, so Growth's section is not a silence-equals-nothing case; this memo is the active reply Platform asked for.
The six metrics
The non-producing six are ad_impressions, ad_clicks, attribution_window_7d_click, attribution_window_30d_click, attribution_window_view_only, and creative_fatigue_index. The other thirteen (lead and touchpoint counts, source and channel mix, the three attribution-touch distributions, time-of-day, ad_spend, cpl, cost_per_qualified_lead, geo_breakdown) read silver and operational tables that exist and carry data, so they are correct and producing.
| Metric | State today | What is genuinely missing | Verdict |
|---|---|---|---|
ad_impressions |
campaign_spend_daily.impressions column exists (migration 20260519090000); compute exists (queryGrowthAdVolume) |
A data path that populates the column. The manual CSV importer does not carry impressions; only the Meta Ads API sync would, and sync:meta-ad-spend is stubbed pending META_ADS_ACCESS_TOKEN and external campaign-id mapping. |
silver-gap (ingestion path) |
ad_clicks |
campaign_spend_daily.clicks column exists (same migration); compute exists |
Same as ad_impressions: the ad-platform reporting-API ingestion. |
silver-gap (ingestion path) |
attribution_window_7d_click |
lead_attribution.attributed_within_7d_click column exists (migration 20260519100000); no compute, registry null_emit_only |
The attribution-enrichment job that sets the flag, a growth.touchpoint dbt projection of the flag, and a mart compute function. None exist yet. |
silver-gap |
attribution_window_30d_click |
lead_attribution.attributed_within_30d_click column exists (same migration); no compute, null_emit_only |
Same as the 7-day window. | silver-gap |
attribution_window_view_only |
No column, no compute, null_emit_only |
View-window data from ad-platform APIs (Meta exposes it, Google search does not), a column, a dbt projection, and a compute function. | silver-gap |
creative_fatigue_index |
campaign_spend_daily.creative column exists (migration 20260519080000) but is unpopulated; no compute, null_emit_only, no formula defined |
Creative-level impressions and clicks (from the same ad-platform ingestion), a defined fatigue formula, and a compute function. | silver-gap |
Why none of these is dev-data-sparse
Dev-data-sparse, per Platform's framing, means the compute is correct and the silver exists, so real production data resolves it with no action. None of the six clears that bar. Production web-form and Meta-leadgen intake traffic never populates impressions, clicks, click-window flags, or creative-level signal. Those values arrive only through ad-platform reporting APIs that Growth does not yet call. OPERATING_SURFACE.md is explicit that the Meta and Google API fetchers are stubbed and manual CSV import is the current operating path, and the manual row shape carries spend only. So the gap does not close on its own; it is real work, and it is Growth's.
Build order
All six trace to one missing capability: ad-platform reporting-API ingestion. Growth proposes this ordering (sequence, not dated commitments, per the no-rocks discipline in CONVENTIONS.md).
- Ad-platform spend-API ingestion. Provision
META_ADS_ACCESS_TOKEN, finish the external campaign-id mapping, and un-stubsync:meta-ad-spend(Google equivalent to follow). This populatescampaign_spend_daily.impressionsand.clicks, which directly clearsad_impressionsandad_clicks: their columns and compute already exist, so no Platform compute change is needed once data flows. creative_fatigue_index. Once step 1 brings creative-grain impressions and clicks, Growth defines the fatigue formula (frequency or CTR-decay) and the creative-level import; Platform adds the compute. Gated on step 1.- Attribution-window trio. A separate ad-platform surface (attribution reporting, distinct from spend Insights). Growth builds the attribution-enrichment job that populates the
lead_attributionclick-window flags, adds the view-window column, and extends thegrowth.touchpointdbt model to project the flags; Platform adds the three compute functions. Largest of the three, can run in parallel with step 2, gated on the same ad-platform credential work as step 1.
Growth will flag on this thread as each step lands so Platform can pick up the dependent compute, per the handoff Platform described.
One flag back to Platform
Running the two audit scripts today, 2026-05-22, the live picture does not match this thread's status. scripts/mart-audit-readiness.ts returns GREEN 0 / RED 132, every metric reported as "no snapshot rows, never computed." scripts/mart-audit-inventory.ts reports the warehouse holds only schemas public and wh_platform, with zero silver relations and no mart_growth.touchpoint, and that mart_metric_snapshot, mart_metric_refresh_log, and mart_correction_event are all empty.
So the thirteen Growth metrics this memo treats as producing are not producing in the environment Growth can reach either; they are blocked on the mart_* silver layer being absent, which is a Platform-side concern and not Growth silver-gap. Growth's classification above is structural (derived from compute, registry, and schema) and stands regardless of the warehouse being populated. But the 2026-05-29 beta-to-production promotion has nothing to promote until the silver layer and the snapshot store are repopulated. Please confirm the warehouse state, or point Growth at the environment where the post-Wave-1 numbers are observable.
References
- Inbound:
2026-05-22-platform-mart-compute-repaired-and-promotion-scheduled - Parent thread:
2026-05-19-platform-mart-100-percent-deployment-per-domain-asks - Compute:
platform/lib/mart/sections/growth.ts, registryplatform/lib/mart/registry.ts - Schema evidence: Growth migrations
20260519080000_campaign_spend_daily_creative,20260519090000_campaign_spend_daily_impressions_clicks,20260519100000_lead_attribution_click_windows - Audit scripts:
platform/scripts/mart-audit-readiness.ts,platform/scripts/mart-audit-inventory.ts