GoatLabelsGoatLabels
For controllers and finance managers.

Shipping cost allocation for parcel spend


One reference. Every cost line.

Shipping cost allocation works when every label carries the key you allocate by. GoatLabels writes each USPS, UPS, FedEx, and DHL label to a dated ledger line with your reference, so finance can pivot cost by customer, order, job, or cost center. It is $0 a month on Free or $40 flat on Pro, and it does not post to your ERP or accounting system for you.

Four carriers in one ledger

USPS, UPS, FedEx, and DHL labels are bought from one account, so parcel cost lands in one dated ledger instead of four invoice formats.

UPSFedExDHLUSPSone ledger
Four carriersOne all-in number each.
Dated linesOne per label bought.
Multi-cartonSame reference on each.

A reference on every debit

Each label debits the quoted amount from a prepaid wallet to a ledger entry that carries the customer, order, job, or cost center you sent.

VisaMastercardAmerican ExpressApple PayGoogle PayBitcoinEthereumTether (USDT)
Your referenceSet at purchase time.
Re-weighsTheir own ledger lines.
Pro $40 flatUnlimited shipments.
Shipping cost allocation methods, compared

What are the ways to allocate parcel shipping cost?

Parcel cost allocation works one of four ways: from a reference-carrying label ledger, from carrier invoices keyed into a spreadsheet, through a parcel audit or spend platform, or as a freight accrual inside the ERP. GoatLabels is the first: the key is attached when the label is bought. The table shows where each method gets its key and what it leaves for you to do.

Updated

Shipping cost allocation methods, compared, sources checked 2026-10-06
 GoatLabelsCarrier invoices in a spreadsheetParcel audit or spend platformERP freight accrual
Where the allocation key comes fromThe reference you send with each label: a customer, order, job, or cost center code. It is stored on the ledger line.Whatever reference fields the shipper filled in, matched by tracking number to your own order list.Carrier invoice data, mapped to your codes by rules set up in the platform.The sales order or shipment record already in the ERP.
When cost is knownAt purchase. The quoted amount is debited from the prepaid wallet and dated that day.When each carrier invoice arrives, on each carrier's billing cycle.After invoices are loaded and processed by the platform.Estimated at shipment, then trued up when the carrier invoice is matched.
Later carrier adjustmentsA re-weigh adjustment posts to the same ledger as its own line with the same reference.Appear on a later invoice and must be traced back to the original shipment by hand.Varies by vendor; check how adjustments are reported and tied to your codes.Booked as a variance against the accrual when the invoice is matched.
Posting to the booksManual. Export the ledger, pivot or join by reference, then post a journal or rebill. No automatic posting and no GL coding rules.Manual. The spreadsheet is the working paper for the journal entry.Varies by vendor. Ask whether GL-coded exports or ERP posting are included.Inside the ERP. Microsoft documents Dynamics 365 adding the returned parcel rate to the sales order as a miscellaneous charge.
Separate balances per unitNo. One wallet and one ledger; there are no sub-accounts. Units are separated by reference only.Only if each unit holds its own carrier account numbers.Depends on how your carrier accounts are structured.Handled by the ERP's own entities and dimensions.
Price and commitmentFree $0 a month with 50 shipments, or Pro $40 a month flat with unlimited shipments. No contract.No software cost; the cost is staff time each period.Not covered here; pricing is set by each vendor.Part of the ERP license or an added module.

Third-party details checked on from each vendor's own pages: Microsoft Learn: small parcel shipping in Dynamics 365 Supply Chain Management. Plans and features change, so confirm on the vendor's current page before you decide.

What is shipping cost allocation?

Shipping cost allocation is assigning each parcel's cost to the customer, order, job, or cost center that caused it, instead of leaving it in one freight expense account. It lets a controller see margin after freight by customer, rebill shipping that was promised as pass-through, and charge departments for what they actually sent.

The hard part is rarely the arithmetic. It is the key. A carrier charge can only be allocated if something on the charge says who it belongs to, and that link is easiest to create at the moment the label is bought. Every method in the table above is a different answer to the question of where that key comes from and when it is attached.

How do you allocate shipping costs to customers, orders, or cost centers?

Put the allocation key in the label reference when the label is bought, then group the ledger by that reference. In GoatLabels the reference travels with the label whether it is created in the dashboard, in a bulk CSV import of up to 500 rows, or through the REST API, and it is written to the dated ledger entry next to the amount debited.

Pick one convention and keep it. A sales order number works for freight cost allocation by order, and you can look up the customer from it. A job number suits project and print work. A cost center code suits internal senders such as a mailroom. If you need two keys, combine them in one reference with a fixed separator so a spreadsheet formula can split them later.

How does the ledger become a journal entry or a rebill?

Export the ledger for the period, pivot or join it by reference, and post the totals. A pivot by cost center gives the lines of an allocation journal. A join from order reference to your order list gives freight per customer, which is the basis for a rebill line on an invoice or a margin report after freight.

The posting itself is yours to do. GoatLabels has no automatic posting to an ERP or accounting system and no rules engine that maps references to GL codes, so the mapping lives in your spreadsheet, import template, or script. Because labels are paid from a prepaid wallet, the ledger total for a period also ties to the wallet debits, which gives the reconciliation a fixed control total.

What happens to the allocation when a carrier re-weighs a parcel?

The adjustment appears in the ledger as its own dated line carrying the same reference as the original label, so it rolls up to the same customer, order, job, or cost center. Nothing has to be traced back through a later carrier invoice by tracking number to find out whose parcel it was.

