Nabu
Financial Workspace

Profitability

Which services, providers, devices and clients actually make money, what each figure means, and how committed and variable cost are kept apart.

What this page answers

Revenue tells you what came in. Profitability tells you what you kept, and where the rest went.

Every figure here separates two kinds of cost, because they lead to different decisions:

Incremental cost exists only because the appointment happened. Consumables, provider commission and variable pay, and payment fees. Revenue less incremental cost is contribution, and it answers "does one more booking help".

Committed cost is owed whether or not anyone books. Device lease and maintenance, provider base pay, room occupancy and general overhead. Contribution less the committed cost allocated to a service is its absorbed result, and it answers "is this service carrying its share of the business".

Owner draw and debt service appear in neither. They are cash leaving the business, not the cost of running it, so they never touch a profit or margin figure here.

Reading the status badge

A service is judged on its absorbed margin against the minimum margin you set in Setup. If you have not set one, the medspa market standard applies:

BadgeAbsorbed marginWhat it means
HealthyAt or above your target, or 30%Carrying its weight
WatchApproaching your target, or 20% to 30%Acceptable, worth attention
LeakBelow, or 10% to 20%Losing ground
CriticalWell below, or under 10%Failing
Setup errorNot measurableCost setup is wrong, so the row is excluded from rankings
No salesNo appointmentsNothing sold in this period

Contribution margin deliberately has no badge. Injectables run 40% to 60% because product is most of the cost, while lasers and skin services run 70% to 85%. One threshold across all of them would flag normal services and clear weak ones.

Service profitability

ColumnWhat it means
PriceCurrent menu price
ApptsAppointments in the selected period
RevenueRecognized revenue, from invoice line items, so tax and tips never enter. Work delivered but not yet paid counts. The service rows, plus retail, cancellation and no-show fees, and any sale not tied to a service, less recorded partial refunds, add up to the recognized revenue on the Financials page
Variable costIncremental cost only: consumables, commission, variable pay, payment fees
ContributionRevenue less variable cost
CM %Contribution as a share of revenue
Total costIncremental plus the committed cost allocated to this service
Fully loaded profitRevenue less total cost: what the service leaves after carrying its share of the rent, base pay, devices and overhead it needs. Not the business's net profit
Contribution / minContribution per minute of provider time. Named for contribution, not profit, because the Fully loaded profit column beside it is after committed cost
DiscountShare of list price given away, measured against today's list price. If you changed a price after the period, this column restates the period at the new price
DriverThe largest cost in the stack, or the two largest when they are close

Expand any row for the per-appointment cost stack, split into incremental and committed so you can see which part you can act on immediately and which part needs volume or renegotiation.

The period view's contribution trend costs each month on its own deliveries, at that month's product cost, pay and fees, so choosing a different period does not change earlier months, and the selected month's point matches the service rows. A performed visit that brought in no revenue, such as a membership benefit visit, has no row here; its cost is counted once, with the Financials page, so the two pages agree.

The setup banner

When a service's cost setup produces an impossible number, the page says so rather than reporting it. A delivery cost more than three times what the service brings in per delivery is a data entry error, not a business result. The banner names the service, the dollars it is distorting, and the exact field to change, and the row is excluded from rankings and charts so one bad row cannot poison the rest of the page.

It also flags services whose product cost is incomplete: no products mapped, no manual estimate, a product with no cost entered, or a quantity Nabu cannot cost. A missing cost is never counted as $0, so that service's contribution reads high by it until the setup is finished. If a service truly uses no products, enter a manual product cost of $0.

It flags services delivered by someone whose pay could not be costed: no provider on the visit or the sale, or a provider whose pay settings are not set up. Their commission and per-service pay are missing, so contribution reads high until the provider is set up.

And it flags services with no treatment room assigned, which is why their revenue is missing from the Rooms tab.

Providers

Contribution excludes base pay, because you owe it either way. Instead you see three separate numbers: the full committed base pay, how much of it was absorbed by actual appointments, and how much sat idle on unbooked hours. Idle base pay is the cost of an empty chair, and it is the number most worth acting on.

Utilization is measured against the provider utilization target you set in Setup. If you have not set one, Nabu does not assume one: no provider is marked underutilized and no capacity finding is raised until you do. A provider with no working hours entered shows utilization as not available rather than 0%.

Revenue per appointment is the provider's revenue divided by their completed appointments. It is not the average ticket on Financials, which divides all revenue by revenue-generating invoices.

Committed pay per booked hour is base pay only. Commission is listed above it on the same card and is not included, so read it as what an hour of scheduled time costs you rather than as a price floor.

Devices

Each device shows its own contribution, its lease and maintenance for the period, and the net result after both. The lease is charged once, here, and never inside a service's contribution.

