# Services, prices and durations

> The four ways a price can be worked out, why the price shown and the price charged are separate settings, and how one service can take different people different amounts of time.

_Last verified: 2026-09-05. Source: https://bookodile.com/docs/services-and-pricing_

> This page is about the prices **you charge your customers**. For what
> Bookodile costs you, see [What Bookodile costs](/docs/what-bookodile-costs).

A service is the thing a customer books. It carries a name, a duration, a price
and the list of people who can perform it — and each of those is more flexible
than it first looks.

## Two separate price settings, and mixing them up causes most confusion

There are two independent settings, and they answer different questions:

| Setting | Question it answers |
|---|---|
| **Price type** | What the customer *sees* — a fixed price, "from €25", a range, free, or custom |
| **Pricing model** | How the price is actually *worked out* when they book |

So a service can advertise "from €25" on your booking page while the real price
is resolved from whoever the customer picks. That is a feature, not a
contradiction — but it means changing the displayed price does not change what
anyone is charged, and vice versa.

## The four pricing models

**Fixed.** One price, whoever performs it. A €15 haircut is €15.

**Per employee.** Each assigned person has their own price for that same
service. Senior €30, junior €20, and the customer sees which is which when they
choose.

**Per category.** People are grouped into categories, and the price is stored
per category rather than per person. Two prices to maintain instead of eight,
and a new hire is priced the moment you put them in a category.

**Hourly.** An hourly rate plus a minimum and maximum number of hours. The
customer chooses how long they want. Used for rooms, equipment and studio time
rather than treatments.

### A missing price is fatal, and that is deliberate

If a service is priced per employee and someone assigned to it has no price,
that person is **removed from the customer's picker** rather than shown and then
rejected. Same for per-category pricing when someone has no category, or their
category has no price for that service.

It looks like the person has disappeared from your booking page. They have — and
the reason is always a missing price somewhere. Check the service, not the
person's profile.

## Duration works the opposite way

Duration has its own mode, separate from pricing:

- **Fixed** — the service takes the same time for everyone.
- **Per employee** — each person can have their own duration for that service.

The same haircut genuinely takes an experienced stylist 30 minutes and a new
graduate 90. Set the service to per-employee duration, type 90 next to the one
person who needs it, and everyone else is timed exactly as before.

**Unlike price, a missing duration is never a problem.** Leave someone's
duration blank and they use the service's own duration. Nobody is removed from
the picker, and no booking fails. That asymmetry is intentional: a missing price
has no correct answer, a missing duration does.

Per-employee duration does not apply to combos (each stage carries its own
timing) or to hourly services (the customer chooses the hours).

## Buffer time is real time, not a note

Every service has a buffer, and it affects what can be booked — it is not
display metadata.

A 30-minute service ending at 10:30 with a 5-minute buffer means the same person
cannot start another booking until 10:35. For a service that uses a room or a
piece of equipment, the buffer blocks the *resource* the same way.

Both your booking page and the booking API enforce this, so it holds whether the
customer books through the page or something posts to the API directly.

## Categories do more than tidy the list

Service categories sort your catalogue and make the booking page scannable, but
they also carry upsell rules and a default limit on how many add-on items can be
attached to a booking. A service can also have no category at all.

The order you drag services into is the order customers see. That is worth
thirty seconds — the first three services on your page get most of the clicks.

## Worked example

A salon with three stylists and one colour service:

- Pricing model: **per category**. Categories are Senior (€45) and Junior (€30).
- Duration mode: **per employee**. The two seniors are left blank so they use
  the service's 60 minutes; the junior is set to 90.
- Buffer: 15 minutes, for the clean-down.

A customer picking the junior sees €30 and is offered a 90-minute slot. The next
booking for that junior cannot start until 105 minutes after the first began.

## Limits

- **A service can only use one pricing model at a time.** There is no "per
  employee, except on Tuesdays".
- **Price and duration modes are independent** and must be set separately. Being
  per-employee priced does not make a service per-employee timed.
- **Archived services keep their bookings.** Archiving removes a service from
  the booking page; it does not touch history.
- **Bookodile does not take the money.** Prices here decide what is quoted and
  recorded. Collecting payment is between you and the customer.
