Skip to main content

Rate of Sale (ROS) Calculator

Toolio's ROS Model automates demand forecasting in AP and AL while handling anomalies, user adjustments, rankings, and filtering.

Updated this week

Overview

Rate of Sale (ROS) calculations are a key component of demand forecasting in Assortment Planning (AP) as well as in Allocations (AL). In AP, ROS represents the average sales per week per store within a cluster, calculated and maintained at the cluster level. Since AL uses location lists in lieu of clusters, ROS calculations are shown at the total location list level in the allocations module.

Toolio automates ROS calculations via the ROS Model while allowing you to override these values as needed. This article covers:

  • How the ROS Model drives ROS.

  • How Toolio handles anomalies like markdowns and out of stocks in ROS calculations.

  • How you can influence ROS calculations by ranking your choices.

  • How you can manually adjust ROS.

Rate of Sale (ROS) Model

The Rate of Sale Model calculates the rate of Gross Sales Units per week per store, which is then used in forecasting. You can define the timeframe and filters (choices) that the system uses for the calculation.

The ROS Model lets you define the following parameters.

Timeframe

The reference timeframe for the calculation. For example, for seasonal products (e.g., SS26), you might want to refer to SS25 to get the ROS calculation.

Filters

Which products should be included in the ROS calculation.

You can select Self to ensure that each existing choice uses its own historical data for the ROS calculation. If you choose Self, you can simply drag down the ROS model, ensuring that each selection references its own history.

Metrics to Use

Which metric type will be used in the calculations. Toolio recommends using Gross Sales Units.

Exclude Markdown Sales

Whether markdown sales will be included in the calculation. If you are planning full-price sales, we recommend excluding markdown sales.

Markdown sales are defined as any week where Markdown $ are greater than $0.

Here you can see a model that describes how the ROS is calculated.

ROS Product Preview

You can preview exactly which products are included in a Rate of Sale calculation, right from the ROS model dialog — no guesswork needed.

What You Can Do

  • Preview matching products — Access a gallery showing all choices matching your current filters and timeframe.

  • See key metrics at a glance — Product cards display Gross Sales Units, AUR, returns rate, and total allowances for validation.

  • Preview a single row — When viewing ROS for a specific choice, the preview automatically narrows to that product.

  • Jump to Reporting — Open the Assortment Reporting view pre-filtered by the same choices for deeper analysis.

This helps you understand the underlying data by seeing the actual products driving a Rate of Sale value before committing to plans, catch filter mistakes early through product verification, and move seamlessly from ROS review to detailed reporting without re-entering filters.

ROS Attributes

There are two distinct Choice attributes that correspond to ROS.

Calculated ROS

Type: System-generated

This value is calculated at the offering level per cluster in AP, and at the total location level in AL. It represents the average sales per location, per week, based on historical data from one or more choices. While a single average number is displayed in the Calculated ROS attribute, there may be a range of performances across the products and locations used in the ROS Model.

You can click into the Calculated ROS cell to view the calculated ROS distribution and the rankings at the cluster level in AP, and at the total location list level in AL.

Adjusted ROS (AP) & Demand (AL)

Type: User input

You can adjust the Calculated ROS as needed. In AP, when a Calculated ROS exists, the system uses the weighted distribution among the clusters and adjusts the ROS according to your input. If no ROS Model was defined, each offering gets the same value for the defined Adjusted ROS.

You can read more about the full Choice Planning workflow and details around how the ROS values are utilized in conjunction with Sales Curves, Location Curves, and Cluster Groups in the full Choice Planning guide.

In AL, the workflow is very similar. You can select Demand Type = ROS, and manually input a value to the Demand field to set an average productivity for all locations eligible in the Location List definitions.

Good Weeks in ROS Calculations

Toolio automatically filters out "bad weeks" (weeks with insufficient inventory) during ROS calculations. This ensures only "good weeks" contribute to the calculation.

Good Week Definition: Any week where inventory was available to sell (BOP Units + Receipt Units + Transfer Units > 0).

This evaluation takes place at the Location x Week x SKU granularity during ROS calculation.

How Good Weeks Affect the Calculation

For example, say your ROS calculation is configured to include 10 choices and utilizes a 52-week historical timeframe. The system evaluates and excludes any bad weeks at the Location x Week x Choice level. If for a given choice and location combination, 5 weeks in the 52-week timeframe were deemed bad weeks, those weeks are excluded entirely — no sales are considered from those weeks in the numerator, and the total good weeks for that period is reduced to 47 in the denominator.

The ROS calculation for that choice x location would be:

  • (sum of GSU from the good weeks) / (number of good weeks)

  • In this case, (sum of GSU from the 47 good weeks) / 47

When good weeks are not enabled, the calculation would instead be:

  • (sum of GSU from all weeks) / (total number of weeks)

  • In this case, (sum of GSU from all 52 weeks) / 52

This behavior is controlled by the feature flag isGoodWeeksEnabledInRos. If you would like this turned on, please reach out to your Customer Success Manager.

