Skip to main content

Understanding pricing

Every shopping and booking response carries several monetary fields. This page explains what each one means, how your org margin is applied, and why the price breakdown shown to a guest does not line up with your cost.

The three prices

PriceFieldWhere it comes from
CostnetThe provider — what the agency pays the supplier
Provider retailgross / suggestedThe provider — recommended / minimum selling price
Your selling pricemarkupGrossgross + the margin your org configures per connection

net and gross/suggested come straight from the provider. markupGross is the only price Bundleport computes, by adding your org margin on top of the provider gross — never on net.

markupGross  = gross + orgMargin     // PERCENTAGE: gross × (1 + rate); FIXED: gross + amount
marginAmount = markupGross − gross

When no margin is configured (or skipMarkup: "true"), markupGross = gross and a NO_MARKUP_CONFIGURED warning is returned. If the provider sends only a net price, then net = gross = suggested and there is no provider margin.

Two ways to read the total

The same total can be split two different ways. They answer different questions, so the two splits do not match each other — only the total is shared.

1. Selling split (what the guest pays)

Room portion vs taxes/fees. This is what price breakdowns show:

Total (gross / suggested)        77.52
├─ Stay amount (room, ex-tax) 69.88 = total − taxes/fees
└─ Taxes and fees 7.64 = sum of included tax/fee surcharges

Stay amount is derived (total − taxes − sales tax − margin) so the lines always reconcile with the displayed total. It is not a field returned by the provider.

2. Cost split (what you pay vs provider margin)

Total (gross / suggested)        77.52
├─ Net (your cost) 71.14
└─ Provider margin 6.38 = gross − net (a.k.a. marketing fee)

Why Stay amountNet

This is the most common question, so it is worth stating plainly:

  • Stay amount (69.88) is on the selling side, with taxes/fees removed.
  • Net (71.14) is the cost side, and still contains its own share of taxes.

They are two different subtractions from the same total (total − taxes vs total − provider margin). Any closeness between the two numbers is a coincidence, not a relationship. The provider does not expose a "net excluding taxes", so the two breakdowns never reconcile beyond the total.

Stay amount (69.88)Net (71.14)
SideSelling (retail)Cost (what you pay)
Taxes/feesExcluded (shown on their own line)Included inside
Derived fromtotal − taxestotal − provider margin

Binding (minimum selling price)

When binding: true, the provider gross/suggested is a minimum selling price: you must not sell below it. It does not change how the margin or commission is calculated — it only sets the floor for your selling price. Because markupGross = gross + margin, your selling price is always ≥ the binding price.

Commissions vs provider margin

  • Provider margin (gross − net) comes from the provider and is shown in the cost view automatically when the provider reports both prices.
  • Commissions are modelled by your organization (in Connect → Commissions) to surface agency earnings in the breakdown. Configure them when the provider does not report a margin and you still want earnings visibility.

See also: Data Models → Price and Surcharge vocabulary.