Pricing Rules
Flight pricing — a flight's price is the sum of every matching rule, each one driven by condition branches (if … else …) and versioned by effective date.
What it is
Pricing rules price every flight. A flight’s total price is the sum of every rule that matches it — there is no “first match wins” — so a single flight can stack a flight fee, a tow fee, an instructor fee and more, each from its own rule.
Within a single rule, the condition branches are evaluated top to bottom, and the first matching branch sets that rule’s price. A branch with a price of 0 adds no charge. Rules are versioned by effective date, so a historical flight bills at the price that was active on the day it flew.

A single rule lays out its conditions as “if → then” branches.

How to use it
- Create a rule — start a new pricing rule at
/pricing-rules/newand build its condition branches.

- Open a rule — review or edit an existing rule at
/pricing-rules/[id]. - Stack charges — write one rule per charge type; the flight total sums all matches.
- Effective dates — prices are versioned so historical flights keep billing at their original rates.
- Zero price — set a branch to a price of 0 so it matches a flight but adds no charge.
- Private aircraft — a private aircraft is not exempt from billing on its own; because the total sums every matching rule, a private flight is charged by each rule unless that rule says otherwise. Add a “not private” condition to your aircraft-usage rules (e.g. flight time) so they skip privately owned machines, while leaving club-service rules — the tow start, instructor fee, landing fee — to charge as normal.
Related
- Flights — the flights these rules price.
- Qualification Rules — the same condition mechanism, used for eligibility.
- Accumulated Facts — running totals the rules read in conditions.
- Transactions — where the resulting charges land.