Methodology & Reference
How every General Ledger dollar is standardized through MapLedger and distributed to the operational segments active in the period — with a clear, reproducible trail from the GL to the individual load.
Segment Level Costing (SLC) is the costing engine inside FreightMath. Every dollar from the client's General Ledger is standardized through MapLedger and then distributed to the operational segments active in the period, using the driver that best explains each cost: costing miles, costing hours, or direct activity. The result is profitability visibility at the segment, load, lane, and network level with a clear, reproducible trail from the GL to the individual load. The figure below walks through that flow end to end.
Figure 1 traces a single order — Order #4201, CHI → ATL → DAL → PHX → LAX — from the GL cost pool, through the five allocation methods, to the cost that lands on each of its four segments.
This pipeline requires two inputs working together:
GL dollars + segment-level miles/hours = the allocation math. The pool provides the numerator (what to distribute); the activity provides the denominator (how to distribute it).
Every cost in the GL is routed through one of five allocation methods. Each method uses a different activity driver to distribute costs to segments — ensuring that the allocation reflects how costs were actually incurred in the operation.
Fuel, driver wages, tractor & trailer maintenance, insurance, lumper, escorts, permits
Revenue equipment fixed costs, non-driver compensation, permits & licenses, technology, admin & general
Ex 1 — Operation-wide overhead charges applied across all orders: planning, dispatch & billing.
Ex 2 — Actual segment/leg payroll settlement costs for driver or owner-operator compensation.
Highway, bridge & ferry toll dollars allocated by segment using third-party toll data
Drop-trailer ownership costs at designated origin & destination pool locations
The combination of these five methods means no single blended rate is applied across all costs. Time-driven overhead (insurance, admin) is allocated by hours under power. Mile-driven variable costs (fuel, maintenance) are allocated by costing miles. Direct charges skip the engine entirely and are assigned straight to the segment. This precision is what separates FreightMath from traditional per-mile cost models.
Some costs belong to a specific segment from the start — owner-operator settlements, custom driver agreements, and direct load-specific charges. These are Pre-Standard costs: they skip the general allocation engine and are applied directly to segments based on client-defined logic.
To prevent double-counting, Pre-Standard amounts are subtracted from the distribution pool before the general allocation runs. The final segment value combines both the general allocation and any Pre-Standard amount already assigned:
The Pre-Standard dollar is already on the segment, so we don't distribute it again. The PRE_* columns are preserved separately in the output, providing full transparency into what was directly assigned versus distributed through the engine.
Overhead cost categories cover fixed and time-based expenses — revenue equipment fixed costs, non-driver compensation, technology, permits & licenses, and admin — that are distributed based on each segment's share of total costing hours under power. The core formula applies to most overhead cost categories:
The distributable pool for each cost category equals the GL amount minus any Pre-Standard amount already directly assigned — preventing double-counting. Two cost categories have specialized treatment:
| Cost Category | Description | Note |
|---|---|---|
DRIVER_RECRUIT | All direct expense associated with driver recruitment, orientation, screening, sign-on & retention bonuses, and drug testing | Standard hourly share |
FIXED_OH | Administrative and operational overhead not classified elsewhere — office supplies, professional fees, bank fees, depreciation of shop & office equipment | Standard hourly share |
NONDRIVER_COMP | All compensation, benefits, and payroll taxes for non-driving staff — operations, admin, sales, recruiting, safety & risk, and finance personnel | Standard hourly share |
PERMIT_LICENSE_TAX | General operating permits, base plate licensing, fuel tax registrations, and business licenses required to operate the fleet | Standard hourly share |
TECHNOLOGY | ELD/telematics hardware and software, TMS platforms, and other systems supporting fleet operations | Standard hourly share |
TRACTOR_CO | All fixed costs of company tractor ownership and leasing — depreciation, interest, lease payments, APU, HVUT, and plate licensing | CPH × hours (team premium applies) |
REEFER | Fuel and fixed costs for refrigeration units on temperature-controlled trailers | Distributed to reefer costing hours only |
TRAILER | All fixed costs of trailer ownership and leasing — depreciation, interest, lease payments, licensing, and trailer tracking/monitoring | Trailer Pool + General Population split (see below) |
Variable cost categories cover expenses that correlate with miles driven — fuel, driver wages, tractor and trailer maintenance, insurance, tolls, lumper fees, escorts, permits, and purchased transportation. They are distributed based on costing miles, but the specific pattern depends on the cost category and labor group. FreightMath uses three distinct allocation patterns:
Spread across every segment by share of all costing miles. Used for ALL-tagged variable cost categories: insurance, indirect maintenance, escorts, fines, lumpers, scales, permits, purchased transportation, and variable driving expenses.
COSTING_MILES / MILEAGE_ALL_MILES × pool
Only segments in the matching labor group absorb it. Company driver (CO) segments get CO costs; owner-operator (OO) segments get OO costs. Used for driver comp (LP/OO), fuel by group, tractor maintenance by group.
COSTING_MILES / GL_MONTH_COSTING_MILES × pool
Rate-based rather than share-based. A Cost Per Mile derived from effective miles is multiplied by segment costing miles. Team premium applies. Used for company driver compensation.
COSTING_MILES × CPM × team_premium
Owner-operator segments are excluded from company fuel (MILEAGE_FUEL_ALL) because owner-operators buy their own fuel. Tolls use actual toll dollar share rather than mileage share.
Pattern key: A = All-Segment · B = Labor Group · C = CPM-Based (an asterisk or dagger denotes the footnoted exception in the Note column).
| Cost Category (Mileage_…) | Pattern | Note |
|---|---|---|
DRIVER_COMP_CO | C | CPM × miles, team premium |
DRIVER_COMP_LP / _OO | B | By labor group share |
FUEL_ALL | B* | CO+LP only (OO excluded) |
FUEL_CO / FUEL_LP | B | By labor group share |
INSURANCE_ALL / _CO | All miles / CO miles | |
MAINTENANCE_TRACTOR_CO / _LP | B | By labor group share |
MAINTENANCE_TRAILER_ALL | A† | Zero if not company trailer |
MAINTENANCE_INDIRECT_ALL | A | All costing miles |
TOLLS_ALL | — | By actual toll dollar share |
ESCORT / FINES / LUMPER / SCALES | A | All costing miles |
PERMIT_GENERAL / PERMIT_OVER | A | All costing miles |
PURCHASED_TRANS / VARIABLE_DRIVING | A | All costing miles |
Trailer cost is the only cost category with branching distribution logic. The total trailer GL pool (HOURLY_TRAILER_ALL_COST) splits into two paths based on whether the segment touches a drop-pool location:
Segment origin OR destination is a drop-pool location. Daily pool trailer-days are rolled up from the pool detail view. Cost = HOURLY_TRAILER_DAY_COST × TRAILER_DAYS. Distributes within the pool by segment's share of pool hours. Segments touching both pools split 50/50.
Company trailer with NO affiliation to a defined Trailer Pool location at origin or destination. General Population sub-pool = total trailer cost − sum of Trailer Pool costs applied. Distributes by segment's share of General Population costing hours. Customer-owned trailers (IS_COMPANY_TRAILER = 0) absorb zero trailer cost.
Figure 2: Trailer Cost Branching. The GL trailer pool splits based on whether the segment touches a designated drop-pool location. The same zero-cost rule applies to trailer maintenance for customer-owned trailers.
A segment qualifies for the Trailer Pool when its related Order Origin or Order Destination is a drop-pool location. If an order has 3 segments, all three will receive trailer cost even though only the first and last touch an origin or destination pool. Trailers are considered a Company Trailer unless the client provides specific logic to determine Non Company Trailers.
Not every period or segment type fits the standard allocation model. FreightMath handles two special cases with dedicated logic:
When MapLedger hasn't closed the month yet, FreightMath switches to forecast-based allocation so that in-period OR visibility is maintained without waiting on the GL close. Four mechanisms work together:
PctWorkdaysComplete — the share of weighted days elapsed — and allocates the accumulated amount to freight by hours on delivered loads. Loads that consume more driver or asset time carry a proportionally larger share.FSC_PCT_CHANGE multiplier to adjust for diesel price movement since the last closed month.A simple calendar-day method treats every day the same, distorting month-to-month performance in months with holidays or unusual day patterns. FreightMath weights each day type by its relative activity level: weekdays = 1.0, Saturdays = 0.50, Sundays = 0.25, holidays variable. This produces a consistent “overhead per effective workday” metric that respects true operational cadence. Each client maintains a unique operational calendar — default weights can be overridden using historical data.
Example: November has ~22.5 effective workdays vs. ~26 for October. With the same total overhead, the daily overhead rate in November is ~$105,500/day vs. ~$92,300/day in October — a ~14% increase in daily overhead absorption pressure even though total overhead hasn't changed.
Once actual monthly financials are available, all forecasted allocations are recast to GL actuals across all cost categories — ensuring that reported OR, margins, and profitability by lane or customer tie back to the general ledger. All forecast data is flagged IS_GL_ACTUAL = 0 so downstream consumers know the costs are estimated rather than GL-based.
Brokerage operations have no trucks and no assets — just carrier pay. Standard mile/hour allocation doesn't fit, so FreightMath uses alternative drivers:
X_COST / SEGMENT_CTSEGMENT_CARRIER_PAY / GL_CARRIER_PAYThis lets brokerage operations contribute to OR without distorting the asset-based math used for the carrier's own fleet.
After all allocation paths have run, the final write to the CLIENT_ORDER_SEGMENTS table combines general allocation and Pre-Standard amounts:
PRE_* columns preserved separately for full transparency.CLIENT_ORDER_COSTS are simply SUMs back up from segments.Every GL dollar is accounted for on exactly one segment — with a clear, reproducible trail from the GL back down to the load. This auditability is what makes FreightMath's OR defensible across every analytical view: load, lane, customer, driver, and network.
Every empty (deadhead) segment has a cost — miles driven and hours consumed with no revenue. FreightMath must decide which order those empty costs belong to. Because the assignment choice materially affects load-level OR, the model offers three distinct deadhead attribution methods. The FreightMath Dashboard includes a dedicated slicer so analysts can toggle between views without reprocessing any data.
The three methods do not change total network cost — the same dollars exist regardless. They change which order absorbs the empty miles and hours, which changes individual load OR and lane profitability rankings.
Empty before pickup → attributed to the next order loaded
Built from last observed delivery location to the pickup of the incoming order
Empty after delivery → attributed to the prior order delivered
Inverse of PRE — empty is the “cost of leaving” after the completed order
Empty costs shared equally between the preceding and following order
Balances attribution across both orders touching the empty movement
Use the pills below to switch the attribution model and watch where each empty segment's cost lands.
The FreightMath Dashboard includes a dedicated Deadhead Model slicer (PRE / POST / SPLIT) that recomputes load-level OR in real time without changing any underlying GL allocations. This allows leadership and operations teams to compare network performance under each attribution philosophy before committing to a reporting standard.
GL-to-load cost mapping reference — account anatomy, cost categories, and allocation drivers.
Overhead allocation using workday-weighted forecasting — formulas, examples, and compression strategies.
Definitions for every FreightMath term, metric, and cost category. Opens in a new tab.
Source: FreightMath Segment Level Costing methodology, KSM Transport Advisors. This page reflects the current production allocation engine as documented in the SLC Deep Dive presentation materials.