Skip to content

Data Requirements

Ready to get started integrating your data into Curate? Check out data typing and schemas below.

Data types classify the format of data within a field in the schema that is shared below. If you’re not familiar with data-typing, here’s a quick crash course!

These types are used to ensure the data intake has a predictable format for the service. This allows us to not only validate data faster, but ensure we eliminate errors BEFORE they impact your experience within the system. For example, an “Integer” represents a whole number vs a “Double” which represents all numbers both whole and fractional. Using 42 as an example, as an Integer will never include a decimal, 42 is a valid value. A Double requires 42 to be written as 42.0.

You may be wondering, why does this matter? Well! Imagine you are expecting to do some basic maths from the file you’re creating, and you’ve got two product with two different revenue values:

NameRevenue
Product 1$36.12
Product 2$12.99

Simple right? $49.11 Now imagine if Product 2’s value was TWELVE, what happens in software is that if you add a string to an anything you get concatenation, so the result becomes 36.12TWELVE

Another common example where this can impact your data, is if we didn’t enforce a double type and this was read as an integer you now have a problem: do you round Product 2 to 12 or 13? Do you drop the decimal value entirely and leave it as 12? This seems like a small change, but across large data sets this will change the results of KPIs dramatically. Losing $.99 on every transaction on every product over time would mean A LOT of missing revenue.

A string is any data contained within a set of quotation marks (” ”). Strings are often used for words or sentences where the value must be saved exactly as the user inputs it (including punctuation!). Strings can include every other type of data, but they wont be used as that data type (see the example above of concatination) so they are used for organizing data not calculating results.

  • "HIVERYMART" is your typical valid string.
  • "3.14", "3", and even " !" or "🐝" are valid strings, they just can’t be used for maths.
  • HIVERYMART is NOT a valid string, it’s missing it’s quotation marks.

An “Integer” is a simple way to represent whole numbers (positive or negative), meaning numbers without any decimal or fractional parts. For example: -2, -1, 0, 1, 2 are all integers whereas 3.14 is not. Integer data types are used when you want to explicitly reject fractional numbers or not be slowed down by calculating them.

  • 1 or -1 are valid integers.
  • 0 is a valid integer, though it represents nothing.
  • 3.14 is NOT a valid integer, it’s a double.

A “Double” is a more accurate way to represent numbers whole OR fractional using decimal points. This means all integers are valid doubles, but no doubles are valid integers. It’s called “double” because it can hold numbers with “double the precision” compared to other numerical data types.

  • 3.14, -3.14 are valid doubles.
  • 3 is a valid double (representing 3.0) AND a valid integer
  • TWELVE is NOT a valid double, it’s a string

Below you’ll find each file explained so you know just what to do when integrating your data!

A list of all products along with their corresponding UPCs, regardless of their current assortment status. This list should encompass details such as category, subcategory, brand, sub-brand, manufacturer, pack group, and all relevant product dimensions.

FieldDescriptionExampleDefault
upcInteger used as a unique product identifier. UPCs should be aligned in each input file, including check digits.036000241457N/A - Required Field
idString used as a unique product identifier is used to isolate items from a UPC, If you don’t have a specific usecase for this you may ignore it.”123”UPC Value
nameString providing a product name. Must be less than 70 charactersCLIF BLDRS MINT 6PKN/A - Required Field
categoryString used to define the product category. Must be less than 70 charactersEnergy BarDefaults to ‘Unknown’
subcategoryString used to define the product’s sub-category. Must be less than 70 charactersWhey-BasedDefaults to ‘Unknown’
subsubcategoryString used to further define the product’s sub-category attributes. Must be less than 70 charactersLow-SugarDefaults to ‘Unknown’
brandString used to define the product brand. Must be less than 70 charactersCLIFDefaults to ‘Unknown’
subbrandString used to used to define the product’s sub-brand. Must be less than 70 charactersCLIF BUILDERSDefaults to ‘Unknown’
manufacturerString used to define the manufacturer of the product. Must be less than 70 charactersCLIF BAR & COMPANYN/A - Required Field
packgroupString used to define the type of packaging and/or count of the item.12OZ 6PK BOXDefaults to ‘Unknown’
sizeDouble used to specify the item’s weight or volume.12Defaults to ‘1.0’
uomString used to define the unit of measurement associated with the size column.OZDefaults to ‘UNK’
case_sizeInteger used to define the number of items in a case.5Defaults to ‘1’
usable_lifeInteger used to define the item’s shelf life, in days.999Defaults to ‘999’
heightDouble used to define the height of the product, in inches.8.25Defaults to ‘1.0111’
widthDouble used to define the width of the product, in inches.11.32Defaults to ‘1.0111’
depthDouble used to define the depth of the product, in inches.5.75Defaults to ‘1.0111’

A numbered list of stores that includes geographical information such as region, state, distribution center, cluster, and latitude and longitude.

