CoachNed
Envelopes, gold bar, and a leather ledger

Frameworks

Pricing Cases: Floor, Ceiling, and Who Moves

Price between cost floor and willingness-to-pay ceiling, then competitor response. Worked example: HVAC-tech SaaS seat vs per-job pricing.

UpdatedReviewed by Ned

A pricing case is where to set the meter: below the customer’s willingness to pay, above the cost floor, and after you have guessed how rivals and channels react. It is not a 4P tour and not a profitability diagnosis (though a price change can be the driver — isolate that on the profitability page first if the prompt is “profit fell”).

Do not announce “cost-plus vs value vs competition.” Use those as tests: floor, ceiling, response.

Three tests, one recommendation

TestQuestionIf you skip it
FloorVariable cost + needed contributionYou price below cash cost
CeilingWhat the budget owner will pay vs next bestYou price a feature, not a job
ResponseWill a rival or channel force you backYou book a one-year fantasy

Elasticity is the link from price to volume. You rarely get a textbook elasticity. You get: last year’s promo, a lost-bid file, or a “10% more seats if we cut 8%.” Bound it.

Worked example: seat vs job for field software

Prompt. Dispatchly sells scheduling software to HVAC contractors. Today: $79 / tech / month ($948 / tech / year). 6,400 techs on the platform. A product manager wants $6 per completed job instead, because “we capture value when they are busy.” Average contractor: 18 jobs / tech / month. Interviewer: should we switch the meter?

Floor (today). COGS (hosting, SMS, support) $11 / tech / month. Floor is not $11 if you need to cover sales; for incremental pricing, $11 is the cash floor. Contribution today: 79 − 11 = $68 / tech / month. Annual contribution 6,400 × 68 × 12 = $5.22m.

Floor (per job). Same COGS is basically per tech, not per job (SMS might tick up). If they truly bill per job, bad month for the contractor is a bad month for Dispatchly — cost is still there. Per-job shifts utilization risk onto the vendor. Floor in a slow February (11 jobs/tech): revenue 11 × $6 = $66 vs $79 today. Contribution $55 vs $68. Winter hurts more under per-job.

Ceiling. The budget owner is the owner-operator, not the tech. Next best is a generic FSM suite at $55–90 / user. Job-based billing feels fair when busy: 18 × $6 = $108 / tech / month37% above today’s $79 and above many rivals’ seat prices. Ceiling on a seat is ~$90. Ceiling on per job is whatever still beats hiring a dispatcher. $108 may clear value and fail the invoice test: owners compare to $79 and to $90 incumbents, not to “value per job.”

Volume / attach. PM assumes jobs stay 18. Reality: contractors stop logging small jobs to dodge $6, or they churn. If logged jobs fall 25% (18 → 13.5) at $6: revenue $81 — only slightly above $79, with angry customers and worse data (the product needs logged jobs). If they stay at 18: revenue $108, contribution $97, +$1.7m / month on 6,400 techs — $20m/year extra. That is the PM’s slide. It assumes zero elasticity of logging and zero churn.

Response. Two rivals will advertise $79 flat the week you move. Switching costs are moderate (history in the app). A 12-month blended outcome: 15% of techs churn, remaining mix 70% stay on $79 grandfather, 30% on $6 × 16 jobs (some under-logging). That is a model; even a crude version says you do not capture $20m.

Recommendation. Do not switch the installed base to per-job. Offer per-job as optional for seasonal burst crews (temp techs) where seat billing is awkward, at $6 with a $40 / tech floor so February does not go to $20. Keep $79 (test $85 on new logos only; ceiling vs $90 rivals). Risk: PM ships per-job as default in the next contract cycle. Next step: 40-contractor A/B on new logos, not a forced migration.

Number to remember: 18 × $6 = $108 vs $79 today is a 37% list hike disguised as a metric change. Treat it as a price increase, not as “alignment with value.”

When pricing is the wrong first tree

You do not know if price moved. Profitability bridge first.

The product does not exist. Launch attach and willingness; then meter.

The issue is list vs collected in a hospital (chargemaster vs contracted). That is still pricing, but the “ceiling” is a payer contract, not a consumer WTP survey. Different exhibit, same floor/ceiling/response tests.

The mistake unique to pricing cases

Changing the unit of the meter and pretending it is not a price change. Seat → job at $6 was a 37% raise at average utilization. The unique fail is repackaging. Interviewers want you to convert to $ / tech / month and compare.

Second: cost-plus 20% as the answer. Floor is a constraint, not a destination. Dispatchly’s plus-20% on $11 is $13.20 — a different product.

How to open

“I will convert every scheme into dollars per tech per month, check cash floor in the slow month, check the owner’s next-best at $55–90, and treat a $79 to $108 move as a price hike that rivals will advertise against.”

Then the winter floor and the 37% hike. That is the case.

Convert the meter to one unit

Pricing prompts in structure drills: one comparable unit, then response. Not three textbook strategies.

Start a structure drill