The 3PL Guide
Part XIV · 14.3how-to10 min readUpdated Oct 20, 20268 sources

How to verify a cost-plus shipping markup against your contract

Why the shipping markup is worth checking#

A markup applied at the wrong number, or to charges the contract doesn't cover, repeats on every label it applies to. For most direct-to-consumer (DTC) brands that ship on the 3PL's carrier accounts, postage is the largest share of total 3PL spend, larger than all warehouse fees combined. Small-parcel postage sits on the 3PL's own invoice in about nine in ten of Implentio customers' 3PL contracts.

A 3PL is entitled to mark up shipping (Why 3PLs mark up shipping, and how parcel margin works). On cost-plus the markup is stated, and 3PLs that bill this way are generally fine showing it, so the check is whether each billed amount follows the written rule. Most brands get a rate card instead, with the markup built into the rates, and it's up to the brand to decide whether those rates are acceptable. This article covers parcel postage; pallet freight is billed differently (Freight (LTL/FTL) billing for B2B orders).

What your contract needs to say before you can check it#

You can check a markup only against a written rule, in the master services agreement (MSA), a statement of work, the rate card, a pricing exhibit or an email. Read its operative words first: "pass-through", "cost plus X%", "plus $X per label" and "X% off" a carrier table each call for a different check.

The clause needs to settle six things:

  1. The basis for each carrier and service.
  2. On cost-plus, the markup as a number, so you can validate each charge against it.
  3. The charges it covers: base postage, fuel, each other surcharge (residential, delivery area, additional handling, peak or demand, address correction), later carrier adjustments and carrier credits.
  4. What a flat fee counts: packages or shipments, and whether return, voided and own-account labels count.
  5. What "cost" means. "Cost" should mean the net charge on the carrier's invoice for that label, after the discounts shown on it. Incentives or rebates a carrier pays a 3PL across all its shippers are a separate matter; the contract should say if they're excluded.
  6. The effective date of any change (Outdated rates after a contract change).

Whether later carrier adjustments are marked up depends on the contract, and many contracts don't say. If the clause says "cost plus X%" and lists nothing, don't assume either way about fuel, other surcharges or adjustments: ask the 3PL which charges it marks up, including fuel charged on surcharges, and get the answer in writing. In the invoices we review, we sometimes see a markup on surcharges or fuel that the clause doesn't name. If no markup is written at all, there's no number to check against, only the 3PL's current practice, so ask it to confirm the basis and number in writing.

How to check each shipping basis#

