Skip to main content

Importing Allocation Strategies

How to create allocation strategies in bulk using a file import.

The allocation strategy import lets you create new strategies in bulk by uploading a file — including store assignments and start and end dates. This is useful when migrating an existing allocation setup into Toolio or when strategies are being created outside of Assortment Plan seeding.

Important: The import creates new strategies only. It will not update or overwrite strategies that already exist in Toolio. Any changes after creation must be made in the UI.

File Format

Use this sample import file as a reference for the required columns and format.

The column schema is fixed by Toolio — only the fields listed below are recognized. Any additional columns in the import file are ignored. Customization beyond these fields is handled through allocation defaults, not by extending the file format.

Each row represents a choiceId and (optionally) a store. When multiple rows share the same choiceId, they are grouped into a single strategy:

  • Strategy-level fields are taken from the last row in the group.

  • Each row with a locationId creates a per-location override for that store. Per-location fields are: startDate, endDate, phaseOutDate, safetyStock, orderCycle, and sizeRange.

  • Rows without a locationId contribute only to strategy-level values.

Required Fields

  • choiceId is the only field required by the file format. Without it, the row is rejected.

  • locationId is required on any row that defines a per-location override. A row without locationId only contributes to strategy-level fields.

All other fields are optional. When omitted, Toolio applies the matching allocation default if one exists, or the system-level default for that field.

Supported Fields

Field

Type

Purpose

choiceId

String

The choice being allocated. Required.

locationId

String

A specific store to include in the strategy. Required on rows that define per-location overrides.

locationListName

String

Existing location list to associate with the strategy. Defaults to a system-managed list if omitted.

startDate

Date

Date allocation should begin.

endDate

Date

Date allocation should stop.

phaseOutDate

Date

Date after which no further allocations are made.

demandType

Enum

How demand is calculated. Must match an allowed value.

demand

Number

Demand value (used with certain demandType values).

salesCurve

String

Name of the sales curve to apply.

sizeCurve

String

Name of the size curve to apply.

sizeRange

String

Name of the size range to apply.

safetyStock

Integer

Safety stock level.

orderCycle

Integer

Order cycle in weeks.

holdbackPercentage

Number

Holdback percentage to retain at the source.

pushAll

Boolean

Whether to push all available inventory.

prioritizationMethod

Enum

Method used to prioritize allocation. Must match an allowed value.

locationCurve

String

Name of the location curve to apply.

launchCurve

String

Name of the launch curve to apply.

presentationProfile

String

Name of the presentation profile.

returnProfile

String

Name of the return profile.

rosRank

Enum

ROS rank value. Must match an allowed value.

rosModel

String

ROS model definition (JSON).

isActive

Boolean

Whether the strategy is active. Defaults to false. Set to true to make the strategy eligible for allocation runs immediately.

disableRetrend

Boolean

Whether retrending is disabled at the choice level.

How Store Inclusion Works

Stores listed for a given choiceId are included in the strategy; any store not listed is excluded. There is no need to configure store lists manually after import.

Stores must be members of the associated location list. Including a store that isn't in the location list won't be flagged as an error, but the strategy may not behave as expected.

Location Lists

You can optionally specify a locationListName to associate the strategy with an existing location list in Toolio.

If no locationListName is provided, the system automatically assigns a system-managed default list.

If a locationListName is provided but does not exist in Toolio, the strategy for that choiceId will be skipped and an error will be returned — the import does not create new location lists.

How Allocation Defaults Are Applied

Allocation defaults are merged into each strategy during import, before the strategy is created. For any field not included in the import file, Toolio checks whether a matching allocation default exists and fills in the missing value.

Imported values always take precedence. If a field is present in the import file, the default for that field is ignored — even if a matching allocation default exists.

Fields that can be filled from allocation defaults include: Safety Stock, Order Cycle, Holdback %, Push All, Prioritization Method, Sales Curve, Size Curve, Location Curve, Location List, Presentation Profile, and Return Profile.

Example: Your allocation default sets Safety Stock = 2 and Sales Curve = "Standard Fall". Your import file includes a Safety Stock value of 5 for a choiceId but does not specify a Sales Curve. The resulting strategy will have Safety Stock = 5 (from the import) and Sales Curve = "Standard Fall" (from the default).

For per-location overrides, the same logic applies to Safety Stock and Order Cycle — if a value is provided in the import for a specific store, it is used; otherwise the strategy-level default is inherited.

Errors and Skipped Rows

There are two distinct outcomes when a row or strategy cannot be processed: errors and skips. Both are reported after the import completes.

Errors — Row Rejected, Strategy Not Created

An error is reported when a row contains invalid data. The strategy for that choiceId is not created. Errors fall into two categories:

Schema or format errors are caught before the import is saved. A row is rejected immediately if:

  • choiceId is missing (the only required field)

  • A field has the wrong data type (e.g. a non-date value in startDate, a non-integer in safetyStock)

  • An invalid value is used for an enum field — demandType, prioritizationMethod, or rosRank must match one of the allowed values listed in the sample import file

Reference errors are caught during finalization. A strategy is skipped if any name in the file cannot be resolved to an existing record in Toolio:

  • Store (locationId) not found

  • Location list (locationListName) not found

  • Size curve, sales curve, location curve, launch curve, size range, presentation profile, or return profile name not found

In both cases, the row number and field name are included in the error report so you can correct and re-import.

Skipped — Strategy Already Exists

If a strategy already exists in Toolio for a given choiceId, all rows for that choiceId are skipped. The count of skipped rows is included in the import summary. The import will never overwrite an existing strategy.

FAQs

Can I add my own columns to the import file?

No. The schema is fixed by Toolio, and any columns outside the supported list are ignored. To customize values that aren't in the file, configure allocation defaults — they are merged into the strategy at import time for any field not provided.

Can I update an existing strategy through the import?

No. The import is create-only. If a strategy already exists for a choiceId, it will be skipped. All changes to existing strategies must be made in the UI.

What happens if I don't specify a location list?

The system assigns a system-managed default location list. You can update the location list on the strategy in the UI after import if needed.

What happens if one row in a choiceId group has an invalid reference?

The entire strategy for that choiceId is skipped — no partial strategies are created. Fix the invalid row and re-import to create the strategy.

Did this answer your question?