This behavior is universally configured — meaning that good weeks are always considered when enabled, or never considered when disabled.

Handling of Pass-Through Locations

If a location is a "pass-through" location (i.e., it doesn't hold inventory but has sales), by default every week can appear as a "bad week" since inventory will always be 0. Examples include a wholesale virtual location or ecommerce (where the warehouse is somewhere else).

To handle this case, you can set a Source Location (see Location Management) for these locations and set the Lead Time to 0. This tells the system that these selling locations use inventory from the source location. With this setup, Toolio considers any week where the source location has inventory a good week.

Good Weeks Size Threshold & Minimum Inventory

The ROS Configuration section under Settings > Configuration > Intelligence allows you to define the Good Week Size Threshold and Good Weeks Minimum Inventory — two key settings used in Toolio's intelligence module to determine when a product is considered in stock.

Size Threshold defines what percentage of available sizes qualifies a week as "good" for sales performance analysis.

  • Default Value: 0.5 (50%)

  • Value Range: Between 0 and 1

  • e.g., 0.8 = 80% of sizes must be in stock for a week to be considered "good."

  • Example Use Case: If your business considers a product "in stock" when at least 60% of its sizes are available, set the Good Week Size Threshold to 0.6. This adjusts how performance metrics classify stock health in intelligence dashboards and reporting.

Minimum Inventory defines the minimum amount of inventory (by size & location) that should be in stock for the week to qualify as a good week. The input value must be a positive integer; the default is 0.

ROS Distribution

To provide insights into the range of ROS calculations, Toolio presents the ROS distribution across six rankings by cluster/location list:

  • Top: Highest-performing ROS within the cluster/location list.

  • High: 75th percentile of calculated ROS.

  • Median: Middle value of calculated ROS.

  • Low: 25th percentile of calculated ROS.

  • Bottom: Lowest-performing ROS within the cluster/location list.

  • Average: Average ROS across all results, aligning with the prior version of ROS calculations.

You can view this distribution by double-clicking the Calculated ROS cell. A pop-out displays the rankings and weighted ROS, which aligns with the Calculated ROS shown on the line-building screen. By default, Average is selected to match previous calculation methods.

The pop-out view presents the ROS across the rankings by cluster/location list as well as a weighted ROS which aligns with the Calculated ROS number on the line-building screen. Average is selected by default to align with the previous generation of ROS calculation.

Ranking Choices

You can leverage the ROS range to rank products or maintain the default average ROS. Ranking allows you to assign a relative performance expectation to any new choice.

To rank products:

  1. Add the ROS Rank attribute.

  2. Select the rank (e.g., Top, High, Median) based on expected performance.

  3. The Calculated ROS will align with the selected ranking.

Rank to Percentile Mapping

When you select a rank, Toolio maps it to a specific statistical value from the pre-calculated ROS distribution:

Rank

Percentile Value

Top

Maximum (highest ROS in the distribution)

High

75th percentile

Median

50th percentile (middle value)

Average

Arithmetic mean of all ROS values

Low

25th percentile

Bottom

Minimum (lowest ROS in the distribution)

For example, selecting High tells the system to use the 75th percentile value from the ROS distribution — meaning the choice is expected to perform better than 75% of the historical results.

How ROS Ranking Works End-to-End

  1. Calculate percentiles — When you run the ROS Model, the system calculates the ROS for each matching choice and location, then computes the full percentile distribution (min, 25th, 50th, 75th, max, and average) across all results. Percentile values are interpolated between adjacent data points when the percentile position falls between two values.

  2. Store percentiles — The calculated percentile distribution is stored at the offering level per cluster (in AP) or per location list (in AL).

  3. Apply rank — When the system forecasts demand, it looks up the rank you assigned to the choice (e.g., High) and retrieves the corresponding percentile value (e.g., the 75th percentile) from the stored distribution.

  4. Override check — If you have manually entered an Adjusted ROS, that value always takes precedence over the rank-based value. The rank is only used when no manual adjustment exists.

This means that when you select High for a choice, the system picks the 75th percentile value from the pre-calculated percentile distribution of ROS values across all matching choices and locations for that offering.

Video Guide

FAQs

How Does Toolio Handle New Store Openings in the Rate of Sale Calculation?

For new store openings, you can assign a Like for Like store along with a growth factor. Toolio then uses the performance information from that LFL store to estimate its anticipated rate of sale. This helps provide a realistic forecast for the new location, even before it has its own sales history.

How Can I Bulk Update ROS Calculations?

Select multiple choices, right-click, and run Refresh Locations & ROS to bulk refresh the ROS calculations.

Why Isn't My Calculated ROS Updating After I Run Refresh Locations & ROS?

After Refresh Locations & ROS finishes running, the new ROS values don't appear automatically in the grid. You need to pull in the updated data.

  1. Look at the Go button in the top right of the view.

  2. When ROS calculations complete, you'll see a yellow "Data Update" indicator on the Go button.

  3. Click the Go button (or the yellow indicator).

  4. The grid will refresh and show the latest Calculated ROS values.

Did this answer your question?