Performance: How to calculate the size of an assortment or rollup

Background

With the introduction of Deliveries, Doors, and Sizes as “dimensions”, the amount of data stored in each product row within an assortment has increased substantially. Whereas previously each row contained only the product data and units per door-column, now each row also contains units per each size, per each door, per each delivery. As a result, the size of assortments are getting larger and larger and require more and more memory.

Goals

While we are working towards long-term solutions to ensure large assortments do not cause any negative user experiences such as freezing, crashing, lagging, or other performance-based issues, it is important in the meantime to understand our current capacity. This will allow us to train and encourage users to utilize assortments in a way that is low-risk from a performance standpoint and will help us better understand whether support issues that arise may be a result of assortment size and performance or something else.

Machine specs to optimize performance

In addition to the below data calculations, users should also consider the specifications of the device they are using which will also impact performance. With lower machine specs, users can still utilize the assortment tool but can expect to have sub-optimal performance in larger assortments.

Our recommended laptop specs are:

  • Processor: i5 @ 1.60GHz (4 cores)
  • Ram: 16gb

Note: When using a laptop and external monitors, work with your IT team to make sure your laptop supports the size, resolution, and refresh rate of your monitors. If you're still experiencing performance issues, disconnect your external displays.

Calculating assortment size

To calculate the size of an assortment, multiply the number of product rows and the values across all dimensions. The product of this multiplication formula is the total assortment size. 

# of Product Rows * # of Deliveries * # of Doors * # of Sizes = Assortment Size

The assortment size that we can confidently support without impacting performance is 250,000. Assortments above this size will require special handling and further investigation.

This calculation applies to rollups as well, where the calculation will take into account the total product rows and dimension values across all included assortments.

Note: Dimensions only contribute to the assortment or rollup size if they contain data (units), so an empty door or delivery can be excluded from the calculation.

In addition to this calculation, our guidance to users should be to limit the number of products within each assortment to 2,500, regardless of dimensions, and the number of product rows within a rollup to 10,000. This is the result of the limit to process a single request in one server call.

Other factors that may impact performance include the user’s machine (including processor and RAM), internet connection, and other programs running simultaneously (like zoom screenshare or heavy excel documents).

Some examples of calculations for each assortment client:

  • A Nordstrom assortment has 2,000 product rows and uses zero dimensions.
    • 2,000 * N/A * N/A * N/A = 2,000
  • A Nordstrom Designer assortment has 2,000 product rows and 100 doors.
    • 2,000 * N/A * 100 * N/A = 200,000
  • A Bloomingdales assortment has 235 product rows, 3 deliveries, 32 doors, and 5 sizes.
    • 235 * 3 * 32 * 5 = 112,800
  • A Bloomingdales assortment has 235 product rows, 3 deliveries, 32 doors, and 5 sizes, however only 25 doors have units while the other 7 doors are empty.
    • 235 * 3 * 25 * 5 = 88,125
  • A Saks assortment has 300 product rows, 1 delivery, 41 doors, and 10 sizes.
    • 300 * 1 * 41 * 10 = 123,000
  • A Brunello Cuccinelli assortment has 1,200 product rows, 10 doors, and 10 sizes.
    • 1,200 * N/A * 10 * 10 = 120,000

Estimated assortment limits per merchant

Updated Jan 2022: We requested a “typical” assortment from each retail merchant partner. Based on those samples, these are the capacity numbers (row limits) for the average assortment:

  • Bloomingdales

    • 3 deliveries, 40 doors, 5 sizes each → 1500 rows

    • 1 delivery, 20 doors, 5 sizes each → 5000 rows

  • Nordstrom

    • 10k rows

  • Nordstrom Designer

    • All (100) doors → 5k rows

  • Nordstrom 2.0

    • 3 deliveries, 6 doors, 5 sizes each → 5k rows

  • Saks

    • 3 deliveries, 50 doors, 5 sizes each → 1000 rows

    • 1 delivery, 35 doors, 5 sizes each → 3500 rows

Was this article helpful?
0 out of 0 found this helpful