With storage space costs (*Lagerplatzkosten*) you charge a client for the storage places (or running metres, or the stock quantity in pieces, e.g. rent per bottle) their goods occupy – per day, week, month or year. You can use tiered prices (e.g. places 1–50 at price A, from place 51 at price B), bill the highest stock level of the period, and grant rent-free days per pallet.

![Screenshot: Storage space cost templates list with client filter, columns Client, Period, Costs and Active](/billing/images/storage-space-costs-overview.png)

## Before you start
- Your user needs the permissions for the storage space costs in the cost settings – ask your administrator.
- The client exists and is active, see [Clients](/company/clients.md).
- The client's articles are assigned to the client as owner, see [Owner and sharing](/products/owner-and-sharing.md), and their stock is put away on storage places, see [Putaway](/inbound/putaway.md).
- The **daily occupancy snapshot** is running for your warehouse (see below). Without snapshots the quantity is 0.
- For billing by running metres: the widths of your storage places (or compartments) are maintained, see [Storage places](/warehouse-setup/storage-places.md).
- Recommended: [Service categories](/billing/service-categories.md) are set up.

## The daily occupancy snapshot
Once a day (shortly before midnight), X-Sitter records for every client and warehouse how many storage places the client occupies, how wide these places are and how long each pallet has been in stock. Storage space costs are calculated exclusively from these daily snapshots.

- The snapshot is a background job (*WMS - Paletten Snapshot*). If it is offered for your company, you can set it up under [Jobs & connections](/administration/jobs-and-connections.md) and choose the warehouses there (without a selection the default warehouse is used). Otherwise contact X-Sitter support to activate it.
- There is exactly one snapshot per client, warehouse and day.
- Later corrections to the stock do not change snapshots of past days. If days are missing (e.g. because the job was not active yet), contact X-Sitter support to recalculate them.

## Step by step
1. Open **WMS › Settings › Cost settings › Storage space costs** (*WMS › Einstellungen › Kosteneinstellungen › Lagerplatzkosten*).
2. Click **Create template** (*Vorlage anlegen*).
3. Fill in **Client** (*Mandant*), **Name** (*Name*), **Billing Category** (*Abrechnungs-Kategorie*) and **Costs** (*Kosten*).
4. Choose the **Billing Type** (*Abrechnungs-Typ*): **Flat rate** (*Pauschal*) or **Per unit** (*Pro Einheit*). Optional: switch on **Billing by the meter** (*Abrechnung nach laufenden Metern*) and, if needed, the breakdown by compartments (*Auf Fächer herunterbrechen*) – or **Billing by piece count** (*Abrechnung nach Stückzahl*) to bill per piece (e.g. per bottle) instead of per place. The two options exclude each other.
5. Choose the **Settlement period** (*Abrechungszeitraum*): **Daily** (*Täglich*), **Weekly** (*Wöchentlich*), **Monthly** (*Monatlich*) or **Annual** (*Jährlich*). For weekly billing you can switch on **Billing from Sunday to Sunday** (*Abrechnung von Sonntag bis Sonntag*).

![Screenshot: Storage space cost template form, upper part with Client, Name, Billing Category, Costs, Billing Type and Settlement period](/billing/images/storage-space-costs-form-basics.png)

6. Enter the **Quantity** (*Anzahl*) for flat rates ("0 for all available items") and, for tiered prices, **Define the cost range** (*Kosten-Bereich definieren*) with the lower and upper limit of places and an operator ("equal", "more", "less"). Leaving the fields empty means "all".
7. Optional: switch on **Highest pallet count for the selected period** (*Höchster Paletten-Stand für gewählten Zeitraum*) and enter **Rent-free days per pallet** (*Mietfreie Tage je Palette*).
8. Choose the **Itemized statement on the invoice** (*Detail-Darstellung auf Rechnung*), optionally set a [validity period](/billing/validity-period.md), tick **Active** (*Aktiv*) and click **Save** (*Speichern*).

![Screenshot: Lower part of the form with Quantity, cost range (from/to places with operator), Highest pallet count, Rent-free days per pallet and Active](/billing/images/storage-space-costs-form-range.png)

