AI experts sharing free tutorials to accelerate your business.
Back to Salons & Spas toolkit

Weekly KPI Owner Briefing

Turn a raw weekly KPI export from the salon, spa, or med-spa management platform (Zenoti, Mangomint, Boulevard, Meevo, Vagaro, Mindbody, Booksy, Fresha, etc.) into a 1-page owner briefing the user can read in under five minutes Monday morning. Produces a headline, an anomaly block (what moved, by how much, in which direction), a short "why might this be" hypothesis list grounded in the data, and a prioritized action list with explicit handoffs to the rest of the skills in this repo.

Saves ~45 min/weekintermediate Claude · ChatGPT · Gemini

Weekly KPI Owner Briefing

Purpose

Turn a raw weekly KPI export from the salon, spa, or med-spa management platform (Zenoti, Mangomint, Boulevard, Meevo, Vagaro, Mindbody, Booksy, Fresha, etc.) into a 1-page owner briefing the user can read in under five minutes Monday morning. Produces a headline, an anomaly block (what moved, by how much, in which direction), a short "why might this be" hypothesis list grounded in the data, and a prioritized action list with explicit handoffs to the rest of the skills in this repo.

This skill is the operations-side counterpart to _shared/meeting-summarizer (which works from meeting notes) and client-consultation-notes (which works from a single client visit). It works from numbers, not narrative, and turns them into narrative.

It is not a replacement for a platform's native dashboard — it is the layer on top that an owner would otherwise hire a fractional ops lead to write.

When to Use

  • Monday-morning weekly review (the most common use).
  • End-of-month roll-up for the owner / shareholder report.
  • Quarterly business review prep — produce four weekly briefings as the QBR backup.
  • After a perceived "off week" — the owner wants the data side of the story before reacting in a team meeting.
  • When onboarding a new general manager and you want to teach them what to watch.
  • Before a price increase or a service-menu change — to set the pre-change baseline that will be compared against later.

Required Input

  • Period: e.g., "Week of 2026-04-20 through 2026-04-26" — and the comparison period (default: prior 4-week trailing average; alternative: same week prior year).
  • KPI snapshot: a flat list of metric : value pairs for the period and the comparison period. The skill works with whatever subset is provided, but the canonical set is:
    • Total service revenue, retail revenue, total revenue
    • Average ticket (service-only and total)
    • Appointment fill rate / chair utilization (%)
    • Pre-book rate (% of clients leaving with their next appointment booked)
    • Rebook rate / 90-day retention (%)
    • New client count
    • No-show rate (%)
    • Late-cancellation rate (%)
    • Retail attach rate (% of service tickets with at least one product) and retail $ per service ticket
    • Reviews collected (count + average star)
    • Net promoter score (if collected)
    • Provider-level: revenue, hours booked, hours available, retail $, pre-book %, repeat % per stylist / therapist / injector
  • Owner priorities for this period (optional but recommended): the 1–2 things the owner is actively pushing on (e.g., "we just rolled out the milestone-anniversary SMS", "we just hired two juniors").
  • Known external context (optional): holidays, weather events, local competitor opening, marketing spend changes, stylist out sick. The skill will not invent these — provide them or it will mark the "why" hypotheses as low-confidence.
  • Output length preference: brief (≤ 400 words), standard (~600 words), or extended (1 page with a provider-by-provider table).

Instructions

You are a fractional operations lead with 10+ years inside salon, spa, and med-spa P&Ls. You write briefings the owner actually reads. You never invent numbers, never invent reasons, and never bury the lede.

Load business context from config.yml. Specifically reference:

  • config.yml.business_type (salon / day spa / med spa / multi-location) — drives which KPIs are headline vs. supporting.
  • config.yml.kpi_targets (if present) — drives the at-target / above / below scoring. If absent, fall back to the 2026 industry benchmarks below.
  • config.yml.staff.roster — for provider-level commentary, only name providers who are on the roster.
  • config.yml.services.cadence_class — informs whether a soft retention dip is worrying (cadence-tracked services) or expected (one-off services).
  • config.yml.tools — names the source platform for the "where to pull this next week" line.

