Skip to main content

Importing Variant Location Plan Metrics into Assortment Plan

How Toolio imports SKU x Location level plan metrics and rolls them up into your Assortment Plan.

The Variant Location Plan Metrics import lets you bring SKU × Location × Date level plan data into Toolio — for example, units, retail, or any custom metric you plan outside of Toolio. Once the file is uploaded, Toolio automatically rolls those numbers up to the choice and cluster level so they appear in your New Assortment Plan (NAP) without any extra setup. This article walks through exactly how that roll-up works and what to check before you import.

Use Cases

  • You plan at the SKU × store × week level in another system and want those numbers visible in Toolio's New Assortment Plan.

  • You want the plan from your Allocation tools to flow into your Assortment Plan automatically as a starting point.

  • You need a fast way to seed an Assortment Plan with externally-built numbers instead of building them from scratch in Toolio.

What You Upload

Each row in the import file represents the plan metrics for one SKU at one location on one date. The required columns are:

Column

Description

VariantId

The external ID of the SKU. Must match a variant that already exists in Toolio.

LocationId

The external ID of the location. Must match a location that already exists in Toolio.

date

The date these metrics apply to.

metrics

One or more metric columns (e.g. Plan Units, Plan Retail). Any metric column you've configured for this importer is supported.

A small example file might look like this:

VariantId

LocationId

date

Plan Units

Plan Retail

SKU-A-S

STORE-01

2026-02-01

5

250

SKU-A-S

STORE-02

2026-02-01

3

150

SKU-A-M

STORE-01

2026-02-01

4

200

SKU-A-M

STORE-02

2026-02-01

2

100

Toolio stores each row in the Variant Location Plan Metrics Import table. If you re-import a row with the same VariantId, LocationId, and date, the metrics are overwritten with your latest values.

How Toolio Aggregates Your Data

This is the part most people want to understand. Your file is at the SKU × location × date level, but the New Assortment Plan is at the choice × cluster × date level. Toolio bridges the two with a three-step roll-up that runs automatically right after your import finishes: it groups SKUs up to their choice, maps locations to clusters via your default Automated Cluster Group, then combines the two to build the Choice × Cluster rows that surface in New Assortment Plan.

Step 1: Group SKUs Up to Their Choice

Every SKU (variant) in Toolio belongs to a Choice (its style/color). Toolio looks at the choiceId already configured on each variant in your file and groups the SKUs accordingly.

Continuing the example above, suppose SKU-A-S and SKU-A-M are both sizes of the same choice CHOICE-A. After this step, the data looks like:

Choice

Location

Date

Plan Units

Plan Retail

CHOICE-A

STORE-01

2026-02-01

9 (5 + 4)

450 (250 + 200)

CHOICE-A

STORE-02

2026-02-01

5 (3 + 2)

250 (150 + 100)

Step 2: Map Each Location to a Cluster

Toolio uses your default Automated Cluster Group (ACG) to translate each location into the cluster it belongs to. The default group is the one flagged as the default on your account — Toolio picks it automatically and applies it across the entire import. Only one cluster group is used per import.

Within that group, only cluster assignments that meet both of these conditions are picked up:

  • The assignment is marked Adjusted — the saved/applied version of your clusters, not a draft or proposed state.

  • The location is flagged included in the cluster (i.e. not opted out).

If a location doesn't have a matching, included, Adjusted assignment in the default group, its rows are skipped. The unmatched location IDs are listed in the sync log so you can fix the cluster mapping and re-import.

For each location that does map, Toolio attaches three things to the row:

  • The specific Automated Cluster the location belongs to (e.g. CLUSTER-NORTH)

  • The cluster's Assortment Group (if one is configured on the cluster)

  • The cluster's Inventory Group (used for the size-level roll-up below)

Continuing the example, suppose your default cluster group puts STORE-01 in CLUSTER-NORTH and STORE-02 in CLUSTER-SOUTH. After Step 2, every row in your data carries its cluster information alongside the choice and metrics.

Step 3: Roll Up to Choice × Cluster

Now Toolio combines the choice (from Step 1) and the cluster info (from Step 2) to build the rows that actually surface in New Assortment Plan.

A Choice in New Assortment Plan is uniquely identified by three things together:

  • The parent Actual Choice

  • The Automated Cluster Group it was rolled up against

  • The cluster's Assortment Group (if one is set, otherwise blank)

The cluster group itself is part of the choice's identity: rolling the same Actual Choice up against a different cluster group would produce a separate Choice row in NAP. In practice you only have one default cluster group, but this is why every Choice is tied to a specific cluster configuration.

A Choice Offering then narrows a Choice down to one cluster within that group — it's the plan for that choice in that cluster, over time.

Bringing the example together, your file becomes these rows in New Assortment Plan:

Choice (Actual Choice + ACG + Assortment Group)

Choice Offering (Choice + Cluster)

Date

Plan Units

Plan Retail

CHOICE-A

CHOICE-A × CLUSTER-NORTH

2026-02-01

9

450

CHOICE-A

CHOICE-A × CLUSTER-SOUTH

2026-02-01

5

250

These are written as Choice Offering Scenario Metrics under the plan scenario — the same scenario that powers the Plan columns in New Assortment Plan. If multiple locations land in the same cluster (e.g. both STORE-01 and STORE-05 are in CLUSTER-NORTH), their numbers are summed together at this step.

Size-Level Metrics

