> ## Documentation Index
> Fetch the complete documentation index at: https://help.odia.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Dynamic Pricing

> How Odia calculates a service's selling price from its cost, and how to work with the Dynamic Pricing dialog.

## Overview

Open a service's Dynamic Pricing dialog from the Journey Builder or the [Journey Financials](/features/journey-financials) tab. The dialog has three parts: an optional supplier-prices basket on the left, the pricing fields in the centre, and a margin recap on the right that's always visible while you work.

For a **Marked-up** service, the centre column flows cost → selling price: enter the **Cost**, then Odia calculates the **Selling price** for you using your markup and commission settings. Client-direct and supplier-commission services work the other way — selling price first, since the client pays the supplier directly or the commission is tracked separately from a marked-up price.

## The Formula Breakdown

When a markup is applied, a **Formula details** section shows exactly how the cost becomes the selling price, in order:

1. **Cost** (× quantity, if more than one)
2. **× exchange rate** — only shown if the cost and selling currencies differ
3. **× markup factor**
4. **÷ commission divisor** — labelled "commission" or "commission (ref *rate*%)" depending on your tenant's commission method
5. **+ tax rate** — if a tax rate applies
6. **Round up** — if your pricing is configured to round up

## Margin

The right-hand recap panel always shows **Net margin** (or **"You keep"** for a client-direct service) as a currency amount, plus a percentage badge. Both are colour-coded by margin health — the same health tiers used elsewhere in Odia (excellent/good/warning/loss).

## Markup

The markup row starts inactive with an **Apply markup** button. Once applied, a **×** button removes it. The markup dropdown groups your options as **Category Markups** or **Global Markups** — matching the [markup hierarchy](/features/settings#markup-hierarchy): a price-level selection you make here wins, then the category default, then the global default. The dialog shows the active markup's name and value, though it doesn't call out which tier it came from beyond that grouping.

## Travel Agent Commission

The commission row works the same way as markup — an **Apply commission** button when inactive, a **×** to remove it. Once active, the rate itself is a directly editable field (with a **%** suffix) rather than a separate click-to-reveal step — type a new rate to override the Journey's default commission for this one service.

## Override The Calculated Price

While a markup is applied, a toggle switches between:

* **Use formula** — the selling price is read-only and calculated automatically
* **Override** — the selling price becomes an editable field, so you can type a custom price instead of the formula result

## Price Drift Warning

If a service has a manually overridden price that no longer matches what the current formula would produce (off by more than a cent — for example after you've changed a markup), a banner appears: *"Saved override **X** differs from formula **Y**."* Choose **Use formula** to switch to the calculated price, or **Keep override** to leave your saved price as-is. Nothing changes until you pick one.

## Missing Prices

Services with a cost but no selling price show an amber warning icon with a **"Missing price"** tooltip in the Journey Financials list, and their Price/Margin columns show "—" instead of a value. This is a per-row indicator in the list — not something shown inside the pricing dialog itself.

## Currency On A Service

Each service in a Journey carries **two independent currencies**, both editable in the service's price dialog:

| Row in the price dialog | Currency it sets |
| - | - |
| **Cost** | What you pay the supplier |
| **Selling price** | What you charge the client |

Each row has its own currency selector next to the amount, so you can change the cost currency, the selling currency, or both.

The two do not have to match. If a supplier quotes you in USD but you sell the trip in EUR, set **Cost** to USD and **Selling price** to EUR — Odia converts between them using the rates on **Settings > Financial > Currencies > Exchange Rate Settings** when it works out your margin.

New services start with your account defaults — the **Cost Default** on the cost and the **Selling Default** on the selling price. Each service keeps its own currencies, so different services in the same Journey can use different currencies. The currency your client sees is chosen separately, from the currency symbol in the Journey preview toolbar (see [Journey currency](/features/journey-designer#journey-currency)).

<Note>
  If an exchange rate is missing for a pair you have used, the Journey pricing view warns you which conversion it could not make. Add the rate in **Settings > Financial > Currencies > Exchange Rate Settings**.
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.