Methodology & Reference

Segment Level Costing

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.

MethodologyAllocation engineDeadhead modelsCurrent production release

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.

Looking for the dashboard?
The FreightMath Dashboard Guide explores every dashboard page, including the Deadhead Model slicer referenced at the end of this page.

The SLC Pipeline

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.

Figure 1 — The SLC Pipeline (Interactive)
GL COST POOLvia MapLedgerALLOCATION ENGINE5 methods · each cost routed exactly onceORDER #4201CHI → ATL → DAL → PHX → LAXVARIABLEDriver Compensation$118,500👤VARIABLEFuel Expense$42,800⛽VARIABLEInsurance$28,400🛡VARIABLEMaintenance — Tractor$18,600🔧VARIABLEMaintenance — Trailer$6,200🔩OVERHEADRev. Equipment — Tractor$67,200🚛OVERHEADRev. Equipment — Trailer$21,600📦OVERHEADNon-Driver Compensation$43,100🏢Total Pool$346,800VVariableDriver: Total Costing Miles (CPM)Fuel · Driver Comp · Maintenance · InsuranceOOverheadDriver: Hours Under Power (CPH)Rev. Equipment · Non-Driver Comp · AdminPPre-StandardEx 1: Network-wide planning/dispatch/billingEx 2: Driver/O-O segment settlement costsTTollsDriver: Actual Lane Routing ($)Highway, bridge & ferry tolls by segmentDTrailer PoolDriver: Trailer-Days by O/D LocationOrder #4201CHI → ATL → DAL → PHX → LAXPre-Std: $75.00 ✓Seg 1 — LoadedCHI → ATL | 892 mi | 13.4 hVar 892 mi × $1.97= $1,757OH 13.4 h × $19.20= $257Tolls (actual lane charge)= $27subtotal $2,041Seg 2 — Empty (DH)ATL → DAL | 795 mi | 11.9 hVar 795 mi × $1.97= $1,566OH 11.9 h × $19.20= $228subtotal $1,794Seg 3 — LoadedDAL → PHX | 1,041 mi | 15.6 hVar 1,041 mi × $1.97= $2,051OH 15.6 h × $19.20= $299Pool TE163TH · Origin Trailer Pool= $65subtotal $2,415Seg 4 — LoadedPHX → LAX | 374 mi | 5.6 hVar 374 mi × $1.97= $737OH 5.6 h × $19.20= $107subtotal $844ORDER SUBTOTAL(Var + OH + Pre-Std + Tolls + Trailer Pool)$7,169SAMPLE REVENUE$8,100CORE OR88.5%$1.97 / mi$19.20 / hr$75 directSeg 1 · $27TE163TH · $65
Scroll into view to begin…

This pipeline requires two inputs working together:

  • The Pool (GL Costs) — MapLedger has already translated the client's unique GL into FreightMath's Standard Chart of Accounts. Costs are organized into Overhead cost categories (distributed by hours under power), Variable cost categories (distributed by costing miles), and supporting metrics (miles, hours, trailer counts). A workday calendar is applied for forecast months.
  • The Activity (Orders & Segments) — Orders are the revenue event; Segments are the operational work. Every segment carries FM-standard practical miles and collared transit hours, which become the Costing Miles and Costing Hours denominators used in allocation. Three deadhead models (PRE, SPLIT, POST) run in parallel, and forecast POST segments are synthesized when a truck doesn't yet have its next destination.

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).

The Five Allocation Methods

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.

Driver: Total Costing Miles (CPM)

Variable

Fuel, driver wages, tractor & trailer maintenance, insurance, lumper, escorts, permits

Driver: Hours Under Power (CPH)

Overhead

Revenue equipment fixed costs, non-driver compensation, permits & licenses, technology, admin & general

Driver: Direct Assignment

Pre-Standard

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.

Driver: Actual Lane Routing ($)

Tolls

Highway, bridge & ferry toll dollars allocated by segment using third-party toll data

Driver: Trailer-Days by O/D Location

Trailer Pool

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.

Pre-Standard Carve-Out

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:

Distribution pool = X_COST − PRE_X_COST
Final segment value = X_COST + PRE_X_COST
Why this matters

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

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:

Segment Cost = (Segment Costing Hours ÷ Total Costing Hours) × (GL Cost − GL Pre Cost)

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:

  • TRACTOR_CO — Uses an effective-hour Cost Per Hour (CPH) multiplied by segment hours, with a team premium applied for team-operated segments.
  • REEFER — Uses Temperature Categories to distribute CPH so that only temperature-controlled loads absorb refrigeration costs.

Full Overhead Cost Category Reference

Cost CategoryDescriptionNote
DRIVER_RECRUITAll direct expense associated with driver recruitment, orientation, screening, sign-on & retention bonuses, and drug testingStandard hourly share
FIXED_OHAdministrative and operational overhead not classified elsewhere — office supplies, professional fees, bank fees, depreciation of shop & office equipmentStandard hourly share
NONDRIVER_COMPAll compensation, benefits, and payroll taxes for non-driving staff — operations, admin, sales, recruiting, safety & risk, and finance personnelStandard hourly share
PERMIT_LICENSE_TAXGeneral operating permits, base plate licensing, fuel tax registrations, and business licenses required to operate the fleetStandard hourly share
TECHNOLOGYELD/telematics hardware and software, TMS platforms, and other systems supporting fleet operationsStandard hourly share
TRACTOR_COAll fixed costs of company tractor ownership and leasing — depreciation, interest, lease payments, APU, HVUT, and plate licensingCPH × hours (team premium applies)
REEFERFuel and fixed costs for refrigeration units on temperature-controlled trailersDistributed to reefer costing hours only
TRAILERAll fixed costs of trailer ownership and leasing — depreciation, interest, lease payments, licensing, and trailer tracking/monitoringTrailer Pool + General Population split (see below)

