The Hidden Costs That Inflate Your Lithium Cell Landed Price
The landed price of a lithium cell is the quoted unit price plus every cost incurred between the supplier's shipping dock and yours, converted to one common Incoterm basis and expressed per unit and per kilowatt-hour: main freight and its surcharges, cargo insurance, duty and customs brokerage, inland transport and drayage, testing and certification amortized across program volume, and the carrying cost of the inventory the lead time forces you to hold. Comparing only the first term is comparing a price, not a cost. The gap between the two is usually wide enough to change which supplier wins.
I had two quotes open on a second monitor — same cell, same nominal capacity, one written FOB and one written DDP — and for about ten minutes I did the thing everybody does. I looked at the two big numbers and formed an opinion. Then I built the column that was on neither quote, and the opinion flipped. Neither supplier was being slippery. The two numbers simply weren't the same measurement, and I had been treating them as if they were.
I'm not going to hand you rates. Any freight figure or duty figure typed into this page would be stale before your coffee went cold, and worse, you'd anchor on it. What travels across programs is the structure: which lines exist, which party owns each one under a given term, and how to turn your own inputs into a per-unit number you can defend in a review without apologizing for the assumptions.
Put every quote on the same dock first
Before anything gets compared, everything goes to one basis. Mine is FOB origin port, because it is the last point where the supplier genuinely controls the cost and the first point where freight becomes a visible, separable quantity I can argue about with a forwarder.
Under CIF, the seller arranges and pays freight and minimum insurance to your port; you take it from there. Under DAP, the seller delivers to a named place — it reads like door delivery, and that's the trap, because import clearance and duty are still yours. Under DDP, the supplier acts as importer of record. That produces a beautifully tidy number that also removes your visibility into the exact thing you are trying to measure: you don't file the entry, you don't see duty as a line, you don't control classification or declared value, and the DDP premium arrives as a black box marked up at whatever the supplier believes the market will bear.
When a supplier quotes DDP, I ask for the same quote reissued CFR or FOB. Most will do it in a day. If they won't, that itself is information.
Freight is a stack, not a line
Base rate. Fuel surcharge. Dangerous goods surcharge. Terminal handling at both ends. Documentation. Security. Cells shipped alone move as UN3480 under Class 9; packed with or in equipment, UN3481. Standalone cells travel by air only at reduced state of charge, which is the practical reason volume programs go ocean and build the transit time into the model as working capital.
The part that gets skipped in most comparisons: freight per unit is a function of packing density as much as rate. Ask for carton dimensions and units per pallet before you accept any lump-sum freight number. A supplier whose carton is a few centimeters larger on each side can quietly consume the entire rate advantage you negotiated, and nobody will notice because the freight invoice looks normal.
The paperwork lines that never make the sheet
Cargo insurance is quoted as a percentage of insured value, conventionally 110% of invoice under CIF, and the default cover behind that term is the narrow clauses set, not the broad one. For a product that fails by thermal event rather than by seawater, the minimum cover implied by the term is thinner than most buyers assume. Buy the cover you actually want, then put its cost in the model.
Brokerage is entry fee, importer security filing, bond, and then the clock: per-diem and detention begin when the container sits. A shipment that lands Friday and gets pulled Tuesday has a real cost that appears in no quote and no purchase order.
Duty belongs in the model as a range
I don't carry duty as a single column. I carry three: the rate as classified today, a mid case, and a case where origin lands somewhere I didn't expect. Not because I know something, but because the rate can move between the purchase order and the ship date, and a landed cost model with one duty assumption has an unhedged bet at its center.
One structural point worth more than any number: origin is not always where the pack was assembled. Rules of origin for cells can turn on where the cell itself was formed. If country of origin is doing heavy lifting in your comparison, that's a broker question, not a spreadsheet question.
Testing is a fixed cost wearing a per-unit disguise
A UN 38.3 test summary is the floor for shipping at all. A supplier who cannot produce one for the exact cell in the quote isn't a candidate — that's not a cost question.
The buyer-side costs are the ones that get dropped: sample cells and packs, lab fees, a witness test if you want eyes on it, UL 2054 and UL 1642 for the US market, IEC 62133 if you're exporting, follow-up inspections, and the retest triggered by any cell or BMS change. Amortize all of it over program volume. Then run the same arithmetic at half that volume, because programs shrink more often than they grow, and the fixed cost doesn't shrink with them. On a small build, one test campaign can add more per unit than the entire cell price difference you spent three weeks negotiating.
This is also where supplier comparisons quietly break. A supplier who already certified that exact cell and a supplier who will run the campaign for you are not competing on price. They are competing on who pays a fixed cost and when. One looks cheap today and expensive at five hundred units.
The only line that grows while everyone argues
Inventory carrying cost is the sole item in the model that gets worse the longer the decision takes, which is why I put it near the top of the page rather than in an appendix.
The mechanics: average inventory in units times landed unit cost times an annual carrying rate. Average inventory is cycle stock divided by two, plus safety stock, plus whatever is in transit.
Two things people get wrong. In-transit inventory is yours under FOB from the moment it's loaded, so five weeks on the water is five weeks of your capital sitting on a ship and it belongs in the average. And safety stock is driven by lead time variability, not lead time. A supplier who quotes twelve weeks and hits twelve weeks is cheaper to hold than a supplier who quotes six and swings four, even though the second one looks better on the schedule.
The carrying rate itself comes from finance, not from me. Cost of capital, storage, insurance on goods while you hold them, obsolescence on a chemistry that may be superseded. Ask for the number in writing. If nobody will give you one, use the company's cost of capital as a labeled placeholder and type PLACEHOLDER in the cell so nobody mistakes it for data six months later.
What goes in front of the review board
One page. One bar per supplier: landed cost per kilowatt-hour at the program's stated volume, on a common basis, with assumptions printed underneath — freight per container assumed, duty shown as a range across the three cases, test amortization at both forecast and half forecast, carrying rate and its source, and an expiry date at the top. The model is a decision tool, not a ledger.
I re-run it when the volume forecast moves by more than roughly twenty percent, when freight comes back different, or when a supplier changes a cell. That last one is the quiet killer. A cell swap that saves a few cents a unit can invalidate a certification and restart a test campaign, and the per-unit cost of that is not a few cents.
Back to those two quotes on the second monitor. On the page, one had won by a comfortable margin. Normalized, it lost — not because of any single dramatic line item, but because four modest omissions had stacked up in the same direction. That's usually how it goes. The landed price doesn't get inflated by one big hidden cost. It gets inflated by five ordinary ones nobody put in the same column.