Table Rate Custom Carrier
Set up and manage flexible shipping rates with Table Rate Carriers in ShipperHQ
- Overview
- Set Up a Table Rate Carrier
- The CSV File
- CSV Header Fields
- Importing CSV File
- Editing Your Table
- Viewing Your Table
- Include and Exclude Zones Columns
- Price/Weight Range Filtering
- Totalling Algorithm
- Cumulative
- Highest
- Per Item
- SKU Based
- Example Rates and Carts
- Advanced Options
- Algorithm Column
- Working with Shipping Groups
- LTL Freight Accessorial Charges
- Troubleshooting
Overview
Table Rate Carriers offer a flexible way to define shipping rates based on destination, product features, price, quantity, weight, and customer groups. 😊 They are ideal for tiered flat rates, local deliveries, custom rates, carriers not integrated with ShipperHQ, and "call for quote" scenarios. This guide explains how to configure and use Table Rate Carriers.
Table Rates integrate with Shipping Rules and advanced features based on shipping complexity.
Set Up a Table Rate Carrier
Create a Custom Carrier to begin:
- On the "Carriers" page, select "+New"
- Choose Custom Carrier > Table Rate > Name Your Carrier
- Once created, proceed to "Configure Carrier Settings"
The CSV File
You can manually add table rates or upload a CSV file. To obtain a sample CSV, click Download CSV template.
CSV Header Fields
- Include Zones: Comma-separated list of applicable zones
- Exclude Zones: Exceptions to "Include Zones"
- Shipping Group: Comma-separated list of shipping groups
- SKU: SKU for matching (used with SKU Based totalling)
- Customer Group: Filter based on customer group
- Weight >: Minimum combined weight must be greater than this value
- Weight <=: Maximum combined weight must be ≤ this value
- Price >: Minimum price must be greater than this value
- Price <=: Maximum price must be ≤ this value
- Qty >: Minimum quantity must be greater than this value
- Qty <=: Maximum quantity must be ≤ this value
- Box Qty >: Minimum number of boxes must be greater than this value
- Box Qty <=: Maximum number of boxes must be ≤ this value
- Shipping Price: Shipping cost
- Algorithm: Rate algorithm (optional)
- Shipping Method: Label for shipping method (e.g., USPS, UPS)
Ensure all header fields are present in your CSV.
Importing CSV File
- Click Import CSV in the Add Table Rates section.
- Ensure the CSV has a shipping method in each row.
Editing Your Table
You can edit in two ways:
- Directly within ShipperHQ:
- Use the Update Table Rate modal by clicking a table row or using the actions menu to select "Edit"
- By importing a CSV:
- Import and Replace removes all existing rates and creates new ones
- Import and Append adds new rates as additional rows
You can download the table as CSV using Export CSV to edit or save.
💡 Note: Back up your table before selecting "Import & Replace" to avoid data loss.
Viewing Your Table
Tables in ShipperHQ show only relevant information. Customize the view by selecting Customize Table View > Show Selected Columns to toggle visibility. A full-screen view option is available.
Include and Exclude Zones Columns
- "Include zones" apply the rule, while "exclude zones" are exceptions.
- For zones like AK & HI, define "include zones," and ensure exclude zones do not conflict unnecessarily.
Price/Weight Range Filtering
Define price ranges as:
Translate to "price is greater than X and price is less than or equal to Y."
Misconfiguration Example:
Modify ranges for continuity:
Correct Configuration:
Totalling Algorithm
The totalling algorithm defines how the rates are totaled when there are multiple shipping groups in the cart.
Cumulative
For each shipping group present (and the rates covering all products) the rates are added together.
Highest
The highest price shipping group shipping rate is taken to be the rate.
Per Item
For every SKU in the cart (and every qty of that sku) the rates are totaled together. In addition when searching for rates each item is searched for separately, i.e. if I have 2x 5lb items it will search for a weight of 5lb in the rules, rather than a weight of 10lb in the rules.
SKU Based
Each SKU requires a row in the table. For every SKU the price is taken and totaled together. If there are multiples of one SKU the price is multiplied e.g. 2x SKU BIKE where shipping price = $5 would be $10 total.
Example
Weight From | Weight To | Shipping Group | Price |
---|---|---|---|
0 | 5 | * | 10 |
5 | 10 | * | 15 |
10 | 35 | * | 25 |
10 | 50 | BEDS | 50 |
Items | Cumulative Shipping Price | Highest Shipping Price | Per Item Shipping Price | Notes |
---|---|---|---|---|
1*5lb | $10 | $10 | $10 | |
2*5lb | $15 | $10 | $20 | |
1*BIKES 5lb | $10 | $10 | $10 | Even tho no group specified the ALL group provides rates |
1*BEDS 5lb | $10 | $10 | $10 | Gets rates as ALL is a catch all |
1*BEDS 35lb | $50 | $50 | $50 | |
2*BEDS 35lb | No Rates | No Rates | $100 | No rates as total for group is 70lb |
1*BEDS 35lb&1*5lb | No Rates | No Rates | $55 | No rates as can’t find for ALL |
Advanced Options
Algorithm Column
This section details the algorithm column. Unless you have a specific need then suggest you leave this column empty.
Use ‘&’ if you need multiple switches e.g. perUnitWeight=5@8&perUnitQty=3
Algorithm Switch | Description | Syntax |
---|---|---|
perUnitWeight | Weight rounded to the next highest full measurement. Adds the specified amount for every unit of weight from weight of 0 | perUnitWeight=<weight threshold> @ <price>. E.g.: Add $1.50 per 1lb – perUnitWeight=1@1.5 |
perUnitWeightAddOn | Weight rounded to the next highest full measurement. Adds the specified amount for every unit of weight above the “Weight >” field | perUnitWeightAddOn=<weight threshold> @ <price>. E.g.: Add $1.50 per 1lb – perUnitWeightAddOn=1@1.5 |
perUnitQty | Unit based price increase. Used to specify an additional per item rate. Applies to any quantity above the “Qty >” field. If that field is * then applies to all. | perUnitQty=<price> E.g. to add $5 for every item added use: perUnitQty=5 |
perUnitQtyAll | Unit based price increase. Used to specify an additional per item rate. Applies to all quantities regardless of “Qty >” field. | perUnitQtyAll=<price> E.g. to add $5 for every item added use: perUnitQtyAll=5 |
perUnitDistance | Adds to shipping price based on distance from the destination. | perUnitDistance=<unit of distance> @ <price>to add $5 per 100 miles use:perUnitDistance=100@5 surcharge for 300 miles would be 3 * 5 = $15 shipping price |
perUnitPrice | Add $x to the shipping cost for every $y in the cart. Price is rounded up. | perUnitPrice=<price threshold>@<shipping price>. E.g.: Add $1.50 per $10 – perUnitPrice=10@1.5 |
perUnitPriceAddOn | Add $x to shipping cost for every $y in cart over “Price >” column value. Price is rounded up. | perUnitPriceAddOn=<price threshold> @ <shipping price>. E.g.: Add $1.50 per $10 – perUnitPriceAddOn=10@1.5 |
addPercentage | Calculate shipping as a Percentage surcharge of the group subtotal of the cart | addPercentage=10 will add 10% of the shipping group subtotal to the shipping price e.g. 10% of 20 will add $2 to the shipping price set |
perBox | Box based price increase. Used to specify additional per box rate | perBox=<price> Increment per unique box added E.g. to add $5 for each box use perBox=5. Does not increment for multiples of the same box |
Working with Shipping Groups
Read the article on shipping groups with table rates.
LTL Freight Accessorial Charges
🔔 Accessorial Charges on Pro and Enterprise plans add costs like liftgate fees.
Troubleshooting
For assistance, refer to Troubleshooting Table Rate Issues.