Articles in this section

How Storage by Product Charges Are Calculated

Storage by Product fees in 3PL Billing charge per product–location combination. For each combination, ShipHero finds the highest inventory level (peak quantity) recorded during the billing period, multiplies it by the product's volume, and applies your configured rates. This article covers how that charge is calculated, how peak quantity works, how conflict detection prevents duplicate fees, and what to watch for in edge cases.

For setup steps and field reference, see How to Set Up Storage Fees by Product in 3PL Billing.

Table of Contents

How Storage by Product Charges Are Calculated

For each product–location combination that matches the fee's scoping, ShipHero generates one charge entry per time unit in the billing period. The charge for each time unit is:

Charge = (Volume rate × peak on-hand volume) + (Per-item rate × peak on-hand quantity) + Per-day rate

Where peak on-hand volume = peak on-hand quantity × (length × height × width).

Storage by Product Calculation Example

Setting Value
Volume rate $0.001 per cu in
Per-item rate $0.10 per unit
Per-day rate $0.50
Product dimensions 10 × 5 × 4 in = 200 cu in
Peak on-hand quantity 50 units

Charge per time unit = ($0.001 × 50 × 200) + ($0.10 × 50) + $0.50 = $10.00 + $5.00 + $0.50 = $15.50

How Peak Quantity Is Determined for Storage by Product Fees

For each time unit in the billing period, ShipHero uses the peak on-hand quantity — the highest inventory level recorded during that period — rather than the average or the end-of-period figure.

When a product was in the warehouse before the billing period started and no location changes occurred during the period, ShipHero looks back through the change log to find the most recent prior snapshot and carries that quantity forward into the current period.

This pre-period lookback works the same way as Storage by Location fees. A product that was in a location before the billing period began — and did not move — will still generate a charge. ShipHero detects the prior occupancy and carries it into the current period.

Monthly Fees on Weekly Billing Cycles

When a monthly storage fee fires on a weekly bill (the bill whose window contains the last day of the month), the peak quantity check covers the entire calendar month — not just the 7-day billing window. A product stored January 1–20 but removed before month-end will still be charged on the end-of-month weekly bill. See How Storage by Location Fees Are Calculated in 3PL Billing for the full pre-period lookback explanation.

Storage by Product Conflict Detection

Each Storage by Product fee is unique per combination of location type + product profile within a billing profile. A product profile is a named group of SKUs you define to control which fee applies to which items. Conflict detection is two-dimensional — two fees conflict only when they share both the same location type and the same product profile.

The following combinations are valid on the same billing profile:

  • Two fees targeting the same product profile but different location types.
  • Two fees targeting the same location type but different product profiles.

The following combination is blocked with the error "Invalid fee, conflicts with existing fee(s) '[fee name].'":

  • Two fees targeting the same location type and the same product profile.

Pro-Tip

Use two-dimensional scoping to build a rate matrix. For example, set one fee for fragile products in cold storage at a premium rate, and a separate fee for standard products in standard shelving at a base rate. As long as each fee targets a unique location type + product profile combination, all fees can coexist on the same billing profile.

Important Considerations for Storage by Product Fees

Products Without Dimensions Are Skipped at Billing Time

When a product has no length, height, or width in its product record, ShipHero skips it at billing time — no charge is generated and no error is raised. This is the most common cause of missing storage charges on client bills. Audit product records regularly to confirm dimensions are populated for all inventory in 3PL client accounts.

Storage by Product Charge Description on Exported Bills

The charge description on exported bills follows this format: "[Product name] stored in [location name] — [n] [time unit](s) at peak quantity [qty]."

More Resources

  • ShipHero Public API

    Connect your tools and AI agents directly to ShipHero with the Public API. Build powerful integrations, automate workflows, and tap into real-time data using the AI tools you prefer, with the option for secure, read-only access for AI-driven insights without added risk.

  • ShipHero Academy

    Explore ShipHero Academy for certifications, deep-dive training, and expert-led courses on WMS and fulfillment. Build your expertise and help your team operate at a higher level.

  • Change Log

    Stay up to date with the latest improvements across ShipHero. The Change Log gives you a clear view of new features, enhancements, and fixes as they roll out—so you always know what’s new and what’s better.