## Fields and options
| Field | Meaning | Required |
|---|---|---|
| **Client** (*Mandant*) | The client you are billing. | yes |
| **Name** (*Name*) | Name of the item on the statement. | yes |
| **Billing Category** (*Abrechnungs-Kategorie*) | Groups the item on the statement, see [Service categories](/billing/service-categories.md). | no |
| **Costs** (*Kosten*) | Price per place (or metre) per period. | yes |
| **Billing Type** (*Abrechnungs-Typ*) | **Flat rate**: fixed **Quantity** × periods × price (quantity 0 = actual quantity). **Per unit**: actual quantity × price. | yes |
| **Billing by the meter** (*Abrechnung nach laufenden Metern*) | The quantity is the sum of the widths of the occupied places in metres instead of the number of places. | no |
| **Billing by piece count** (*Abrechnung nach Stückzahl (Bestandsmenge, z. B. je Flasche)*) | The quantity is the client's stock quantity in pieces according to the daily snapshot instead of the number of places. Tier limits, highest level and rent-free days then apply per piece. | no |
| Break down by compartments (*Auf Fächer herunterbrechen*) | Running metres are calculated from the widths of the occupied compartments instead of the whole place. | no |
| **Settlement period** (*Abrechungszeitraum*) | Daily, weekly, monthly or annual. | yes |
| **Quantity** (*Anzahl*) | Minimum or flat quantity per period. "0 for all available items". | no |
| From / up to how many places (*Ab wievielen Plätzen* / *Bis wie viele Plätze*) | Limits of a price tier. "more than X" starts at X+1, "less than Y" ends at Y−1. Empty = all. | no |
| **Billing from Sunday to Sunday** (*Abrechnung von Sonntag bis Sonntag*) | Weeks start on Sunday instead of Monday. | no |
| **Highest pallet count for the selected period** (*Höchster Paletten-Stand für gewählten Zeitraum*) | For each period, the highest daily value is billed. | no |
| **Rent-free days per pallet** (*Mietfreie Tage je Palette*) | Pallets that have been in stock for fewer days than this do not count on that day. Example 7: the first week is rent-free, billing starts on the 8th day in stock. Empty = billing from day one. | no |
| **Itemized statement on the invoice** (*Detail-Darstellung auf Rechnung*) | **No details** (*Keine Details*), **As subheadings** (*Als Unterpunkte*) or **Detailed breakdown in the appendix** (*Einzelnachweis auf Anlage*). | no |
| **Active** (*Aktiv*) | Only active templates are charged. | – |

## How the quantity is calculated
- **Daily:** the quantity of each day comes from that day's snapshot.
- **Weekly, monthly, annual** or with **Highest pallet count**: for each (partial) period the highest daily value is billed – with billing by piece count, the day with the most pieces. The statement shows e.g. "Highest level … (highest level on …)", "Monthly flat rate" or "n weeks (Sun–Sun)".
- **Rent-free days** are deducted from each day first; with the highest count, the highest of the reduced daily values is taken. Rent-free days work for all snapshots recorded since the feature exists – older snapshots do not know the pallet age and are billed in full.

![Screenshot: Client statement with a storage space item "Highest level" and the detailed breakdown per month in the appendix](/billing/images/storage-space-costs-statement.png)

## Example: tiered prices
To charge places 1–50 at 10.00 € and every further place at 8.00 € per month:
1. Create a template with **Monthly**, **Per unit**, costs 10.00, range "from 1 / up to 50".
2. Click **Duplicate** (*Duplizieren*) in the list, change the copy to costs 8.00 and range "more than 50", leave the upper limit empty, tick **Active** and save.

Both templates must use the same period and settings and differ only in the range.

![Screenshot: Template list with two storage space templates for the same client showing the ranges 1–50 and more than 50](/billing/images/storage-space-costs-tiers.png)

## Example: rent per bottle instead of per storage place
You agreed with a client that they pay per bottle in stock, not per pallet place. For this you use the stock quantity in pieces as the basis instead of the occupied places:

1. Open **WMS › Settings › Cost settings › Storage space costs** (*Lagerplatzkosten*) and click **Create template** (*Vorlage anlegen*).
2. Choose the **Client**, enter a **Name** such as "Storage rent per bottle" and enter the price per bottle under **Costs** (e.g. €0.02 per bottle and day, or €0.30 per bottle and month).
3. Choose **Per unit** (*Pro Einheit*) as the **Billing Type** and tick **Billing by piece count (stock quantity, e.g. per bottle)** (*Abrechnung nach Stückzahl*). The tick at **Billing by the meter** is removed automatically – the two cannot be combined.
4. Choose the **Billing period**: **Daily** bills the piece count of every day, **Monthly** (ideally together with **Highest pallet count for the selected period**) bills the day with the most bottles once per month.
5. Leave the **cost range** empty so that all bottles are billed the same. Tiered prices (e.g. cheaper from the 10,001st bottle) work like for places, with several templates and ranges – the limits then apply per bottle.
6. Optional: **Rent-free days per pallet** – with piece count, bottles that have not been in stock for that many days do not count on that day.
7. Tick **Active** and click **Save**.

![Screenshot: Billing type "Per unit" with the ticked option "Billing by piece count (stock quantity, e.g. per bottle)" and the help text below it](/billing/images/storage-space-costs-form-units.png)

The piece count comes from the daily occupancy snapshot: X-Sitter adds up the stock quantities of all the client's articles in the warehouse (every bottle of a stock row counts individually, no matter how many pallets or places they occupy). The piece count is recorded from the first snapshot after this feature was introduced – billing therefore starts on the day after you set it up, not retroactively. On the client statement the item shows the number of pieces, and with the highest level also the date of the peak.

## Good to know / Troubleshooting
| Message | Cause | Solution |
|---|---|---|
| The entry has been saved / The entry has been updated | The template was saved. | – |
| No storage space costs on the statement | No snapshots in the billing period (job not active), the articles are not assigned to the client, or the template is inactive or outside its validity period. | Check the snapshot job, the article owner and the template. Contact X-Sitter support to recalculate missing days. |
| Running metres are 0 | No widths are maintained on the storage places or compartments. | Maintain the widths in [Storage places](/warehouse-setup/storage-places.md). |
| Piece count is 0 | The snapshots of the period were taken before billing by piece count was introduced and do not contain a piece count yet. | Contact X-Sitter support to have the days recalculated. |
