How 3PLs Price Shipping Labels (and What Changes)
How third-party logistics providers mark up postage, what a 'pass-through' label really includes, and how pay-as-you-go labels change the math for merchants.
A 3PL prices shipping labels one of three ways: a postage markup on top of the carrier rate, a bundled per-order fee that hides postage inside a pick-and-pack charge, or a "pass-through" where you pay their negotiated rate plus a stated handling fee. Each model buries the carrier's actual label cost under something else, which is why merchants who move to a pay-as-you-go label platform are often surprised by how different the same shipment looks when the postage line stands on its own. This guide explains the three models, how to read a 3PL invoice, and what changes when the label itself is billed per use with no monthly fee.
How do 3PLs actually charge for postage?
Most fulfillment contracts describe shipping in language that sounds simple and prices in a way that is not. The three common structures:
- Postage markup. The 3PL buys labels on its own carrier accounts and resells them to you at the carrier rate plus a percentage. The percentage is rarely printed on the invoice; you see one "shipping" line per order.
- Bundled per-order fee. A single fulfillment fee covers picking, packing, materials and postage for a defined parcel class (for example, "up to 1 lb, domestic"). Anything outside the class triggers an add-on line. Postage is invisible inside the bundle.
- Pass-through plus handling. The 3PL shows you the carrier rate it paid and adds a fixed handling fee per label. This is the most transparent model, but "the carrier rate it paid" is a negotiated commercial rate you cannot verify from the outside.
None of these is dishonest. A 3PL is a business that has to earn a margin on the labor and the space it provides, and postage is a convenient place to earn it because the customer rarely knows the underlying number.
What does a "pass-through" label really include?
When a 3PL says postage is passed through at cost, ask which cost. A domestic parcel label can carry several components beyond base postage:
- Base rate for the service, zone and billable weight.
- Dimensional weight if the box is large for its weight. UPS and FedEx publish a DIM divisor for their services; a light but bulky box is billed at the higher of actual and dimensional weight.
- Surcharges such as residential delivery, extended area, or peak-season fees. These are carrier-published and change on a schedule.
- Adjustments issued after the carrier reweighs or remeasures the package. These arrive days or weeks later and are often billed on a separate statement.
A pass-through that quotes only item 1 and bills items 2 through 4 later is still technically at cost, but the invoice you approve on Monday is not the invoice you pay on Friday. Our page on shipping surcharges explained lists the categories carriers publish so you can match them against a 3PL statement.
What changes when labels are pay-as-you-go?
Pay-as-you-go label platforms separate the label from the labor. On GoatLabels there is no monthly fee; you fund a prepaid wallet by card or other methods, and each label draws the quoted amount from that balance. Rates from USPS, UPS, FedEx and DHL show side by side through a carrier network, so the choice of carrier is yours per shipment rather than the 3PL's default.
Three things change in practice:
The postage line becomes visible. You see the quoted price for each carrier before purchase. Prices are not published as a rate card because the platform margin sits on top of carrier commercial rates, but every quote you see is the full amount that will leave the wallet.
Carrier choice moves to you. A 3PL usually ships everything on the one or two accounts it has negotiated. With side-by-side rates, a 3 lb box to a residential address in a far zone might route differently from a 6 oz mailer going two states over, and you decide.
Fixed cost disappears. A 3PL contract often carries minimums, storage fees and account management fees regardless of volume. A pay-as-you-go label account costs zero in a month where you ship nothing.
What does not change: someone still has to pick, pack and hand the parcel to a carrier. Pay-as-you-go labels fit merchants who either fulfill in-house or work with a 3PL that lets them supply their own labels.
A worked example: one box, three invoices
Take a 4 lb box, 12 x 10 x 8 inches, shipping from a US origin to a residential address several zones away.
- Under a postage-markup 3PL, you see one line: "Shipping: $X." You cannot tell the carrier, the service, or the markup.
- Under a bundled fee, the box exceeds a typical "up to 1 lb" class, so the invoice shows the base fulfillment fee plus a weight add-on and a residential add-on. Still no carrier rate.
- Under pay-as-you-go, you open the "To Ship" queue, enter or sync the order, and see USPS, UPS, FedEx and DHL quotes for that exact parcel. USPS Ground Advantage, per USPS, accepts packages up to 70 lb and includes $100 of insurance against loss or damage at no extra charge. If that coverage is enough for the order, you buy the label, print it via PrintNode or the browser, and the wallet balance drops by the quoted amount.
The third invoice is the only one where you can answer "what did this label cost, and why?" without calling anyone.
How do you decide between a 3PL and in-house labels?
Use these rules in order:
- Count orders per day, not per month. If one person can pack the daily volume in under two hours, in-house fulfillment with pay-as-you-go labels is usually viable. Past that, labor is the real constraint and a 3PL earns its fee on labor, not postage.
- Check whether your 3PL accepts merchant-supplied labels. Many do. If yours does, you can keep their picking and packing while generating labels yourself through a public REST label API with one Bearer header, or by bulk CSV import.
- Audit one month of adjustments. Pull every post-shipment adjustment from your 3PL statement. If they are frequent, the problem is dimensions and weights being entered wrong at pack time, and that problem follows you to any label tool.
- Compare fixed costs, not just per-label costs. Add storage, minimums and account fees to the 3PL side. Add zero to the pay-as-you-go side, since GoatLabels has no monthly fee. See pricing for how the wallet model works.
If the answer is "keep the 3PL but take back the labels," the next step is connecting your stores. GoatLabels has 13 live store connectors, including Shopify, WooCommerce, Amazon, eBay and Walmart, and every synced order lands in one "To Ship" queue. You can sign up without a contract and test with a single label. Common questions about wallets, voids and carrier support are in the FAQ.
Quick answers
How do 3PLs make money on shipping? Typically through a postage markup, a bundled per-order fee that includes postage, or a pass-through rate plus a handling fee; the markup is rarely itemized.
Does pay-as-you-go mean cheaper labels? Not necessarily; it means the postage line is visible per label, there is no monthly fee, and you choose the carrier from side-by-side USPS, UPS, FedEx and DHL quotes.
Can I use my own labels with a 3PL? Many 3PLs accept merchant-supplied labels, which lets you keep their pick-and-pack service while buying labels yourself.
Why doesn't GoatLabels publish a rate card? Because the platform margin sits on top of carrier commercial rates; the quote you see in the app is the amount charged to your wallet.