HomeHelpAdministrationPricing Rules

Pricing Rules

Create and manage markup rules on the Pricing & Markup screen, and understand how the live calculation actually applies them.

Super AdminLast reviewed 28 Oct 2026

Was this article helpful?

Related Articles

User Management

The Super Admin screen at Admin > Users > User Management: creating users, editing, password resets, deactivating versus archiving, and bulk activate/deactivate.

Role Assignment

What each of the eight roles can reach, why there is no role hierarchy, and how to change a user's role.

Organization Setup

Creating an organization with the five-step wizard, then where departments, sections, budget codes, locations and user types are configured.

Previous

Organization Setup

Next

Company Settings

Markup rules control the amount TravelFlow adds on top of a supplier price before showing it to a client. Rules are managed on the pricing screen, which also holds analytics and a pricing calculator.

Opening the Pricing Screen

In the admin navigation, open the Settings dropdown and choose Settings > Pricing. The page header reads Pricing & Markup with the subtitle “Configure profit margins and pricing rules”.

Access: This page is restricted to the Super Admin role. Every other role is blocked by the route guard, including Consultant Admin and Accountant.

The rules themselves are read only by Super Admins, Consultant Admins and Consultants, who price with them in consultant search and on a new booking. Clients and accountants never receive them: a client’s hotel prices are worked out on the server, with the markup already added.

Three summary cards sit at the top: Active Rules, Total Rules and Combined Markup. Below them are three tabs: Markup Rules, Analytics and Test Pricing. The header also holds an Export Rules button and a New Rule button.

Warning Banners

  • Using Default System Pricing Rules — shown when every rule in the list was created by the system and none was created by an administrator. It offers shortcuts to create a custom rule or to open the Test Pricing tab.
  • Multiple Active Global Rules — shown when more than one active rule has global scope. It lists each rule and its value, because all of them stack additively on every booking.

Creating a Markup Rule

  1. Click New Rule. The Create New Markup Rule dialog opens.
  2. Under Basic Information, enter a Rule Name, a Priority (a whole number, minimum 1) and an optional Description.
  3. Under Application Scope, pick a Scope Type: Global (All bookings), Service Type, Specific Supplier, Specific Route, Department, Specific Client or Consultant.
  4. Under Applies to Service Types, tick Flight, Hotel, Car Rental, Conference, Transfer or Activity. Leave every box clear to apply the rule to all service types.
  5. Under Markup Configuration, choose a Markup Type and fill in its value, then choose an Apply Markup option (Before Tax, After Tax or Replace Commission).
  6. Optionally add Conditions and a Validity Period (Valid From / Valid Until).
  7. Under Display Options, tick Show markup breakdown to client and/or Activate this rule immediately, then click Create Rule.

On save, TravelFlow checks the new rule against existing ones and may show a confirmation dialog listing warnings, for example that another active global rule already exists, that another rule targets the same service type, or that the priority number is already in use. You can proceed or cancel. If you save an active global rule that overlaps an existing active global rule's service types, a second prompt offers to deactivate the existing rule.

Markup Types

  1. Percentage — a percentage of the base price. 12% on a R10,000 base price adds R1,200.
  2. Fixed Amount — a rand amount added to the base price, entered in the Fixed Amount field.
  3. Tiered (Based on price ranges) — a list of tiers, each with a Min Amount, Max Amount and Markup (%). The first tier whose range contains the base price is used; only that tier applies, the tiers are not stacked.
  4. Custom Formula — a free-text arithmetic formula.
Custom Formula does not price real bookings. The live markup calculation used by search results, baskets and documents handles Percentage, Fixed Amount and Tiered only. A Custom Formula rule contributes zero markup in the app; it is evaluated only by the Test Pricing tab. Do not rely on it for production pricing.
Rand amounts and foreign currencies. Fixed Amount values and fixed per-tier amounts are treated as rands. When the base price is not in ZAR they are skipped entirely and contribute nothing. Percentage values are currency-neutral and always apply.

How Matching Rules Are Combined

Every active rule is evaluated and the results are added together. Each rule computes its markup from the original base price, never from an already marked-up amount, so markups never compound. Because the results are summed, the order in which rules are evaluated cannot change the total.

Only two fields actually narrow a rule. The live calculation checks Applies to Service Types and, for flights, the rule's cabin classes. Everything else on the rule is ignored at pricing time: Scope Type, Priority, Conditions, Valid From / Valid Until and Apply Markup. A rule saved with Specific Client, Specific Supplier, Department, Route or Consultant scope is applied to every booking, not just the intended target, and the rule form never captures which client or supplier was meant. Treat scope as a label only, and use service types plus activation to control where a rule lands.

Priority does affect what you see: the rule list and the exported CSV are sorted by priority, and each rule is shown with its priority number. It does not affect the money.

Managing Existing Rules

The Markup Rules tab lists Active Rules first, then Inactive Rules if there are any. Each active rule shows its priority number, name, scope badge, markup type and value, plus these actions:

  • Expand Details — shows the Apply Markup setting, service types, cabin classes, the two display-option flags, the created date and creator, and the tier list for a tiered rule.
  • Edit Rule — reopens the dialog as Edit Markup Rule.
  • Duplicate Rule — creates a copy of the rule.
  • Delete Rule — asks for confirmation, then removes the rule permanently.

Inactive rules are listed separately with a single Activate button. There is no deactivate button on an active rule: to switch one off, open Edit Rule and clear Activate this rule immediately, or accept the prompt that offers to deactivate a conflicting global rule when you save a new one.

Creating, updating, activating, deactivating, duplicating and deleting a rule each write an entry to the audit trail under the SYSTEM SETTINGS module, and so does switching off a conflicting global rule. The server saves the change and writes the entry together.

Exporting Rules

Export Rules downloads a CSV named markup-rules-YYYY-MM-DD.csv containing Name, Type, Scope, Value, Priority, Status, Service Types, Valid From, Valid Until and Created for every rule, active and inactive.

Test Pricing Tab

The Pricing Calculator takes a Base Price (R), Service Type, Cabin Class, Departure Date, Passengers and Advance Purchase (days). Calculate Markup shows Base Price, Total Markup, Final Price, the list of applied rules with each rule's contribution, and a profit margin percentage.

The calculator is not the live pricing path. It is a separate implementation that honours validity dates, conditions and custom formulas, none of which the live path uses, and it applies fixed amounts regardless of currency. A rule can therefore price one way in the calculator and a different way in real search results and documents. Verify a new rule against an actual search before relying on it.

Analytics Tab

The Analytics tab describes the rule set itself, not realised revenue. It shows a Rule Distribution Overview, bar charts for Rules by Markup Type and Rules by Scope, a Service Coverage Analysis that flags service types with no rule covering them, and a Detailed Rule Breakdown table (Name, Type, Scope, Value, Status, Priority, Created). With no rules saved it shows “No Rules to Analyze”.

Tip: Keep the number of active rules small. Because every matching rule is summed, a forgotten second global rule silently inflates every price, which is exactly what the Multiple Active Global Rules banner is warning you about.