Skip to content
Back to skills

Freight Pricing Mechanics

ASecurity

Veteran reference for building an accurate all-in freight quote — air chargeable weight (IATA 1:6000 volumetric vs actual), ocean CBM and weight/measure ton, the full ocean + air surcharge stack (BAF, CAF, THC, LSS, GRI, PSS, ISPS, AMS/ENS, DDC), margin methods (on-cost vs on-sell), and validity/volatility handling. Consulted by freight-rate-quoter.

  • 7 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 23, 2026
ai-agentsgoexpresssecuritydocumentation

Works with

  • terminal

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned September 23, 2026

npx -y skills add mcorbett51090/RavenClaude --skill freight-pricing-mechanics --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Freight Pricing Mechanics?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Freight Pricing Mechanics
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mcorbett51090-freight-pricing-mechanics/badge)](https://www.skillsdirectory.com/skills/mcorbett51090-freight-pricing-mechanics)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: freight-pricing-mechanics
description: "Veteran reference for building an accurate all-in freight quote — air chargeable weight (IATA 1:6000 volumetric vs actual), ocean CBM and weight/measure ton, the full ocean + air surcharge stack (BAF, CAF, THC, LSS, GRI, PSS, ISPS, AMS/ENS, DDC), margin methods (on-cost vs on-sell), and validity/volatility handling. Consulted by freight-rate-quoter."
---

# Freight Pricing Mechanics Skill

**Purpose:** give `freight-rate-quoter` (and any agent building a number) the exact math and the complete charge stack so a quote is all-in, correctly based, and margin-explicit. Pair the math here with the runnable `scripts/freight_calc.py`.

## When to use
- Building or auditing any ocean / air / road quote.
- Settling the **chargeable basis** before pricing.
- Assembling the surcharge stack so nothing is missed.
- Choosing and stating a margin method, and setting validity on a volatile lane.

## 1. Chargeable weight — air

Air freight is charged on the **greater** of actual gross weight and **volumetric (dimensional) weight**.

- **IATA volumetric weight (kg)** = (L × W × H in **cm**) ÷ **6000**, summed across all pieces.
- The 6000 divisor encodes the IATA ratio **1 m³ ≈ 167 kg** (1,000,000 cm³ ÷ 6000 ≈ 166.67).
- **Chargeable weight = max(actual gross, volumetric).** Then apply the per-kg rate at the right break.
- **Divisor caveats:** some carriers and most **express couriers** use **5000** (≈ 200 kg/m³), which charges bulky cargo more. Always confirm the divisor for the carrier — it materially changes the number. `freight_calc.py air --divisor 5000` handles it.
- **Rate breaks:** air tariffs step down at weight breaks (often N, +45, +100, +300, +500, +1000 kg). Always check whether "weighting up" to the next break (paying for more kg at the lower rate) is cheaper — a classic quoting optimization.

## 2. Chargeable basis — ocean

- **FCL (Full Container Load):** priced **per container** by type — 20'GP, 40'GP, **40'HC** (high-cube), 45'HC, reefer, open-top, flat-rack. The box is the unit; weight matters only for overweight/axle and some inland rules.
- **LCL (Less than Container Load):** priced **per weight/measure (W/M) revenue ton**, where **1 W/M = the greater of 1,000 kg (1 metric tonne) or 1 CBM**.
  - **CBM** = L × W × H in **metres** (1 CBM = 1 m³). For a carton in cm: (L×W×H) ÷ 1,000,000.
  - So LCL chargeable units = max(total CBM, total weight in tonnes). `freight_calc.py ocean` computes both and returns the billing basis.
  - LCL also carries minimums (often a 1 W/M floor) and origin/destination handling (CFS) charges.
- **TEU/FEU** are capacity units (20'/40'-equivalent), used for vessel/space planning and some surcharges — not the customer billing unit for FCL (that's per box).

## 3. The surcharge stack (name them all)

A base ocean/air rate is **not** a quote. Build the all-in by stacking the applicable charges. Common ocean lines:

| Code | Name | What it covers |
|---|---|---|
| **BAF** | Bunker Adjustment Factor | Fuel-price volatility. Sometimes folded into an all-in rate. |
| **LSS** | Low-Sulphur Surcharge | IMO low-sulphur fuel compliance (can overlap/replace part of BAF). |
| **CAF** | Currency Adjustment Factor | FX volatility, usually a % of base (commonly ~2–8%). |
| **THC** | Terminal Handling Charge | Port/terminal handling — **origin THC (OTHC)** and **destination THC (DTHC)** are separate. |
| **GRI** | General Rate Increase | Carrier-announced base-rate increase, effective a set date. |
| **PSS** | Peak Season Surcharge | Demand peaks (e.g., pre-holiday, pre-CNY). |
| **ISPS** | Security (ISPS Code) | Port-security charge. |
| **AMS / ENS / ICS2 / ISF** | Advance manifest filings | US AMS + ISF(10+2), EU ENS / ICS2 — pre-arrival data filings. |
| **DDC** | Destination Delivery Charge | (Mainly US) destination handling. |
| **Doc / Telex / Seaway** | Documentation | B/L issuance, telex release, amendments. |
| **Customs / clearance** | Brokerage | Export and/or import clearance if in scope. |
| **Haulage / drayage** | Inland | Pre-/on-carriage trucking or rail. |
| **Accessorials** | Variable | Demurrage, detention, waiting time, gen-set (reefer), OOG, hazmat/DG, fumigation, VGM. |

Air adds: **fuel surcharge (FSC)** and **security surcharge (SSC)** per kg, plus screening, AWB fee, and airport handling. Which lines apply, and **who pays them**, is set by the **Incoterm** — see the `incoterms-2020` skill.

## 4. Margin — say which method

Two methods, different results — always state which:

- **Margin on cost (markup):** `sell = buy × (1 + m)`. A 12% markup on a 1,000 buy → 1,120 sell; the *gross margin* is only 120/1,120 ≈ **10.7%**.
- **Margin on sell (gross margin):** `sell = buy ÷ (1 − m)`. A 12% gross margin on a 1,000 buy → 1,000 ÷ 0.88 ≈ **1,136** sell.
- Always report **buy, sell, margin absolute, and margin %** — and the method. `freight_calc.py quote --margin 12%` defaults to on-cost markup; pass `--margin-on-sell` for gross-margin.
- **Per-shipment vs blended:** a thin margin on the freight can be backed by accessorials, customs, and value-added services — quote the components, know the blended margin.

## 5. Validity & volatility
- Every quote carries a **"valid until"** date. Ocean spot rates move fast; air follows capacity.
- On volatile lanes, mark **GRI / PSS / BAF as subject-to-change**, or quote a shorter validity, or use a floating-surcharge clause that passes through the published change.
- **All-in vs subject-to:** an "all-in" rate (base + BAF + CAF + LSS folded) gives the customer certainty but transfers volatility risk to you — price that risk in or keep validity short.

## Recommended resources (read on demand)
- `resources/surcharge-glossary.md` — every code expanded with who-typically-pays and overlap notes.
- `resources/worked-examples.md` — three fully worked quotes (FCL, LCL, air) end-to-end with `freight_calc.py` commands.

## Hand-offs
- Who pays which surcharge under the deal's Incoterm → `incoterms-2020` skill / `trade-lane-compliance-advisor`.
- Packaging multiple priced lanes into a bid → `rfq-tender-response` skill / `rfq-tender-strategist`.

Files in this skill

  • SKILL.md6.1 KB
  • resources/surcharge-glossary.md2.9 KB
  • resources/worked-examples.md2.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…