NameDescriptionExampleDefaultConstraints
store_numberUnique store identifier.1Cannot be empty. The type of data is an Integer
nameThe store’s name.HIVERYMART HQN/AString
regionAny type of region—can be geographic, retailer, socioeconomic, numeric, etc.RURALN/AString
store_typeAny store-level attribution, i.e. store size, demographics, or population density.NeighborhoodsupermarketString
distribution_centerThe distribution center (DC) that feeds the store.DC1N/AString
clusterIf using clusters, enter the planogram id or cluster name/id.HQAREA0String
stateThe state the store is in.NCN/AString
latitudeUseful for geographical insights.35.54030.0Double
longitudeUseful for geographical insights.-79.74800.0Double
addressAddress of the store.100 MAIN STN/AString
post_codePostal or zip code for that store.27341String

Mapping group UPCs to store number, weekly movement data, and pricing information.

NameDescriptionExampleDefaultConstraints
store_numberA unique store identifier1Cannot be empty. The type of data is an Integer
product_keyThe UPC or ID of the product. Note, the product_key should align with the UPC or ID that was provided in the products-master tab, including check digits.036000241457Cannot be empty. The type of data is a String
week_start_dateThe week start date in year/month/day format. Any day of the week may be used as the week start date, as long as it is consistent.”2021-01-31”Format=“YYYY-MM-DD” Note: Excel will reformat String
unitsNumber of units sold for the week starting at date.210.0Double
revenueSales revenue for the week starting at date.84.550.0Double

Planogram files for use with space aware projects. These are uploaded as a .zip of all the planograms. Each planogram uses the file format of .psa. Upload these for space aware planogram drawing in the app. Uploading unlocks features like: Days of Supply and Number of Facings.

Indicates which Planograms are executed at which stores. Use this in space aware projects. This is required along with the planogram files.

NameDescriptionExampleDefaultConstraints
planogram_idUnique planogram identifier. Usually the name of the file.”HIVERYMART_HQ_FOODS.psa”Cannot be empty. This needs a value. Value needs to be a String.
store_numberUnique store identifier.11Cannot be empty. The type of data is an Integer

Images of each product included in this project to display on a planogram as either assorted or unassorted. The product images are uploaded in a zip folder just like planograms. Use these with your space aware project in order to visualize the planograms. Note that these are optional, and any missing images will default to a backup indicator. In alignment with the Product Image Standards from GS1 multiple product images across orientations can be numerically ordered as follows:

  • Front 1
  • Left 2
  • Top 3
  • Back 7
  • Right 8
  • Bottom 9

File Naming Convention: <upc>.<orientation>.<file type>

Example: 123.1.png which corresponds the the product UPC 123 and the front facing orientation.

Notes:

  • UPC should match the UPC in the product master.
  • Orientation is a numerical indicator, e.g.: 1 -> front, 2 -> side
  • File type can be .jpg or .png

New items that warrant an investigation into their performance. Use this for items that don’t have sales data. This enables us to predict the items performance at each store.

NameDescriptionExampleDefaultConstraints
product_keyEither the UPC or ID of the innovation item, whichever you have chosen in the products-master file. Note, all innovation items must be included in the products-master table.”036000241457”Cannot be empty. This needs a value. Value needs to be a String
unit_priceThe price for one unit of the innovation item.5.997.77Double
update_typeThe type of projection the innovation item will receive. ‘sister’ denotes a pairing with one or more like items, while ‘constant’ denotes a flat unit per store per week projection across all stores.”sister”Cannot be empty. This needs a value of either “sister” or “constant”. Value needs to be a String
valuesIf update_type is “sisters”, then provide a weight and a sister item in the format {weight}:{sister item upc/ID}, or the format {weight}:{sister item UPC/ID};{weight}:{sister item UPC/ID} if it has multiple sisters. The estimated movement of the innovation item will be the sum of the weighted movement divided by the number of sisters. If update_type is “constant”, then provide the units per store per week projection.”0.65:036000241457”Cannot be empty. This needs a value. Value needs to be a String

Use this file for new stores with no data to simulate item performance based on data from similar stores.

NameDescriptionExampleDefaultConstraints
store_numberUnique store identifier.1Cannot be empty. The type of data is an Integer
sister_store_numberUnique store identifier.1Cannot be empty. The type of data is an Integer

This file defines the products available by store and is not a requirement if all stores can carry all products. Every product that is available at a particular store must have an entry, otherwise it will not be assorted at that store.

NameDescriptionExampleDefaultConstraints
store_numberUnique store identifier1Cannot be empty. The type of data is an Integer
product_keyEither the UPC or ID, whichever you have chosen in the products-master file.036000241457Cannot be empty. The type of data is an Integer
supplierNote: this is optional if you want to add a supplier at the store/item level.”CLIF BAR & COMPANY“‘WAREHOUSE’String

A graphical depiction illustrating the process and factors a customer considers when deciding to buy a product within a certain category, and informs Hivery’s demand transfer capabilities. Outlines the prioritization of attributes important to the customer, like brand, price, size, flavor, quality, or features.

Upload an image of your CDT and we will translate it and use it for informing our models. This can be in any format, but the more detailed the better. Our system then takes your uploaded Products file and matches each product to the CDT based on those products’ attributes.

Using your CDT we power our Demand Transfer model, which in turn powers features such as: Product Recommendations, Enhanced Assortments, and Assortment Strategy.