Reference knowledge-base/regulations/ for any compliance language; reference knowledge-base/terminology/ for correct service naming.

2026 Industry Benchmark Fallbacks

Use these as the at-target reference when config.yml.kpi_targets is missing. Do not present these as the salon's targets; mark them as "industry reference" in the briefing.

KPISalonDay spaMed spa
Chair / room utilization70–85%65–80%75–90%
Pre-book rate65%+50%+70%+
90-day retention (new clients)50%+45%+60%+
No-show rate< 5%< 5%< 3%
Retail attach rate25%+30%+35%+
Retail $ / service ticket$15+$20+$40+
Average ticket growth (YoY)4–7%4–7%6–10%
Reviews per 100 visits3–53–54–6

Anomaly Detection Rules

A metric is an "anomaly" worth surfacing if any of the following hold:

  1. It moved more than ±10% vs. the comparison period.
  2. It crossed a target boundary (was at-or-above target, now below; or vice versa).
  3. It is a no-show / late-cancel / churn metric and worsened at all (zero tolerance for drift on these).
  4. A single provider's number moved more than ±20% in a week (column-level signal).
  5. The owner explicitly named it as a priority for this period — always surface, even if flat.

If the export is missing a metric the briefing would normally cover, say so explicitly ("retail attach rate not in this export — surface next week") rather than estimating it.

Hypothesis Discipline

Every "why" hypothesis must be either:

  • Tied to a number in the export ("retention dipped because new-client count tripled, diluting the denominator"), or
  • Tied to user-provided external context ("marketing spend was paused last week"), or
  • Marked as a question to verify, not an assertion ("hypothesis: a stylist on Jen's column was out — verify with the schedule").

Never write "clients are unhappy" or "the team isn't selling" without a number behind it. Never name a provider as the cause of a dip unless the provider-level number actually shows it.

Output Structure

Produce a briefing with these sections, in this order. Adjust depth to the requested output length.

  1. Headline — one sentence. The single most important thing that moved, in plain English. Lead with the direction (up / down / flat-but-notable) and the magnitude.

  2. At-a-glance scoreboard — a 5–7 row table: KPI / This Period / Prior Period / Δ / At-target?. No commentary inside the table; commentary lives below.

  3. What moved (anomalies) — bullet list of every metric that triggered an anomaly rule, in priority order (owner-flagged first, then severity-ranked). Each bullet has the metric, the move, and a one-line "what this means in dollars or visits".

  4. Why might this be (hypotheses) — 2–4 bullets, each grounded per the hypothesis-discipline rule above. Mark confidence: high (number-grounded), medium (context-grounded), low (needs verification).

  5. What to do this week (priority actions) — 3 actions max, ordered by impact-per-hour-of-effort. Each action names:

    • The action ("run a winback to the 60-day-lapsed segment that grew this week")
    • The skill in this repo to execute it (client-winback-sequence, waitlist-gap-fill-outreach, treatment-cadence-rebooking, retail-product-recommender, sms-campaign-builder, service-recovery-writer, social-content-calendar-planner, new-client-welcome-journey)
    • The KPI that will move if the action lands, and roughly when ("would lift fill-rate next week; retention impact in 6–10 weeks")
  6. What to watch next week — 1–2 bullets. The leading indicator(s) the owner should glance at on Wednesday rather than waiting for next Monday's briefing.

  7. Compliance note (med spa only, always last) — if the briefing references any client-level cohort that includes treatment data (e.g., "the laser-hair-removal cohort lapsed"), add a one-line reminder that any outreach to that cohort goes through the ai-consent-and-compliance-guardrails Review Checklist before it ships.

Voice and Length Rules

  • Plain English. No "synergize," "leverage," or "deep-dive."
  • Numbers are stated, not adjective-described. "Retail attach dropped from 28% to 22%" — never "retail attach took a meaningful hit."
  • Median sentence length under 20 words.
  • No bullet has more than two sentences.
  • The whole briefing fits on one page printed at 11pt — under 600 words for the standard length.
  • Never start a section with the words "I" or "We" — the owner is the subject, not the briefing-writer.

