Billing configuration is managed in Maintenance > Billing Settings.
For step-by-step setup instructions, see the billing settings how-to guide.
For the API reference, see Maintenance API Endpoints.
Labor Rate Structure
Labor rates are defined per workspace and determine how technician time is priced on billing estimates. Each rate has a base hourly rate plus optional multipliers for overtime and AOG (Aircraft on Ground) situations.Mechanic Types
Rate Multipliers
Each labor rate includes two optional multipliers applied to the base hourly rate:
Effective cost calculation:
Rate Configuration Fields
Only one rate per workspace should be marked as the default (
is_default = true). When generating
an estimate, the system uses the most recent default rate if no rate is explicitly assigned. If no
default rate exists, a system fallback rate is applied.Parts Markup Tiers
Parts markup rules define the profit margin applied to parts costs on billing estimates. Rules are configured as tiered cost ranges, allowing different markup percentages for different part price points.How Markup Tiers Work
When an estimate is generated, each parts line item’s unit cost is evaluated against the markup rules in sort order. The first rule whose cost range matches the unit cost determines the markup percentage. Example tier structure: Markup tiers are fully configurable. A typical setup uses tiered cost ranges with higher markup percentages on lower-cost parts and lower percentages on major components. You can create as many tiers as needed to match your shop’s pricing strategy.Markup Rule Fields
Shop Supply Rules
In addition to parts markup, operators can configure shop supply charges that cover consumables (safety wire, sealant, hardware, rags, etc.) not individually tracked as inventory items. Shop supply rules support two basis types:Billing Types
Each estimate is assigned a billing type that determines how the final invoice is calculated:NTE (Not to Exceed) Amounts
When billing type isnot_to_exceed, the estimate includes an nte_amount
field representing the maximum the customer will be invoiced. If actual costs
exceed the NTE amount, the operator absorbs the difference.
Estimate Statuses
Billing estimates follow a lifecycle from creation through customer approval to final invoicing.Estimate Lifecycle
Estimate Generation
When a billing estimate is generated for a work order, the system performs the following calculation:Estimate Fields
Billing Events
Every significant action on an estimate is recorded as a billing event for audit trail purposes:Related
Work Order Statuses
Lifecycle of work orders that billing estimates are attached to.
Maintenance API Endpoints
REST API for creating rates, generating estimates, and retrieving billing data.
Maintenance Data Model
How billing fits into the broader maintenance data flow.
Financial Reports
Financial reporting that incorporates maintenance billing data.