Your 3PL invoice, checked against what you agreed.

ShipLedger reconciles your 3PL’s invoices against your contract rate card and your Shopify order facts, and shows you where a line was billed differently from what was agreed.

Contract mismatch

Oversize handling billed outside the contract definition

Billed
12 orders × $14.50 oversize handling
$174.00
Per contract
longest side on all 12 cartons is ≤ 16.5″, so standard handling applies — 12 × $6.50
$78.00
Overcharge
$174.00 − $78.00 = $96.00
“Oversize handling applies to any carton exceeding 18 inches on its longest side.” Rate card v1 · §2.3 · confirmed by you Aug 12 · effective Jan 1 – Dec 31, 2026

Sources: invoice lines 44–55 · rate card v1 §2.3 · Shopify SKU dimensions

Sample data. This 3PL doesn’t exist.
ShipLedger's Invoice page for August 2026 · Acme Fulfillment, printed as a blueprint: total $9,012.44, 214 of 214 lines re-added — matches the total Acme printed; +$1,246.35 vs July; 8 pages; 8 categories, 1 new fee code flagged; a breakdown table by category with amount, share, change vs July and line counts; Surcharges opened to its three original invoice lines, INV-MOVE · Inventory movement fee, first seen Jun 2026, among them; at the foot: Reconciliation checked this invoice against your contract and your Shopify orders — 3 findings, $96.00 of it claimable.

What it checks

Contract mismatch
A billed rate that doesn’t match a term on your confirmed rate card. Any amount, no percentage: a wrong rate is a wrong rate.
A term card on ShipLedger's Rate card page: Needs review · Term 7 of 22 · $3,875.35, pick & pack · 96 lines in August. Pick fee: $0.485 first unit · $0.28 each additional. Note: Right now the pick fee reads as a price move — $0.515 since May, +6.2%. Confirm this term and the same $0.03 becomes a contract mismatch you can put in a billing question. See it in Findings. The contract clause is quoted underneath: Order fulfilment is billed at $0.485 for the first unit picked and $0.28 for each additional unit in the same order. Contract-2026.pdf · page 3 · §2.1 · opens the contract page image with the clause boxed. Buttons: Confirm, Edit, Reject — Rejected terms never enter calculations, kept in the version log.
Billed vs shipped
A billed quantity that doesn’t match what your Shopify orders say actually shipped, returned, or sat in storage.
A resolved finding row in ShipLedger: Recovered · Billed vs shipped · Returns processing billed twice on the July invoice · $410.00 credited Aug 18.
New & rising fees
A fee code that appears for the first time, or a unit price that drifts past the threshold you set.
Two rows from ShipLedger's Trends page. PICK-FIRST, Pick fee · first unit, +6.2% since May: $0.485 through April → $0.515 from May on, with a sparkline of the step and ≈ $22 a month at today's volume. INV-MOVE, Inventory movement fee, New since June: absent March–May, then $280.00 every month; no rate-card term covers it; $840.00 billed since June.

Your data

Your invoices and order facts are never shared with your 3PL and never sold. You can delete everything we hold, at any time, without asking us.

We do not process your customers’ names, email addresses, phone numbers, street addresses or postal codes.

Findings are suggestions for you to confirm. ShipLedger does not write to your store and does not send anything to your 3PL on your behalf.

Read the privacy policy

ShipLedger's delete dialog: Delete all ShipLedger data? This permanently deletes: 6 invoices, Mar – Aug 2026, and their one-page reconstructions; Rate card Version 1 and its version log; 4 findings, everything in Watching, and the $410.00 recovery record; your Shopify connection and the order facts we read. This can’t be undone. Only de-identified fee-code knowledge remains. PDFs and claim packs you already exported stay yours. Type DELETE to confirm.

Still deciding?

Ask before you install. Questions about setup, your rate card, or how your data is handled all land in the same inbox, and a person answers them.