Pricing Coach — Per-Product Margin Health

How margin health is computed, how to apply suggested prices safely, and how Pricing Coach differs from the Scale-tier Pricing Optimizer.

What It Is

Pricing Coach shows every product with its margin health color-coded (green / yellow / red) and a one-click Apply button to update prices. Available to Growth+ bakeries at /dashboard/growth/pricing.

How Margin Is Computed

margin % = (basePrice − cost) / basePrice × 100

basePrice is your product price. cost is computed automatically by the ingredient → recipe → product cascade. When you edit an ingredient cost, Product.cost updates within seconds.

Health Classification

StatusDefinitionColor
HealthyMargin ≥ target (default 60%)Green
WarningMargin between critical and targetAmber
CriticalMargin below critical (default 40%)Red

Both thresholds are editable per bakery in Growth Coach settings:

  • Target margin — range 30-80, default 60. Industry norm for bakeries is 60-70%; premium/custom often 70-80%+.
  • Critical below — must be lower than target. Default 40.

Suggested Prices

For any non-healthy product, Pricing Coach computes:

suggestedPrice = cost ÷ (1 − target/100) rounded up to 2 decimals.

Example: cost $2.50, target 60% → suggested $6.25 (marked "Increase by $X.XX to reach 60% target margin").

Safety Caps

Two layers of protection prevent runaway price changes:

  • 3× cap on suggested prices — if the raw target price would be more than 3× the current price, it's clamped and flagged with a "capped" badge. This usually means the cost basis needs review, not a 5× price hike.
  • Tenant-scoped update — Apply uses a multi-condition update that re-checks the product belongs to your bakery at the moment of write. Prevents any race condition between display and click.

Applying a Suggestion

Click Apply on any row:

  1. Default behavior: a confirmation dialog "Update Product from $X to $Y?" — click OK to commit.
  2. The suggested price is editable in the row — change it before clicking Apply if you want a different number.
  3. On success, the row updates and the margin recomputes. No page refresh needed.

Turn off the confirmation dialog in settings ("Ask before applying") if you trust the suggestions and want 1-click apply.

Bulk Apply?

Intentionally not supported. Every price change is a deliberate, one-at-a-time action. Bulk apply is error-prone and customer-visible; the friction is by design.

Pricing Coach vs Pricing Optimizer (Scale tier)

Bakeries on the Scale tier see both — not two tiers of the same feature:

Pricing Coach (Growth+)Pricing Optimizer (Scale only)
ScopePer-product margin check + suggested priceScenario sim, elasticity modelling, competitor analysis
WorkflowDaily check, one-click applyDeep analysis, what-if scenarios
EngineDeterministic math + Haiku phrasingSonnet reasoning over rich context

Growth Coach's Pricing Coach is the daily health dashboard. Pricing Optimizer is the workbench you open when you want to deliberately re-price a line.

What Happens With 0 Products or Missing Costs

Products with basePrice = 0 or cost = 0 are excluded — we can't compute a meaningful margin. If none of your products have valid cost + price data, the page shows an empty state with a link to the product editor.

Relation to Margin Alerts (Spec 039)

The Spec 039 dashboard margin-alert banner ("N products below target") and weekly digest margin section use the same computation. Clicking the banner lands you here on Pricing Coach to actually fix the flagged products.

See Also

Was this article helpful?