For period close, this means an adjustment can land in a later period than the label it relates to. Decide in advance whether you post it in the period it appears or push it back to the original, and whether small adjustments on rebilled orders are passed on or absorbed. Multi-carton orders behave the same way: each carton is a ledger line with the order's reference.

When is this the wrong tool for shipping cost allocation?

It is the wrong tool if you need separate balances or sub-accounts per department or client, automatic posting into an ERP or accounting system, or a GL coding rules engine, because GoatLabels has none of those. It also covers only labels bought through your one GoatLabels account, and it is parcel only with no LTL or freight.

If most of your spend runs on your own negotiated carrier contracts, the charges you need to allocate are on those carrier invoices, and an invoice-based method fits better. Teams that want invoice auditing and spend analytics across contracts should read the parcel spend management page. GoatLabels suits teams that can buy the labels here and want the key attached from the start.

Need the wider view of parcel spend? See parcel spend management. Looking for the category view first? See B2B shipping software.

Public API v1

Send the key with the label.

If your order system already knows the customer, job, or cost center, a script can pass it as the reference when it buys the label through the REST API. Calls are unlimited on every plan, with live and test keys, Idempotency-Key support, signed replayable webhooks, and rate-limit headers. The dashboard and the API spend the same prepaid wallet and write to the same ledger.

Your reference stored on every ledger line
Idempotency-Key so a retried call never buys twice
Signed, replayable webhooks back to your system
OpenAPI 3.1 spec to generate a client
Read the API docs Get an API key$0 per API call
curl https://api.goatlabels.io/api/v1/shipments
POST /api/v1/shipments
Authorization: Bearer sk_live_…
Idempotency-Key: ord_8421

{
  "to": { "name": "Joyce", "city": "Berlin", "country": "DE" },
  "parcel": { "weight": 2.6, "weight_unit": "lb" },
  "service": "fedex_intl_priority"
}
Pay for labels, not a tier

Two plans. No contract.

Free is $0 a month with 50 shipments a month. Pro is $40 a month flat with unlimited shipments and cheaper label rates. Bulk CSV, 13 connectors, and the REST API come with both, and labels are paid from a prepaid wallet.

Pro

Most popular
$40/ month
Unlimited shipments on one flat plan
Cheaper label rates
Four carriers rate-shopped on every parcel
The same API and wallet as Free

Volume pricing

illustrative
less volumemore volume

pay for labels, not for seats

Free

$0 / forever

Enough to test your reference convention for a month.

50 shipments a month at $0
USPS, UPS, FedEx, and DHL rate-shopped on every parcel
REST API with unlimited calls
Bulk CSV import, up to 500 rows per file
13 store connectors included

The assistant is included

The in-app assistant drafts a label from a pasted order or email for you to confirm. It is part of the product, not an add-on.

Web, every planTelegram, Pro

API on every plan

GET /api/v1/shipments

200 OK · plan: free

Unlimited calls. The same wallet as the dashboard.

Bring last month's shipments

Put real parcels through the side-by-side quotes and compare against what those labels cost you on

ShippoPirate ShipShipStation
No contractNo card for FreeFour carriers
USPSUPSFedExDHL

Label prices are quoted live from USPS, UPS, FedEx, and DHL and shown as one number, the same number that leaves your wallet. Other vendors' plans move, so compare against their current pricing page. Full pricing details

Shipping cost allocation: FAQ

Can I allocate shipping cost by department or cost center?
Yes. Put the cost center code in the label reference when the label is bought. Each ledger line carries that reference with the date and the amount debited, so a pivot of the exported ledger gives shipping cost by cost center for the period.
Does GoatLabels post shipping costs to my ERP or accounting system?
No. There is no automatic posting to any ERP or accounting system and no GL coding rules engine. You export the ledger or read it through the API, map references to accounts on your side, and post the journal or rebill yourself.
Can each department or client have its own balance?
No. GoatLabels has one prepaid wallet and one ledger per account, with no sub-accounts or per-client balances. Departments and clients are separated by the reference on each ledger line, not by separate funds.
How do re-weigh adjustments show up?
A carrier re-weigh adjustment posts to the same ledger as its own dated line with the same reference as the original label. It groups with the original shipment when you pivot or join by reference.
What does shipping cost allocation cost with GoatLabels?
The software is $0 a month on Free with 50 shipments a month, or $40 a month flat on Pro with unlimited shipments and cheaper label rates. The reference ledger is on both plans. Labels are paid from a prepaid wallet, and there is no contract.
Can I talk to someone about our allocation setup first?
Yes. Email contact@goatlabels.io with the keys you allocate by, your monthly parcel volume, and how you post freight today. We show the ledger export with a reference on every line and price sample parcels across USPS, UPS, FedEx, and DHL. There is nothing to sign.

Related reading: B2B shipping software, parcel spend management, bookkeeping for shipping costs, carrier billing adjustments, corporate mailroom shipping software, ERP shipping integration.

B2B shipping operations guides: Multi-carrier shipping software, Shipping rate shopping software, Sample shipping software, Shipping software RFP template, ShipStation alternative for B2B.

Test it on one month of labels.

Every parcel cost, already tagged.
Pivot and post.

Put the customer, order, job, or cost center in the label reference, export the ledger, and allocate. Free is $0 a month; Pro is $40 flat with unlimited shipments.

No contract. No card for the Free plan.