Vendor Costs — Editor

Edit vendor costs, and view goods received from NetSuite.
amazon-api-pipes.eddie_v2_webpage_ecom_cost_sheet.tbl_vendor_costs
Loading…
Loading vendor costs…
Pick a classification above to see its cost timeline.
Pick a vendor to configure its windows, multipliers, and tariffs.
Vendor → Country Set each vendor's country — it drives the country-scoped tariff/duty on Global Config
Pick this tab to load vendors…
Brands & License Adders A licence royalty charged as a % of the FINAL landed cost per piece
How this works. A class pays a royalty because it is mapped to a brand below — not because of its name. That is deliberate: if someone renames or mistypes a classification, the mapping keeps it paying. The rate is applied last, on top of the finished landed cost per piece (after FOB, tariff, duty, multipliers and freight), so the per-set figure picks it up automatically.
Different rates for different classes? Make two brand names (e.g. Reebok and Reebok — Tier 2) and put each class under the one it belongs to. Changing a rate over time? Give the rates non-overlapping dates; blank dates mean “always”. Two rates covering the same day is refused — the engine will not guess a royalty.
After saving, re-run FIFO for the affected classes so the ledger and the P&L pick it up.
LICENCE RATES brand → % of landed cost per piece
CLASSIFICATION → BRAND
Pick this tab to load…
Global Config Tariff / duty / adders that apply across vendors
JUMP TO
GLOBAL ADDERSApplied to every FOB vendor · Country blank = all countries · Class blank = all classes · added to the FOB base
Examples — Tariff: Country “China”, Class blank, 25%, for the period window. Duty: Class “Mens Mesh Shorts”, Country blank, %, value. Country is matched to each vendor's country (set on the Vendor Config tab, falling back to the cost sheet), so you never name vendors here.
DUTY SETUPDuty by classification · same table as the Upload Center's Duty Setup section — edit here or upload there, latest save wins
TARIFF CHARTTariff % by country · same table as the Upload Center's Tariff Chart section — edit here or upload there, latest save wins
OVERRIDES / EXCEPTIONSReplace a config for a specific country / class / vendor · most-specific scope wins & replaces the base value (it does not add) · e.g. Egypt duty-free = Overrides: duty, Country Egypt, 0%
How precedence works: for each config kind (duty / tariff / a named adder) the most-specific matching scope wins — vendor > country > class > global — and its value replaces the broader one. So a class-wide duty of 28.2% still applies everywhere, but an Egypt country override of 0% zeroes it just for Egypt-origin vendors. Everything is shown transparently on the vendor cards (the base is marked overridden, not hidden).
Pcs Per Set Pieces per set by classification — same table the Upload Center's Pcs Per Set section manages; edit here or upload there, latest save wins
Pick this tab to load pcs per set…
CBM by Classification Cubic meters per unit, from the NetSuite Inbound Shipment behind each receipt — rolled up to classification. (NetSuite stores CBM per shipment line, so it's divided by the line's units.) Click a classification to see its SKUs and open the shipment in NetSuite.
Pick this tab to load CBM…
Containers Every invoice behind the inbound shipments — all history. One row per invoice, so a container that holds several invoices repeats. Cost is matched to each invoice off the Monday board.
Costing by invoice — this tab is keyed by invoice (NetSuite's internal vessel number, e.g. SKL/RE/93/2026), the level at which the factory actually bills. A container often holds several invoices, so the same container number appears once per invoice. Freight and Duty come in automatically from the Monday Master Container Tracker, matched invoice-to-invoice (board item_name) — the board books each invoice's own sea/air/delivery freight and duty, so this is far more accurate than splitting a container total. To override, download the template, enter Freight Cost / Other Charges against an invoice and upload it back — typed figures always beat the board, and invoices you leave out keep what they have. Spreading this across items by CBM share is the next step; that allocation isn't built yet.

Origin shows where each invoice shipped from — resolved from the shipment's vendor (the same country that drives its duty) and, across all history, from the board's supplier. Use 🌍 Set supplier origins to fill in any supplier that isn't mapped yet; the confident ones are pre-filled.
⬇ Download template
Pick this tab to load containers…
Freight by Item Receipt Each invoice's freight spread across the item receipt's lines by NetSuite CBM, down to a per-set cost. 1 unit = 1 set.
How this is built — for each Item Receipt (one per invoice / inbound shipment) we take the invoice's freight from the Monday board (sea + air + delivery) and spread it across the receipt's line items weighted by CBM. CBM comes from NetSuite's inbound-shipment lines (not Monday's). A line's share = its CBM ÷ the receipt's total CBM; that share of the freight ÷ the line's sets gives the freight per set — the cost to move one single set. Click a receipt to see every line. Coverage follows NetSuite's CBM, which is recorded for tracked/recent shipments.
Pick this tab to load…
🚚 High Freight Receipt lines whose freight allocation exceeds the threshold — the exact per-line freight the ledger priced with over $
What this shows — every costed receipt line where the stored freight allocation (the number the FIFO engine actually priced with, from the ledger's receipt lines) is above the threshold. Landed $/Pc includes freight and licence; the Goods $/Pc column backs both out so you can see what the freight sits on top of. Amber rows are estimates (borrowed CBM, SKU average, or lane rate — hover the Source cell for the full story); white rows are measured from the receipt's own shipment. Search, the vendor filter, and Export all operate on the entire result set, not the visible page.
Pick this tab to load…
🧭 Inventory Gap FIFO's on-hand today vs the Inventory Grid's owned units — read-only, adjusts nothing
How to read thisFIFO On Hand is the ledger's current closing quantity per class (seed + receipts − the sales it knows about). Grid Owned is the same figure the Inventory Grid shows today: 5 warehouse locations + RE26 pick/staging + FBA in-stock & inbound + FC reserved + Walmart WFS (customer-order reserved excluded — FIFO already deducted those sales too). Both sides are sets. UNDER rows are the curious ones: physical units exist that FIFO never heard of. OVER is expected-ish — wholesale orders FIFO doesn't see, plus lost/damaged/MIA units over the years. This screen only shows the gaps; nothing is baked in or adjusted.
Pick this tab to load…
💰 Owned Inventory $ Every owned unit in the Inventory Grid, valued at its class's current FIFO cost — read-only
How to read this — Units come from the Inventory Grid's own location columns (the same 14 non-overlapping columns behind its Total Units — customer-order reserved and RE26 87/88/89 excluded, as the grid excludes them). Each class's units are valued at its current FIFO cost: latest closing average cost per piece × pieces per set. Classes with no FIFO cost (never onboarded, or missing a pack size) show as unvalued — counted, never dropped. Walmart WFS is always ~19h behind by design (its sync runs after the grid's 5:15 AM ET rebuild). Display only; nothing is written anywhere.
Pick this tab to load…
Pick this tab's class, seed it above, then hit ▶ Run FIFO.
Opening seed — where each class's ledger starts. Everything before Jan 2024 is this one lot.
Enter the end-of-2023 on-hand quantity and the average cost per piece of that stock. ⚠️ Cost is per PIECE, not per set — the Avg Cost Per Set column on the right shows what that works out to per set, so you can sanity-check against a per-set figure. Change anything here, hit Save seeds, then re-run that class on the FIFO Ledger tab: the ledger recomputes from scratch.
Saving writes every row below, not just the filtered ones — the filter only changes what you see.
⚠ Missing Data — everything standing between a classification and a costed FIFO ledger, biggest sellers first
FREIGHT DATA GAPS · why some receipts fall back to estimated freight instead of measured
Loading…
⛔ Costing Gaps — every receipt the last FIFO run could not price. Red lines on a chart = the receipts; the bars under them = the costs you've configured. A red line with no bar under it IS the gap.
📦 Owned Units — end of month — units on hand at each month close, per classification. Only classes onboarded to FIFO appear; new ones show up automatically once run.
📦 Unit Gaps — the Costing Gaps sibling: every receipt line IS priced, but seed + receipts don't cover what sold. Red = the class closes negative (units came from nowhere). Amber = oversold mid-month, later receipts backfill — timing, not missing units.
➕ Submit Costs — one fact at a time, nothing free-typed. The app closes old eras for you, previews every change, and writes BOTH the FIFO config and the Vendor Costs grid in one shot.
1 · WHAT ARE YOU PRICING
2 · THE NEW COST FACT
YOUR SUBMISSION
Nothing queued yet — add facts on the left. You can stack several (multiple classes, vendors, types) and apply them together.
a preview always comes first — nothing writes until you confirm
LOTS AT ONCE? — BULK TEMPLATE
Same pipeline, just a faster keyboard: the template's Type / Classification / Vendor / Window columns are Excel dropdowns of the app's real lists — nothing free-typed — and every uploaded row lands in this same queue, re-validated, previewed, and confirmed before anything writes. Bad rows are rejected by row number; they never sneak in.
⬇ Download template
🧪 Preflight
Checks a class before you onboard it: pulls its real Item Receipts and prices every line against the costs it would have — the class's own FIFO config if it has one, otherwise its rows on the ECom Cost Sheet, promoted in memory. It writes nothing. No ledger, no Costing Gaps row, no Unit Gaps row — nothing lands anywhere until you press ▶ Run FIFO yourself. Only classes you haven't onboarded are listed, already cut into batches — pick a batch, not classes.
Batches — biggest first, by units sold
A class leaves this list the moment it's onboarded, so Batch 1 is always your next 10 biggest. The batches re-cut as you go — they aren't fixed sets.
Loading batches…
Spot-check one class
Anything, onboarded or not — for re-checking a class that's already live.
Results
Pick a batch on the left, then ▶ Preflight.
Supplier Map
Loading NetSuite receipt vendors…
Pick this tab to load goods received…
🪟 Cost setup
Pick a vendor to load its cost setup.