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

I tried importing my plan through the Product & Variant model and it failed. Which import should I use?

Plan metrics don't belong in the Product & Variant import — that model is for item attribution (the attributes that describe each SKU and variant), not plan values. If you upload plan data such as Plan Units or Plan Retail through it, the import can error out or the numbers simply won't reach your plan.

To bring SKU × location plan data into New Assortment Plan, use the Variant Location Plan Metrics Import model described above. Select it under Settings > Imports, then upload a file with one row per SKU × location × date. As a rule of thumb: use Product & Variant for what an item is, and Variant Location Plan Metrics for what you plan to sell or receive.

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.

Why don't my imported values show up in the grid right after the import finishes?

The roll-up into each choice's plan metrics doesn't happen the instant your file finishes uploading. Your rows first land in the import staging table, and then Toolio queues a background (async) task that reads those rows and rolls them up into the Choice × Cluster plan metrics. The new numbers appear once that task finishes — there is no fixed hourly or on-the-hour schedule; the task runs as soon as it's picked up and processed, which is usually within a few minutes (longer for very large imports).

You can watch the task in the Task Manager (Settings > Imports). While it's still running, the grid won't show the new values yet; once it completes, refresh New Assortment Plan and they'll be there. If the task has finished but values still look missing, reach out to Customer Support.

Do I need to split my file so each choice only gets the dates it owns?

No. You provide one row per SKU × location × date for your full date range, and Toolio splits the data automatically: each row is grouped to a choice by its SKU's choiceId and to a cluster via your default Automated Cluster Group. For a brand-new offering, the Launch Date and End Date are derived from the earliest and latest dates you imported for that choice and cluster; existing offerings keep their dates and just have their metrics updated. You don't need to create a separate import file per choice or trim each file to a choice's date range.

Related Articles

Did this answer your question?