Skip to main content
PlaneConnection’s maintenance billing system calculates work order costs from configurable labor rates and parts markup rules, generates formal estimates, and tracks those estimates through approval and invoicing. This page is the technical reference for all billing configuration and lifecycle rules.
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 is not_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:

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.
Last modified on April 5, 2026