Goals & KPIs
The actionable thresholds and pricing anchors that marketing agents reference, plus a pointer to where the real metrics live.
Most operational metrics are already computed. They live in the analytics.* schema views and on Metabase dashboards. Marketing agents read those — they don't reinvent measurement.
Source of truth: existing analytics infrastructure
All occupancy, utilization, tour funnel, retention, and revenue metrics are already defined and computed. See the engineering/infrastructure/analytics for the full catalog. Headline pointers:
| Metric | Analytics view (analytics.*) |
Dashboard |
|---|---|---|
| Monthly occupancy | occupancy_monthly |
Owner → Monthly Studios; CM → Occupancy |
| Hourly utilization | utilization_daily |
Owner → Hourly Studios; CM → Utilization |
| Tour funnel & conversion | tour_events, tour_pipeline |
Owner → Tours; CM → Tour Pipeline |
| Monthly churn | churn_monthly |
Owner → Monthly Studios |
| Tenure / active subs | subscription_months, active_subscriptions |
Owner → Monthly Studios |
| MRR | mrr_monthly |
Owner; Bookkeeping → Revenue |
| Hourly revenue & bookings | hourly_bookings, hourly_revenue_by_source |
Owner → Hourly Studios |
| Booking patterns | booking_heatmap, booking_hours |
CM dashboard |
| Insurance penetration | insurance_monthly, insurance_by_tier |
Owner → Insurance |
Metabase: http://homelab:3100. Read-only Postgres role: metabase_readonly. Formula definitions (occupancy, utilization, tour conversion, MRR, churn) live in the analytics page (docs/engineering/infrastructure/analytics.md) — agents must use those formulas, not invent their own.
Rule: If a metric exists in an analytics view, agents query the view. If it doesn't, agents flag the gap rather than computing a new definition on the fly.
Actionable marketing thresholds
The operational rules that drive when and how we invest in marketing.
| Trigger | Threshold | Action |
|---|---|---|
| Per-location monthly occupancy drops below... | 90% | Kick in marketing investment for that location. |
| New location time-to-fill | 90 days | Target. Cherry City currently behind (5+ months in). See paid-meta.md Funnel strategy for the catch-up plan. |
| Tour → Member close rate | ~80% (historical) | Informational — sets the funnel expectation. Reports flag deviations. |
| Current paid-Meta tour generation | 4–6 tours/month | Baseline from minimal historical ad spend. Attribution caveats apply (see paid-meta.md). |
Per-location occupancy is the single most important marketing trigger. When a location dips below 90%, marketing investment for that location goes up. When the network is at or above 90% across locations, paid spend can scale back to maintenance levels.
Pricing & LTV anchors
Used for ad copy, agent CAC reasoning, and pricing claims.
| Anchor | Value | Source |
|---|---|---|
| Lowest monthly studio price | $285/mo | Settled. Reflected in copy as "from $285/mo." |
| Lowest hourly studio price | $15/hr | Settled. Reflected in copy as "from $15/hr." |
| Monthly price range | $285–$500+ depending on size + location | Per STUDIO_SIZES enum + /monthly page. |
| Member LTV (gut estimate) | ~$12,000 | Aaron's working number. Use for CAC reasoning. |
CAC reasoning rule of thumb (until we set ceilings explicitly): acquisition cost above ~10% of LTV (~$1,200) deserves scrutiny. This isn't a hard rule — it's the point where an agent flags the campaign for human review.
Marketing automation system meta-KPIs
Captured in the Asana foundation task. Not duplicated here. Headline: 0 hard-guardrail violations, ~$0 marginal cost, time-saved + draft-quality assessed qualitatively until we have data.
How to use this doc when generating reports (AI agents, read this)
- For any metric, check the analytics views first. If
analytics.occupancy_monthlyanswers the question, query it. Don't reinvent the calculation. - Lead reports with the per-location occupancy view. That's the metric that drives marketing decisions. Locations below 90% are the call-to-action; locations at or above are the proof-of-product.
- Pricing claims must match the anchors above. $285/mo and $15/hr. Update this doc the same time the underlying minimums change.
- Don't pad reports with metrics that aren't already measured. If you find yourself wanting a number that isn't in the analytics views or the thresholds above, flag the gap for human decision rather than generating a new definition.
- Attribution-related metrics defer to
paid-meta.mduntil the attribution investigation produces a grounded methodology.
Related docs
- engineering/infrastructure/analytics — analytics views, dashboards, formulas (the actual measurement layer)
docs/marketing/paid-meta.md— paid Meta strategy, lessons, attribution statusdocs/marketing/icp.md— who we're targetingdocs/marketing/guardrails.md— agent autonomy boundaries (especially budget controls)