Identify the shipping basis for each service first (How 3PLs bill shipping: pass-through, markup or the 3PL's own rate card). Pass-through and cost-plus are checked against carrier cost; the 3PL's own rate card is checked against the card.

BasisBilled amount should equalRecord you needWhat to compare
Pass-throughThe 3PL's carrier costCarrier cost per labelEach charge; the gap is zero
Cost plus a percentageCovered charges × (1 + markup); others at costCarrier cost per labelGap ÷ cost, charge by charge
Cost plus a fee per labelCarrier cost + fee × counted labelsCarrier cost and a label countPostage at cost, the fee and the count
The 3PL's own rate cardThe card price; any charge passed on at the carrier's amountYour card and the shipment-level fileService, zone, billable weight, card version
Your own carrier accountNo 3PL postage; any per-label feeYour carrier invoiceThe fee's count and rate
HybridEach carrier or service under its own basisPer basisPer basis

Pass-through at carrier cost#

On pass-through billing, each label should cost what the carrier charged the 3PL, so the gap is zero on every carrier charge. The word is a claim: one e-commerce fulfillment contract filed with the U.S. Securities and Exchange Commission (SEC) in 2000 prices shipping at actual cost plus a percentage, yet says shipping charges "will be passed through"7. A separate shipping-label or processing fee may still apply (Label fees, address correction fees and reshipment charges).

Cost plus a percentage#

Check charge by charge, since the clause may leave some charges at cost:

Expected = (covered charges × (1 + markup)) + excluded charges

As of October 2026, UPS and FedEx set fuel as a weekly percentage applied to transportation charges and some other surcharges1,2; on FedEx ground services those include residential and delivery area1. A markup on fuel stacks on top of it; ask which rule covers fuel on a surcharge the clause leaves at cost.

Cost plus a fee per label#

The billed amount should equal carrier cost plus the fee times the labels the clause counts: per package or per shipment, with or without return, voided and own-account labels (Duplicate tracking numbers and voided labels billed). It may be its own line, such as a "freight fee" (parcel postage, not pallets), and a per-label line can also pay for work rather than mark up postage.

The 3PL's own rate card#

On the 3PL's own rate card, there's no markup to measure and none needs to be in writing. If the card already has the markup built in, the only decision is whether you're happy with those rates. Check each billed price against the card version in effect for the ship date: service, zone, billable weight and surcharges (Rate verification: checking every billed rate against your rate card). Fuel, surcharges or adjustments the card passes on at the carrier's amounts are checked like pass-through. An "X% off" card is checked against the exact carrier table it names (as of October 2026, UPS daily or retail3, FedEx list or retail4, USPS Commercial or Retail5).

Your own carrier account#

The carrier bills you, so there's no 3PL markup on postage. Check any fee the 3PL charges per own-account shipment8, and audit the carrier's bill with How to audit carrier invoices.

How to check the markup on a sample of labels#

On cost-plus, check the stated markup against the cost behind each charge:

  1. Pick the sample. Review every invoice, at the very least with a spot check; a spot check only shows order of magnitude. Spread it across services, zones, surcharge-heavy parcels and carrier adjustment lines.

  2. Get the carrier cost for those tracking numbers. Ask your 3PL for the carrier cost behind each sampled label, for example as a cost column in the shipment-level file. That column is the 3PL's own record of cost, so a match with its invoice proves the markup arithmetic, not the cost itself. For USPS labels billed at pass-through or cost-plus, the postage platform's history for those labels is also an acceptable record of cost. If a 3PL billing at cost plus won't show the cost, the markup can't be checked; ask for it in writing before you renew.

  3. Split each label into base postage, fuel, each surcharge and any later adjustment, on both sides, joined by tracking number.

  4. Compute the markup on each component:

    Markup = (billed − carrier cost) ÷ carrier cost

    Dividing by the billed amount gives margin instead6.

  5. Compare each component with the clause, including the charges it leaves at cost.

  6. Scale any difference to the month: the difference per affected label × affected labels.

This check tests the markup arithmetic, not whether the carrier cost was right: a wrong billable weight, a wrong service or a surcharge that shouldn't apply raises cost and markup together. Check those with Billed weight vs. expected weight: finding overbilling, Surcharge audits: residential, delivery area, additional handling and Fuel surcharges on a 3PL invoice: checking the percentage, what it applies to and your contracted discount. To match a full month of carrier invoices to 3PL lines, see Reconciling carrier invoices to 3PL shipping charges.

Worked example: checking a 10% markup (illustrative)#

In this illustrative example (round numbers, not market rates), two of four lines break the clause, one inside a label total that looks right. The clause reads "cost plus 10% on base postage and all fuel; other carrier surcharges and carrier adjustments at cost". Fuel is 15% of base postage and of the residential surcharge (illustrative, not a current rate).

LabelCarrier costContract priceBilledResult
ABase $8.00 + fuel $1.20 = $9.20$9.20 × 1.10 = $10.12$10.12Matches
BBase $9.00 + residential $5.00 + fuel $2.10 = $16.10($9.00 + $2.10) × 1.10 + $5.00 = $17.21$17.71$0.50 over: 10% on the residential surcharge
CBase $12.00 + fuel $1.80 = $13.80$13.80 × 1.10 = $15.18$15.18Matches
C, later adjustment$6.00$6.00 at cost$6.60$0.60 over: adjustment marked up

Label B's total is exactly 10% above its total cost ($17.71 ÷ $16.10 = 1.10), so a check that each total is 10% above cost would pass it. Its $0.75 of fuel on the residential surcharge is marked up correctly, because the clause says "all fuel". On label A, the $0.92 gap is 10% of the $9.20 cost but about 9.1% of the $10.12 billed. If 600 of 2,000 monthly labels carry the $5.00 residential surcharge, the markup on it adds 600 × $0.50 = $300 a month (Calculating your true cost per order).

Before raising either difference, reread the clause: a markup on a surcharge or adjustment is correct if the clause covers it. If it doesn't, send the 3PL the labels, components and clause, and ask which rule it applied and for a credit on the difference. A 30-day dispute window is common; 14 days is short. The window usually starts when the invoice carrying the charge lands, so an adjustment billed later gets its own window (How to dispute a 3PL invoice: process and etiquette).

What good looks like#

  • The basis written for each carrier and service.
  • On cost-plus, the markup as a number (a percentage or a fee per label) and the charges it covers.
  • A shipment-level file every cycle, with each surcharge per parcel (The supporting detail files you should always request).
  • On cost-plus, the carrier cost behind each label on request, by tracking number.
  • A dispute window that starts when complete detail arrives (a negotiated change; otherwise it usually runs from the invoice).

We found no public figure for markup size with a stated method. To negotiate the number or the basis, see Negotiating shipping markup and carrier discounts.

Common mistakes and red flags#

  • Dividing the gap by the billed amount, which reports a correct markup as short.
  • Checking label totals only when the clause covers some charges and not others.
  • Taking "pass-through" wording as proof without carrier cost.
  • Looking for a margin inside the 3PL's own rate card. The card's rates are the price; check billed amounts against the card and decide whether the rates are acceptable.
  • Reading a moving gap as an error. Under a correct percentage markup, the dollar gap moves with cost. Weekly fuel changes, a carrier GRI (Carrier general rate increases (GRIs) and how they flow through), a later adjustment or credit, a different basis by service, own-account labels, multi-package shipments, cent rounding and a new card version can also move it.
  • Assuming a markup check covers weight, service and surcharge validity.

Questions to ask your 3PL#

Copy these into an email to your 3PL.
  1. For each service, is shipping billed at carrier cost, cost plus a percentage or a fee per label, or on your own rate card?
  2. On cost-plus, which charges does the markup cover, including fuel on surcharges and later adjustments?
  3. Do carrier credits for my labels come back to me, and does the markup come back with them?
  4. Does a per-label fee count packages or shipments, and return, voided or own-account labels?
  5. On cost-plus, can you send the carrier cost for each of my tracking numbers with the shipment file?
  6. On your own card, which version applies from which ship date, and does an "X% off" card follow the carrier's increase date?
  7. How long do we have to dispute shipping lines, and from what date?

Checklist: verifying shipping markup#

FAQ#

How do I check a cost-plus percentage on a shipping charge?

Divide the gap between the billed amount and the carrier cost by the carrier cost, charge by charge, and compare it with the percentage in your contract. $11.00 billed on a $10.00 cost is a 10% markup but a 9.1% margin6. If a clause says only "X% markup", ask which base the 3PL uses.

Is my 3PL allowed to mark up shipping?

Yes. A 3PL is entitled to a margin on shipping. On cost-plus, the markup is in the contract, and you check that each charge follows it. On the 3PL's own rate card, the markup is built into the rates, so you decide whether the rates are acceptable, not what margin sits inside them.

What do I need from my 3PL to check the markup?

On cost-plus, the carrier cost behind each billed label, by tracking number, alongside the shipment-level file. On the 3PL's own rate card, you need only your card and a shipment-level file, because you check billed prices against the card.

Does the markup apply to fuel and other surcharges?

Only if the clause covers them. If it says "cost plus X%" and lists nothing, ask the 3PL which charges it marks up, including fuel on surcharges, and get the answer in writing.

Sources#

8 sources cited
  1. FedEx, "Fuel Surcharge" (weekly table to Oct. 19–25, 2026; no page date; accessed Oct 17, 2026). https://www.fedex.com/en-us/shipping/fuel-surcharge.html
  2. UPS, "Fuel Surcharges" (modified Sep 7, 2026; accessed Oct 8, 2026). https://www.ups.com/us/en/support/shipping-support/shipping-costs-rates/fuel-surcharges.page
  3. UPS, "Daily Rates" (modified Dec 22, 2025) and "Retail Rates" (published May 14, 2026). https://www.ups.com/us/en/support/shipping-support/shipping-costs-rates/daily-rates · https://www.ups.com/us/en/support/shipping-support/shipping-costs-rates/retail-rates
  4. FedEx, "Current Rates" (updated Sep 18, 2026; accessed Oct 8, 2026). https://www.fedex.com/en-us/shipping/current-rates.html
  5. USPS, "Business Shipping Prices" (2026 price files; accessed Oct 8, 2026). https://www.usps.com/business/prices.htm
  6. Emily Simpson, Vancouver Community College Learning Centre, "Business Math: Markup & Markdown" worksheet (CC BY-NC-SA 4.0; file dated Nov 1, 2020). https://learningcentre.vcc.ca/media/vcc-library/content-assets/learning-centre/worksheets/by-coursex2fprogram/business/8_Markup_and_Markdown.pdf
  7. TaketoAuction.com, Inc. and Perfumania.com, Inc., "E-Commerce Services Agreement" (Oct 1, 2000), SEC EDGAR exhibit to Form 10-Q. https://www.sec.gov/Archives/edgar/data/0001093837/000095014400013919/g65214ex1-b.txt
  8. F. Curtis Barry & Company, "27 Critical Provisions to Negotiate in a 3PL Contract" (undated; accessed Oct 17, 2026). https://www.fcbco.com/blog/checklist-for-3pl-contracts
Reviewed by Implentio’s 3PL billing team. Every number is checked against a cited source, reviewed by people who work with 3PL invoices daily, and re-checked on a schedule. We never name a brand or a 3PL. How this guide is written