Column reference table
What each column means
Zone
The shipping zone this rate applies to. This must match a zone you’ve already created in the MatrixRates app. If the zone name doesn’t exist, the import will fail.Country Code
The two-letter code for the destination country. Use standard ISO codes.- Specific Country (e.g.,
US,GB) — Applies the rate to that country. - Global Wildcard (
*) — Applies the rate to all supported countries.
See supported country codes
See supported country codes
Country Name
The full name of the country (e.g.,United States or United Kingdom). This is for readability; the app primarily uses the Country Code to identify the destination.
Province
The state, province, or region within a country. Enter the full name (like “California” or “Ontario”).- Multiple Provinces — You can enter a comma-separated list (e.g.,
California, New York, Texas). - All Provinces — Leave blank or enter
*to apply the rate to all provinces in the country.
See supported province names
See supported province names
Postcode
Growth Plan Scale Plan The postal or ZIP code. You can enter a single code, a comma-separated list (e.g.90210, 90211), or use wildcards for powerful matching:
- 90210 — Matches exactly “90210”
- 90* — Matches any code starting with “90” (e.g., 90210, 90001)
- *1AA — Matches any code ending with “1AA”
- SW* AA — Matches codes like “SW1A 1AA” or “SW2 0AA”
- * — Fallback: the rate only shows when no other rate in the same country matches the customer’s address more specifically. See Fallback rates.
*, it is never hidden by more specific rates.
Always use
* on its own in the cell. Don’t combine it with other patterns in a comma-separated list (e.g. *, 90210).City
Growth Plan Scale Plan The city name. You can enter a single city, a comma-separated list (e.g.London, Paris), or use wildcard patterns:
- London — Matches exactly “London”
- New * — Matches “New York”, “New Orleans”, etc.
- * city — Matches “Kansas City”, “Jersey City”, etc.
- * — Fallback: the rate only shows when no other rate in the same country matches the customer’s address more specifically. See Fallback rates.
*, it is never hidden by more specific rates.
Always use
* on its own in the cell. Don’t combine it with other patterns in a comma-separated list (e.g. *, Haifa).Fallback rates
Growth Plan Scale Plan In the Postcode and City columns, a* on its own turns the rate into a catch-all: it shows at checkout only when no other rate in the same country matches the customer’s address more specifically. This lets you charge one price for specific areas and a different “everywhere else” price — without both rates appearing together.
At checkout, rates fall into three groups:
- Specific rate — has at least one Postcode or City pattern that isn’t a bare
*(e.g.Tel Aviv, or a partial wildcard like10*). It shows when the customer’s address matches its city and postcode rules, and is hidden when it doesn’t. - Catch-all rate — every Postcode and City pattern is exactly
*: City*with Postcode blank, Postcode*with City blank, or both*. It shows only when no specific rate in the same country matches the customer’s address, and is hidden when one does. - No location rule — both Postcode and City are blank. The rate is always shown. It never hides a catch-all, and it is never hidden by specific rates.
- Specific rates never hide each other. If an exact postcode (
1050) and a partial wildcard (10*) both match the customer’s address, both rates show. The only priority is specific over catch-all — there is no further ranking by how specific a pattern is. - Priority applies per country. Catch-alls and specific rates are compared within the same country in a zone. A specific match in one country never hides a catch-all in another country.
Example: higher price for remote cities
Suppose you charge more for delivery to remote cities in Israel, and a standard price everywhere else in the country:
At checkout:
- Customers in Jerusalem, Safed, or Dimona see only Remote Delivery (69.00 ILS). Standard Delivery is a catch-all, so it’s hidden wherever a specific rate matches.
- Customers everywhere else in Israel see only Standard Delivery (35.00 ILS).
*, it would show for everyone — customers in the three remote cities would see both rates and could choose the cheaper one.
Name
A short, friendly name for this shipping rate. This is what your customer sees at checkout. Keep it under 50 characters.Description
A description of what this rate includes. Your customer sees this at checkout. Leave blank if you don’t want to show any description.Price
The shipping price. Like subtotals, you can enter just a number or include a currency code.- Just a number (e.g.,
9.99) — Uses your store’s default currency. - Number + Currency (e.g.,
10.00 USD) — Overrides the default currency for this specific rate.
A price of 0 (or
0.00) means free shipping for orders that match the conditions.CSV Limits and Safety
To ensure your file imports smoothly and securely, keep these technical limits in mind:- Row Limit — Your spreadsheet can have a maximum of 40,000 rows.
- Name & Description — Names must be under 255 characters. Descriptions must be under 2,048 characters.
- Formula Safety — For security reasons, any text in the Name or Description column cannot start with formula characters like
=,+,-, or@. - Weight vs Subtotal — A single row can have either Weight conditions OR Order Subtotal conditions, but not both. If you need both, create two separate rows.
Order Subtotal >= and <=
The minimum and maximum order values to qualify for this rate. You can enter just a number, or a number with a specific currency code.- Just a number (e.g.,
100) — MatrixRates will use your Shopify store’s default currency. - Number + Currency (e.g.,
100.00 USDor50 GBP) — You can specify a three-letter currency code to override the default.
- Order Subtotal >= 0 and Order Subtotal <= 100 = orders from 0 to 100 in your store currency.
- Order Subtotal >= 50 GBP and Order Subtotal <= 200 GBP = orders between £50 and £200.
Prices and subtotals are entered in regular amounts (e.g.,
9.99), not in cents.Weight >= and <=
The minimum and maximum weight to qualify for this rate. You can enter just a number, or a number with a specific unit.- Just a number (e.g.,
10) — MatrixRates will use your Shopify store’s default weight unit. - Number + Unit (e.g.,
10kgor500 g) — You can specify a unit to override the default. Supported units:g,kg,oz,lb.
- Weight >= 0 and Weight <= 5 = up to 5 units (using store default)
- Weight >= 500g and Weight <= 1kg = packages from 500g to 1kg
Transit Time Min Days and Transit Time Max Days
Requires New Shipping Options to be enabled.
- Min = 3, Max = 7 — delivery in 3 to 7 days
- Min = 1, Max = 1 — next-day delivery
- Leave both blank — no delivery window shown
Free Min Order Amount
Requires New Shipping Options to be enabled.
50.00 GBP or 100.00 USD. Leave blank for no threshold.
- Must be greater than zero.
- Currency code must match the currency in the
Pricecolumn for that row. - If used with grouped (tiered) rates, all rows in the group that have a value must use the same amount. Rows with a blank are fine.
Inline example
Here’s what a valid set of shipping rates looks like:Copy raw CSV
- Tiered rate — “Standard Shipping” has two rows with the same name: orders under $50 pay $9.99, orders $50 and above pay $14.99. Both tiers offer free shipping above $75.
- Flat rate — “Express Shipping” is a single rate with no conditions and a transit time of 1–2 days.
- Weight-capped rate — “UK Delivery” applies to packages up to 2 kg, with free shipping above £75.
Download samples
Basic Sample
A standard set of rates that works for all stores and plans.
Growth/Scale Sample
Includes examples for Postcode and City filters (Growth & Scale plans).
Edge cases
A cell is left blank
If a cell in a required column is blank, the import will fail. Required columns are: Zone, Country Code, Name, and Price. What happens: You’ll get an error message telling you which row has the problem. What to do: Fill in the missing value and try importing again.Price is zero
A price of 0 means free shipping for orders that match the conditions. What happens: Customers pay nothing for shipping on those orders. What to do: Use this to offer free shipping over a certain order value or for certain products.Weight = 0
When the minimum weight is 0 (or empty), the rate applies to all packages from the lowest possible weight up to the maximum you set. What happens: The rate applies to your lightest items. What to do: This is normal — leave the minimum at 0 if there’s no lower limit.Consecutive weight ranges
For complete coverage, create consecutive ranges with no gaps between them. Rates with different names — each range can start exactly where the previous one ends:
Grouped (tiered) rates with the same name — when using New Shipping Options, the next tier must start at
prev.max + 0.0001. If tier 1 ends at 5.00 kg, tier 2 must start at 5.0001 kg:
What happens: Each package falls into exactly one range.
What to do: Always use consecutive ranges with no gaps. If you see a contiguity error on import, the error message tells you the exact value the next tier must start at.
Consecutive order subtotal ranges
The same rule applies to subtotal-based ranges, with a gap of 0.01 (one penny or cent) between tiers. Rates with different names — each range can start exactly where the previous one ends:
Grouped (tiered) rates with the same name — when using New Shipping Options, the next tier must start at
prev.max + 0.01. If tier 1 ends at 49.99, tier 2 must start at 50.00:
What happens: Each order falls into exactly one tier.
What to do: Always use consecutive ranges with no gaps. The error message on import tells you the exact value the next tier must start at.
Blank province, postcode, or city
If you leave Province, Postcode, or City blank, the rate applies to the entire country. What happens: The rate is always shown for that country. A blank Postcode or City cell is never hidden by more specific rates — customers in an area covered by a specific rate see both rates. What to do: This is normal if you want the rate offered everywhere. If you instead want a default that steps aside when a more specific rate matches, enter* in the Postcode or City column — see Fallback rates.
Next steps
- Learn how to import your rates into MatrixRates
- Export your current rates to see what you already have
- Check the troubleshooting guide if you run into problems