> ## Documentation Index
> Fetch the complete documentation index at: https://support.fieldko.com/llms.txt
> Use this file to discover all available pages before exploring further.

# On-Shelf Availability and Distribution

> Build reports from core ranging that show on-shelf availability by store, out-of-stock products, and numeric distribution by product.

On-shelf availability (OSA) is the percentage of ranged products found on the shelf. The out-of-stock rate is the rest. Numeric distribution is the percentage of stores where a product is on the shelf. Use this recipe to build these reports from the core ranging that reps record in the FieldKo Atlas app.

Each time a rep saves ranging for a store, FieldKo creates a new **Ranging** record and marks it **Is Current Ranging**, and unmarks the store's previous one. The ranging has one **Ranging Line Item** for every active product in the store's product set, with **Is Present** selected when the rep marked the product as on the shelf. **Product Availability** is a number field that's 1 when the product is present on the store's current ranging, and 0 otherwise. To set up product sets and ranging contracts, see [Core Ranging](/admin/products-ordering-ranging#core-ranging).

## User Permissions Needed

| To do this | You need |
| - | - |
| Create, edit, and save reports | Create and Customize Reports |
| See FieldKo fields and records in reports | FieldKo Manager Permission Set |

## What You'll Build

* **OSA by Store:** The current availability percentage for each store, grouped by rep.
* **Out-of-Stock List:** The products missing from each store's shelf at the last visit, for follow-up.
* **Numeric Distribution by Product:** For each product, the percentage of ranged stores where it's on the shelf.

## Report 1: OSA by Store

### Report Type

**Accounts with or without Ranging**

### Filters

| Filter | Value |
| - | - |
| Show Me | **My team's accounts**, or **All accounts** |
| **Is Current Ranging** | equals **True** |

### Group By

1. **Account Owner**
2. **Account Name**

### Columns and Summary Formulas

Add the product name, **Is Present**, **Quantity**, and **Product Availability**. Then:

1. On the **Product Availability** column, click the arrow, click **Summarize**, and then select **Sum** and **Average**. The sum is the number of products on the shelf.
2. To show OSA as a percentage, add a summary formula. Click the arrow next to **Columns**, and then click **Add Summary Formula**.
3. Name it `OSA`, set **Formatting** to **Percent**, and in the formula, insert **Product Availability** and select **Average**.
4. Click **Apply**.

The record count in each group is the number of products checked. An average of 0.92 shows as 92%.

### Chart Suggestion

A horizontal bar chart of **OSA** by **Account Name**, sorted from lowest to highest. Your lowest-OSA stores are the first ones to visit.

## Report 2: Out-of-Stock List

Use the same report type and filters as Report 1, and add **Is Present** equals **False**.

* **Group By:** **Account Owner**, and then **Account Name**.
* **Columns:** The product name, product category, and the account's **Last Check-Out**.
* **Chart suggestion:** None. Use this report as a working list, or subscribe reps to it so they get their own stores' gaps. See [Share, Schedule, and Subscribe to Reports](/managers/platform/share-and-schedule).

The out-of-stock rate for any group is its record count in this report divided by its record count in Report 1, or 100% minus its OSA.

## Report 3: Numeric Distribution by Product

### Report Type

**Accounts with or without Ranging**

### Filters

| Filter | Value |
| - | - |
| **Is Current Ranging** | equals **True** |

### Group By

1. The product category
2. The product name

### Columns and Summary Formulas

Add **Account Name** and **Product Availability**. Add the same **OSA** summary formula as in Report 1, and rename it `Distribution`. For each product, the record count is the number of stores that range it, and **Distribution** is the percentage of those stores where it's on the shelf.

### Chart Suggestion

A bar chart of **Distribution** by product name. Add a dashboard filter on product category.

## Variations

* **Core range only:** Use the **Rangings With Or Without RangingLineItems** report type, which also includes **Ranging Type**, and add the filter **Ranging Type** equals **CORE**.
* **OSA by rep who recorded it:** In **Rangings With Or Without RangingLineItems**, group by **Created By** instead of the account owner.
* **OSA over time:** **Product Availability** counts only current rangings, so for history use **Rangings With Or Without RangingLineItems**. Don't filter on **Is Current Ranging**. Group by **Created Date** by week, and add a row-level formula `IF( Is Present, 100, 0 )` summarized with **Average**. See [Trend Reports Over Time](/managers/platform/trends).
* **Stores with no ranging:** In **Accounts with or without Ranging**, add a cross filter: **Accounts without Rangings**.
* **Facings or stock counts:** If your company uses the ranging quantity columns for facings or units, group by product and summarize **Quantity** with **Sum** or **Average**. What **Quantity** counts depends on how your admin set up the ranging screen; extra columns such as **Quantity1** must be added to the report type by your admin.

## Tips

* FieldKo has no separate out-of-stock or facings field. Out of stock means a product in the store's product set that the rep didn't mark present.
* The denominator is the store's product set. If product sets differ by store, OSA compares each store with its own range. Keep product sets current, or OSA drops when discontinued products stay in the set.
* When an account changes owner, FieldKo shares its current ranging with the new owner, so the store moves to the new rep's group.
* Ranging that reps record offline appears after they sync.

## See Also

* [Retail Execution Metrics](/managers/platform/retail-metrics)
* [Share of Shelf and Planogram Compliance](/managers/platform/recipes/share-of-shelf)
* [Set Up Products, Ordering, and Ranging](/admin/products-ordering-ranging)
* [Record Core Ranging](/field-work/core-ranging)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.