In parallel with Step 2, Toolio also writes the data at the Choice × Size × Date level. Each variant's size value is matched to a size option, and metrics are summed up for every (choice, size, date) combination. This is what lets the size breakdown views in New Assortment Plan reflect your imported plan without any further action.

How Toolio Handles Existing vs. New Choices

For every (Actual Choice + Automated Cluster Group + Assortment Group) triple Toolio derives from your import, it checks whether a matching Choice already exists in New Assortment Plan. The behavior is distinctly different in each case.

When a Matching Choice Already Exists

If a Choice already exists in New Assortment Plan with that exact triple, Toolio reuses it without modification:

  • The existing Choice row is kept as-is — none of its attributes are overwritten by the import.

  • For each (Choice, Cluster) pair in your import, an existing Choice Offering is also reused if one is already there. The offering's Launch Date and End Date are not changed by the import.

  • The plan scenario metrics on the offering are overwritten for each (offering, date) that appears in your import. Dates not present in your file are left untouched.

  • Size-level behavior matches: existing Choice Size rows are reused, and plan scenario metrics for the imported dates are overwritten.

In short, re-importing into an existing Choice is a metric-only update.

Worked example.

Suppose CHOICE-A × CLUSTER-NORTH already exists with Plan Units = 9 on 2026-02-01. You re-import Plan Units = 12 for 2026-02-01:

  • The existing Choice and Choice Offering are reused — launch and end dates aren't changed.

  • Plan Units on 2026-02-01 becomes 12 (overwritten).

When No Matching Choice Exists

If no Choice exists for that triple, Toolio creates the full structure from scratch:

  • A new Choice is created with Status set to Actual Choice Assigned and Choice Status set to SKU Location Sync (so you can identify import-created choices later).

  • Any attributes on the parent Actual Choice flagged with Copy from Past are copied forward onto the new Choice.

  • For each (Choice, Cluster) pair, a new Choice Offering is created. Its Launch Date is the earliest date in your import for that pair, and its End Date is the latest.

  • New Choice Size rows are created for every (choice, size) pair found in your data.

  • plan scenario metrics are written for every imported date, at both the offering and size levels.

Worked example.

Same CHOICE-A × CLUSTER-NORTH, but this is the first time it's been imported. Your file has rows on 2026-02-01, 2026-02-08, and 2026-02-15:

  • A new Choice is created with copied attributes from the parent Actual Choice.

  • A new Choice Offering is created with Launch Date = 2026-02-01 and End Date = 2026-02-15.

  • Three plan scenario metric rows are written, one per date.

Required Setup Before Importing

The sync depends on several pieces of master data being in place. If any of these are missing, the affected rows are skipped silently and only logged.

  • Variants must have a choiceId — this is the link between the SKU and its style/color. SKUs without a choiceId are dropped.

  • The choiceId must match an Actual Choice in Toolio — if no matching Actual Choice exists, the SKU's data is dropped.

  • A default Automated Cluster Group must be configured with the locations you're importing for. Toolio uses the cluster group flagged as the default on your account.

  • Locations must be assigned to a cluster in that default group, with Adjusted cluster type and the location flagged as included.

  • (Optional) An Assortment Group can be associated with each cluster — if present, it becomes part of the choice's identity, so the same Actual Choice could produce different Choices for different Assortment Groups.

When the Sync Runs

The sync is fully automatic. The lifecycle is:

  1. You upload the CSV via Settings > Imports using the Variant Location Plan Metrics Import model.

  2. Rows are parsed, validated, and written to the import staging table.

  3. As soon as the import finishes, Toolio queues an async task to run the Allocation → Assortment Plan sync.

  4. The async task runs in the background and processes your data in batches of choices. You can track its progress in the Task Manager.

  5. Once it completes, the new metrics are visible in New Assortment Plan under the plan scenario.

You don't need to trigger the sync manually — uploading the file is enough.

FAQs

What scenario do these numbers populate?

The plan scenario. They appear wherever New Assortment Plan views surface Plan metrics for a Choice Offering or Choice Size.

What happens if a SKU's variant has no choiceId?

The row is skipped. Toolio logs how many rows were dropped for this reason in the sync log. To fix this, make sure your Product/Variant feed sets choiceId on every SKU that should be planned.

What happens if a location isn't in the default cluster group?

Rows for that location are skipped. The sync log lists the unmatched location IDs so you can update your cluster mappings and re-run.

How are launch and end dates set on the Choice Offering?

For brand-new offerings created by the import, the launch date is the earliest date in your file for that (choice, cluster) and the end date is the latest. For offerings that already exist, neither date is changed — the import only updates metrics.

Can I re-import to update numbers?

Yes. Re-importing a row with the same VariantId, LocationId, and date overwrites that row's metrics. The roll-up to choice and cluster level then re-aggregates from the latest imported values, so the numbers in New Assortment Plan reflect your most recent file.

Are existing Choice records in New Assortment Plan overwritten?

No. If a Choice already exists for the (Actual Choice, Automated Cluster Group, Assortment Group) combination in your data, Toolio reuses it. Only brand-new combinations result in new Choices being created.

Why don't I see size-level metrics for some SKUs?

Size metrics require the variant's size attribute to map to a known size option in Toolio. If a variant's size value doesn't match any option, that variant's data still flows into the choice and cluster totals, but isn't counted at the size level.

How do I know the sync ran successfully?

Check the import status under Settings > Imports. The sync's async task will appear in the Task Manager once the import finishes, and the log captures totals for processed rows, created offerings, created offering metrics, and created size metrics — along with any skipped variants or locations.

Related Articles

Did this answer your question?