Importing & Exporting Product Cost Estimates
Product Cost Estimates help you compare expected costs across suppliers, order quantities, and fulfillment methods. You can manage estimates one product at a time or use a CSV file to create and update them in bulk.
Each estimate belongs to a product and records:
- the source, which can be a supplier or your own internal estimate
- the cost type: Standard or Dropship
- the quantity tier
- the unit cost and its optional materials, labor, and packaging breakdown
- optional inbound freight, duties and tariffs, lead time, and effective date
Endless calculates the estimate's landed cost as Unit Cost + Inbound Freight Cost + Duties & Tariffs Cost.
Product Cost Estimates are separate from the default Unit Cost, Landed Cost, and Dropship Unit Cost fields on a product. They are also estimates, not allocations of actual landed costs from received inventory.
Recommended Workflow
The safest way to make bulk changes is to export Product Cost Estimates, edit the exported file, and import it back into Endless. The export already contains the correct product SKUs, supplier handles, column names, and values used to match existing estimates.
Exporting Product Cost Estimates
- Open Products.
- Apply any product filters you want to use. The export includes estimates only for products matching those filters.
- Select Export from the actions menu.
- Choose Product cost estimates.
- Select Export.
The export runs in the background. Endless notifies you when the CSV is ready to download.
Each active Product Cost Estimate appears as one row. A product with estimates from multiple suppliers or for multiple quantity tiers appears on multiple rows.
Importing Product Cost Estimates
- Open Products.
- Select Import from the actions menu.
- Choose Product cost estimates.
- Upload your CSV and confirm the column mapping.
- Review the data and start the import.
The import runs in the background. Endless notifies you when it finishes and reports how many rows succeeded or failed.
How Existing Estimates Are Matched
Product Cost Estimate import is an upsert workflow. Endless identifies an estimate by the combination of:
SKUSupplier Handle, including a blank handle for your own estimateCost TypeQuantity
If all four values match an existing estimate, that estimate is updated. If the combination does not match, a new estimate is created.
Do not include the same combination more than once in one file. A duplicate row fails rather than replacing an earlier row.
Required Columns
SKU- Must exactly match an existing product SKU in your company.Cost Type- Usedefaultfor Standard costs ordropshipfor Dropship costs.Unit Cost- Must be greater than zero. Enter a number without a currency symbol, such as12.50.Quantity- The order quantity for this estimate. Use a whole number of zero or more.
Optional Columns
Supplier Handle- Must exactly match an existing supplier handle in your company. Leave blank for your own internal estimate.Materials Cost- Materials portion of the unit cost. Must be zero or greater.Labor Cost- Labor portion of the unit cost. Must be zero or greater.Packaging Cost- Packaging portion of the unit cost. Must be zero or greater.Inbound Freight Cost- Estimated inbound freight per unit. Must be zero or greater.Duties & Tariffs Cost- Estimated duties and tariffs per unit. Must be zero or greater.Lead Time- Estimated lead time in days. Use a whole number of zero or more.Effective Date- Date the estimate becomes current. This defaults to today when a new estimate is imported without a date.
Use up to four decimal places for cost amounts. Product Cost Estimates use your company's currency. For dates, YYYY-MM-DD, such as 2026-08-11, is the safest format.
Materials, labor, and packaging should add up to the Unit Cost. Inbound freight and duties are added to the Unit Cost to calculate the estimated landed cost. Endless stores these values independently, so review the totals before importing.
CSV Example
SKU,Supplier Handle,Cost Type,Unit Cost,Materials Cost,Labor Cost,Packaging Cost,Inbound Freight Cost,Duties & Tariffs Cost,Quantity,Lead Time,Effective Date
TEE-001,acme-manufacturing,default,7.50,5.50,1.50,0.50,0.50,0.25,100,30,2026-08-11
TEE-001,,dropship,9.50,,,,0,0,0,5,2026-08-11
The first row creates or updates a Standard estimate from acme-manufacturing for an order quantity of 100. Its estimated landed cost is 8.25 per unit.
The second row creates or updates your own Dropship estimate for the same product. The blank Supplier Handle makes it an internal estimate.
Updating and Clearing Values
For an existing estimate, the required matching columns must remain in the file. Optional cost columns are applied when they are included. A blank optional cost cell clears the existing value; remove that cost column from the file if you want to leave its values unchanged. A blank Lead Time clears the existing lead time.
A blank Effective Date leaves an existing estimate's date unchanged. For a new estimate, it defaults to today.
Validation and Results
Products and suppliers must already exist before you import their estimates. The import does not create either record.
Rows are processed individually. An invalid row does not prevent other valid rows from being created or updated. The completion notification reports the result and includes details for failed rows.
Troubleshooting
If an import creates a new estimate when you expected an update, compare the SKU, Supplier Handle, Cost Type, and Quantity with the existing estimate. A difference in any one of those values creates a different estimate.
If a supplier cannot be found, use the supplier's handle rather than its display name. Starting from an Endless export is the easiest way to get the correct handle.
If a row fails validation, check that Unit Cost is greater than zero, other cost values are not negative, Quantity and Lead Time are whole numbers, and Effective Date uses a recognized date format.