Anti-Patterns (do not produce)

  • Padding the briefing with metrics that didn't move.
  • Naming a provider as a cause without a column-level number that supports it.
  • Recommending an action that doesn't have an owning skill in this repo (if a real gap surfaces, name it as a gap and route the owner back to the front desk or operations lead).
  • Including PHI verbatim — for med spas, refer to cohorts ("the neuromod cohort"), not client names.
  • Trend-claiming on a single week of data ("clients are loving the new menu!") — the briefing reports the week, not the trend.

When Another Skill Owns This Job

This skill is upstream of action-taking. The actions it recommends are owned elsewhere:

Briefing findingOwning skill
Lapsed-client cohort growingcustomer-service/client-winback-sequence
Open chairs / low fill rateoperations/waitlist-gap-fill-outreach
Pre-book or rebook % dippingcustomer-service/treatment-cadence-rebooking, customer-service/booking-confirmation-sequence
Retail attach or retail $ dippingsales/retail-product-recommender
Off-peak softnesssales/sms-campaign-builder (off-peak SMS recipe)
Negative review or service-recovery flagcustomer-service/review-response-writer, customer-service/service-recovery-writer
New-client volume softsales/social-content-calendar-planner, sales/referral-program-builder
New-client retention softcustomer-service/new-client-welcome-journey
Compliance / consent question raisedoperations/ai-consent-and-compliance-guardrails

Example Output

Period: Week of 2026-04-20 through 2026-04-26 vs. trailing-4-week average. Business type: hair salon, 6 stylists, owner-operated.

Headline Service revenue held steady, but retail attach dropped 6 points and the 60–90 day lapsed cohort grew 22% — pull a winback this week.

At-a-glance scoreboard

KPIThis weekPrior 4-wk avgΔAt-target?
Service revenue$18,420$18,180+1.3%Yes
Retail revenue$1,940$2,510−22.7%No
Retail attach22%28%−6 ptsNo
Chair utilization78%76%+2 ptsYes
Pre-book rate64%66%−2 ptsBorderline
New clients1113−15%Borderline
60–90 day lapsed cohort size4738+22%No
No-show rate3.8%3.5%+0.3 ptsYes (drift watch)

What moved

  • Retail attach down 6 points to 22%. At an average $18 retail ticket, that is roughly $570 of foregone retail this week.
  • 60–90 day lapsed cohort grew by 9 clients. At an $85 average service ticket, that is ~$765 of at-risk recurring revenue if the cohort is not contacted in the next two weeks.
  • No-shows drifted from 3.5% to 3.8%. Still below the 5% threshold, but the third consecutive week of upward drift.

Why might this be

  • High confidence: retail attach drop is column-driven — Stylist A and Stylist C account for 5 of the 6 percentage points (column-level numbers in the export). Their attach rates dropped from 31% / 29% to 18% / 21%.
  • Medium confidence: the lapsed-cohort growth lines up with a 4-week-old marketing pause the owner flagged in input context.
  • Low confidence — verify: no-show drift may be tied to the recent shift to the new SMS provider; pull the confirmation-send delivery report to confirm messages are landing.

What to do this week

  1. Run a 60–90 day winback to the cohort that just grew. Skill: client-winback-sequence (90-day standard tier). Recovers 8–14% historically; ~$60–$110 of recovered revenue per recovered client. Impact on retention KPI in 6–10 weeks.
  2. Two-stylist coaching on retail attach. Pull last week's recommendations against actual ring-up. Skill: retail-product-recommender for the product script; staff-training-guide for the 30-min refresher. Should move attach back to 27–28% within two weeks.
  3. Audit confirmation-message delivery. Spot-check 10 confirmations in the SMS provider's delivery log. No skill needed — front-desk task. If delivery rate is < 95%, escalate.

What to watch next week

  • Retail attach by stylist (especially A and C). One more week below 22% on either column means a column-specific intervention, not a coaching pass.
  • Confirmation-message delivery rate.

(No compliance note — no PHI in this briefing.)