# 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 "on request" |
| **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.

Two price types are the exception, because they do not display an amount at all:
**Free** always charges nothing, and **On request** on a fixed price books at
zero so you can set the amount after you have seen the job. Neither one can be
read as a display-only choice. The full table is in
[the service reference](/docs/reference-services#what-each-price-type-shows-and-what-it-charges).

## 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.

## What happens to a booking's price when things change

A booking keeps the price it was made at. Change a service's price, or one
person's price for it, and new bookings get the new figure while the ones you
already have stay as they are. The calendar and the booking window show that
same stored price, and saving a booking keeps it.

A booking's price changes in three ways:

- **You change what the booking is.** Pick another service, team member or
  length in the booking window and the price follows, unless you typed it
  yourself.
- **You hand it to someone with a different price.** Drag it to their column,
  or use **Move visit**, and it takes their price. A massage booked with a
  senior therapist at €60 and given to a junior at €45 becomes €45; so does a
  private lesson moved between a head coach and an assistant. The price stays
  when you typed it yourself, when a discount code, a voucher or a promotion is
  on it, or when a payment has been recorded.
- **You choose to.** When a booking's price differs from today's, the booking
  window offers **Reset to catalog price**.

### 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.
- **Archiving a service removes it from the add-ons too.** To keep one as an
  extra but off your booking page's list, switch on
  [Only as an add-on](/docs/reference-services#a-service-offered-only-as-an-add-on)
  instead. It still needs a service that offers it.
- **Bookodile does not take the money.** Prices here decide what is quoted and
  recorded. Collecting payment is between you and the customer.