Variable Cost Categories

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:

Pattern A — All-Segment

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

Pattern B — Labor Group

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

Pattern C — CPM-Based

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

Key nuance

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.

Full Variable Cost Category & Pattern Map

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_…)PatternNote
DRIVER_COMP_COCCPM × miles, team premium
DRIVER_COMP_LP / _OOBBy labor group share
FUEL_ALLB*CO+LP only (OO excluded)
FUEL_CO / FUEL_LPBBy labor group share
INSURANCE_ALL / _COABAll miles / CO miles
MAINTENANCE_TRACTOR_CO / _LPBBy labor group share
MAINTENANCE_TRAILER_ALLA†Zero if not company trailer
MAINTENANCE_INDIRECT_ALLAAll costing miles
TOLLS_ALL—By actual toll dollar share
ESCORT / FINES / LUMPER / SCALESAAll costing miles
PERMIT_GENERAL / PERMIT_OVERAAll costing miles
PURCHASED_TRANS / VARIABLE_DRIVINGAAll costing miles
* OO labor group excluded — owner-ops buy their own fuel    † Zero for customer-owned trailers    — Tolls use actual toll $ share, not miles

Trailer Cost — Two Paths

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:

HOURLY_TRAILER_ALL_COST (GL Pool)Origin or destination is a drop-pool locationPath 1 — Trailer Pool
HOURLY_TRAILER_ALL_COST (GL Pool)No Trailer Pool affiliationPath 2 — General Population

Path 1 — Trailer Pool

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.

Path 2 — General Population

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.

Trailer Logic

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.

Forecast & Logistics Paths

Not every period or segment type fits the standard allocation model. FreightMath handles two special cases with dedicated logic:

Forecast Months (No GL Yet)

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:

  • Overhead cost categories — The prior month's total overhead is divided by the number of effective weighted workdays in the current month to produce a daily overhead rate. As the month progresses, FreightMath accrues overhead using 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.
  • Variable cost categories — Rebuilt as cost-per-mile × current-month costing miles, using the prior month's effective CPM as the base rate.
  • Fuel — Applies an FSC_PCT_CHANGE multiplier to adjust for diesel price movement since the last closed month.
  • Synthetic POST segments — Inserted for orders still in-flight, using a 28-day area average for deadhead estimation when the truck's next destination is unknown.

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.

Logistics Operations (Brokerage)

Brokerage operations have no trucks and no assets — just carrier pay. Standard mile/hour allocation doesn't fit, so FreightMath uses alternative drivers:

  • Hourly costs — Spread evenly per segment: X_COST / SEGMENT_CT
  • Mileage costs — Distributed by percentage of carrier pay: SEGMENT_CARRIER_PAY / GL_CARRIER_PAY

This lets brokerage operations contribute to OR without distorting the asset-based math used for the carrier's own fleet.

What Finally Lands on the Segment

After all allocation paths have run, the final write to the CLIENT_ORDER_SEGMENTS table combines general allocation and Pre-Standard amounts:

TOTAL_X_COST = X_COST + PRE_X_COST
  • General allocation + direct Pre-Standard — combined in the stored cost category, with PRE_* columns preserved separately for full transparency.
  • ALLOCATED_REVENUE — Each loaded segment receives its prorated share of order revenue, weighted by loaded costing miles.
  • ALLOCATED_ORDER_RELATED_COSTS — The same prorate applied to direct order costs (bill-to fees, commissions, financing upcharge).
  • Order-level roll-ups — Values in CLIENT_ORDER_COSTS are simply SUMs back up from segments.
  • Loaded / empty splits — Preserved at every level, enabling Core OR, IB OR, OB OR, and FM OR to all pull from the same foundation.
Bottom line

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.

Deadhead Cost Allocation — PRE, POST & SPLIT

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.

Key Concept

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.

Pre-Allocation

Empty before pickup → attributed to the next order loaded

Built from last observed delivery location to the pickup of the incoming order

Post-Allocation

Empty after delivery → attributed to the prior order delivered

Inverse of PRE — empty is the “cost of leaving” after the completed order

Split (50/50)

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.

EMPTY (DH)ORDER A — LOADEDEMPTY (DH)ORDER B — LOADEDEMPTY (DH)85 mi · 1.3 hCost: $192pre-pickup emptyOrder A — Loaded450 mi · 6.7 hLoaded cost: $1,01675 mi · 1.1 hCost: $169between ordersOrder B — Loaded380 mi · 5.7 hLoaded cost: $85890 mi · 1.4 hCost: $204post-delivery empty$192 → Order A$169 → Order B→ next orderORDER A TOTAL — PRE$1,016 loaded + $192 empty$1,208ORDER B TOTAL — PRE$858 loaded + $169 empty$1,027PRE: empty miles & hours before pickup are the “cost of acquiring” the next order.Total empty cost across all 3 models: $192 + $169 + $204 = $565 — the model only changes assignment, not total cost.
Dashboard slicer

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.

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.