> For the complete documentation index, see [llms.txt](https://help.dollarlabs.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.dollarlabs.io/dollarlabs-b2b-custom-pricing/getting-started/progressive-case-multiples-and-loose-unit-pricing.md).

# Progressive case multiples & loose unit pricing

Let buyers order full cases plus a few loose units, and charge a different price for each — globally or per volume tier.

A plain [case multiple](/dollarlabs-b2b-custom-pricing/getting-started/volume-tiers-and-case-multiples.md) is strict: multiples of 50 only, and 55 is rejected. That is correct for some products and infuriating for others.

**Loose unit pricing** relaxes it. Buyers still get case pricing on full cases, but they can add leftover units on top, at a price you set separately.

## What the buyer experiences

With a case multiple of 50, a case price of $7.00 and a loose price of $7.20:

| Ordered | Charged                      |
| ------- | ---------------------------- |
| 50      | 50 × $7.00                   |
| 55      | 50 × $7.00, then 5 × $7.20   |
| 100     | 100 × $7.00                  |
| 110     | 100 × $7.00, then 10 × $7.20 |

At checkout the line splits into **two discount lines** — one for the case quantity, one for the loose units. That is expected, and it is why tags have a separate **Loose discount title**: so the second line reads sensibly to the buyer. See [Customer tags & columns](/dollarlabs-b2b-custom-pricing/getting-started/customer-tags-and-columns.md).

## The three loose pricing modes

Set the mode in the cell's settings panel.

### No loose pricing

The strict behaviour. Only exact multiples of the case size are allowed, and anything else is rejected at checkout. The single-unit price field disappears, because there is no such thing.

Choose this when the product genuinely cannot ship broken — sealed pallets, regulated goods.

### Global (same for all tiers)

One loose price applies to every leftover unit, no matter how large the order.

> Case multiple 50, tiers at 50/100/150, loose price $7.20.\
> Order 155 → 150 at the 150-tier price, 5 at $7.20.

Choose this when breaking a case has a fixed handling cost that does not change with order size. It is the simplest option to maintain.

### Per-tier (different per tier)

Each volume tier carries its own loose price, so loose units get cheaper as the order grows.

> * 50+ → $7.00 per case unit, loose at $7.20
> * 100+ → $6.50 per case unit, loose at $7.00
> * 150+ → $6.00 per case unit, loose at $6.80

Choose this when your loose-unit premium should shrink for larger accounts. It is the most faithful to how most distributors actually price, and the most work to maintain.

## Setting it up

1. Open the price list editor and find the variant.
2. Open the cell settings for the tag.
3. Set the **Case multiple**.
4. Choose the **discount mode** — *Specific price*, *Percentage* or *Fixed amount*. See [discount types](/dollarlabs-b2b-custom-pricing/getting-started/discount-types.md).
5. Choose the **loose pricing mode** — *No loose pricing*, *Global (same for all tiers)* or *Per-tier (different per tier)*.
6. Add your **volume tiers**, and a loose price for each tier if you chose per-tier.
7. Save.

{% hint style="info" %}
Tiers above the base tier should be multiples of the case size. A tier at 130 with a case multiple of 50 is unreachable through case quantities alone and will behave confusingly.
{% endhint %}

## In CSV

Loose pricing is encoded in the same cell:

```
1:10;50:7;100:6.5;c:50;l:7.2
```

* `1:10` — $10 each below the first case break
* `50:7` and `100:6.5` — the case tiers
* `c:50` — case multiple of 50
* `l:7.2` — a **global** loose price of $7.20

For per-tier loose prices, use `l:<tier qty>:<price>` once per tier:

```
1:10;50:7;100:6.5;c:50;l:50:7.2;l:100:7
```

Full grammar in [CSV import & export](/dollarlabs-b2b-custom-pricing/price-list/csv-import-and-export.md).

{% hint style="warning" %}
A loose price with no case multiple does nothing. Loose pricing only has meaning as "what to charge for the units that don't fill a case", so `l:` on its own is ignored.
{% endhint %}

## On the storefront

The **Volume Tiers** block shows loose pricing in its own column, labelled by the **Single unit column label** setting (default `Single Unit`). Buyers can then see both prices side by side before they choose a quantity.

The **Validation Message** block still explains the case rule, but with loose pricing enabled it no longer signals an error for off-multiple quantities — those are now legal.

## Why the checkout shows two discounts

Because two different prices apply to two parts of the same line, and Shopify represents that as two discount lines against a split line item. It is normal. Name them clearly with **Discount title** and **Loose discount title** so buyers and your support team can tell them apart.