Coverage tells you how many times over the device's contribution covers its committed cost. It is withheld for devices with a trivial monthly cost, where the multiple is arithmetic noise rather than a finding. A device with no lease recorded at all reads as setup incomplete instead of healthy, because a machine that appears to cost nothing will always look like your best performer.

The cost block lists lease, maintenance, consumables, and the commission and payment fees on the services that device delivered. The four add up to the total.

Memberships

Each plan card shows four figures for the selected period: Active Members, New Members, Membership Exits and Recurring Billing as a monthly equivalent. Exits are the plan's memberships that were cancelled, expired or ended in the period, with the plan's exit rate against its memberships in force at the start when it can be measured. A member who switched to another plan left this one, so the switch is an exit here even though it is not Member Churn, which is on the Financials page. The figures are counted the same way as on the Financials page, from client memberships and their recorded history, and each shows as Not available, with the reason, when the membership data cannot support it. Memberships explains each figure.

Below them are the figures that come straight from invoices: benefits redeemed, the cost of delivering them, member discounts given, and member spend beyond the fee. Member spend is marked as already counted in Services. It is real value the plan creates, but those dollars appear on the Services tab too, so including them in the plan's own figures would count them twice.

A plan's contribution and margins, benefit value issued, utilization, the unredeemed benefit balance and member lifetime value are not shown yet. Each needs a rule for recognizing membership fees or valuing the benefits a plan issues, and Nabu will not print them until that rule is in place. Plan and member profitability are planned for a later release.

Gift cards

Selling a gift card is not revenue. Cash arrives with an obligation to deliver later, so the sale is a liability and revenue is recognized when the card is redeemed. Gift cards sold is what clients paid for cards in the period, the same figure Financials shows.

The outstanding balance, lifetime redemptions, the redemption rate, expired balances and breakage are not available yet. Each needs every card's balance after redemptions, and the connected gift card records carry the amount each card was sold for without being drawn down as it is used. Nabu shows Not available rather than reading lifetime sales as a balance.

Promotions

A campaign's cost is the cash you spent plus what any giveaway cost you to deliver (not its menu price), counted once. Campaign spend is scoped to the selected period, so a cost that starts next month does not appear against this one.

Attributed revenue, new clients and appointments are campaign-to-date figures, because manual attribution carries no date. Everything compared with them is campaign to date too, in its own block named "Campaign to date", so it is never read against the period figures above it: attributed revenue, attributed revenue less the campaign's spend to date, and the share of revenue left after that spend. That is revenue less spend, not profit, because the cost of delivering the attributed sales is not known.

CAC is the campaign's spend to date divided by its new clients. ROAS is attributed revenue divided by the campaign's full cost, cash plus what giveaways cost to deliver; cash ROAS divides the same revenue by the cash alone. Marketing ROI is not available: it needs the profit on the attributed sales, and attribution is entered as totals rather than as sales.

If a campaign records more new clients than appointments, the card says the attribution needs correcting and CAC is withheld. That combination cannot happen, and a cost per new client divided by it would read far lower than reality.

Rooms

Utilization compares booked hours against the room's open capacity for the period. The value of unused hours is shown only when the room earns a positive rate per booked hour, because idle time in a room that loses money is not lost opportunity, and only when you have set a utilization target, because the hours worth selling are the hours up to your target.

A room can also be below target because there is nobody to staff it. Most locations have more room hours than provider hours, so rooms are rarely the real constraint. When provider hours are what caps a room, it reads as provider capacity limited rather than underutilized, and the utilization bar carries a marker at the highest figure your current staffing can reach. Past that marker the answer is hiring, not the room.

Rooms with no service mapped to them say so, rather than appearing as idle.

Clients

Each client row shows the client's revenue, contribution and visits for the period. A visit is an invoice with a service, a product or a consultation on it. A cancellation or no-show fee is revenue, so it counts in the client's revenue, but it is not a visit: it never adds to their visits or becomes their last visit. Revenue per visit and profit per visit divide by those visits, so a client whose only activity in the period was a fee shows neither.

Retail a client bought costs what that product cost you, from the product the sale names. Nabu never assumes a retail margin: where a sale names no product with a cost, that cost is missing, and the note under the table says how much retail it affects.

The period comparison on the overview splits a change in contribution into volume, price and delivery cost. Price there is revenue per delivered service, not the average ticket on Financials, which divides all revenue by revenue-generating invoices.

What is not here

Marketing is never allocated to individual services. It buys demand for the business, not the delivery of one appointment. It appears in full on the Promotions tab.

Committed cost that reached no service is reported as unabsorbed rather than hidden. If a large share of your commitment is unabsorbed, the business is carrying capacity it is not selling, and that is a capacity or demand conversation rather than a per-service one.

On this page