Uploading your demand data to Beam

Since the data includes a date and value, it is said to be a time series because the value is indexed with time. As instructed on the page, the only supported file format is CSV with column names in the first row and each column separated by a comma. Click the question mark next to file format documentation for a full explanation of the data formatting requirements.

Data Format

The supported Beam file format and upload details are as follows:

  • The CSV file format supported has 2 columns - date and demand.

  • For a CSV file you must have the column headings of date and demand as the first row of the file: date,demand

  • The date format required is ISO date format in the YYYY-MM-DD format. That is year, month, and day. For example 2017-03-29 for 29 March 2017. The file should contain 1 row per date.

  • Demand can be any integer or decimal value. In general, we recommend using the same value you use in your demand forecasting.

  • The minimum amount of data allowed is 6 months and the maximum is 4 years. The earliest date supported is 2017-01-01 - Beam will not support date ranges early than this.

  • If there are too many missing dates within the total date range the analysis will fail. For example, if in a 1-year date range you only had 100 days of data the analysis would fail. You can have up to 20% of days missing from your date range.

  • For the Beam upload, you can have up to 7 consecutive days missing. If you have more than 7 days missing your upload will fail.

Beam file format

Here is an example of the correct file format for Beam.

Below is an example of what the file should look like. The column headers must be date and demand only and the date format YYYY-MM-DD to avoid receiving errors.


The size of data allowed is from 6 months (minimum) to 4 Years (maximum). Beam additionally requires data that starts no earlier than 2017-01-01 and ends no later than the current day.

The file you upload can only contain 1 row per date. You should not have multiple rows with the same date. You must have 1 demand amount per date. If you repeat the same data multiple times, the upload will take the latest instance of a date you uploaded and ignore the previous values.

Demand metrics can vary. In other words, any unit (revenue, customer count, etc) that your business uses for demand forecasting will be the best value to use for the demand unit in the data you upload.

If you have any problems with this file format you can upload another type of file via https://control.predicthq.com/upload and the team here will review the file and if it has the necessary data convert it into the Beam file format and upload it for you. Or talk to us if you want any help.

Granularity and missing data

It is important that the data is aggregated on a daily level. E.g: On the 29th March 2017, a business recorded a demand of 1000 whereas the next day, the demand was 800.

The Demand column represents a quantity, whether count or sum and cannot be a negative value. The value must be greater than or equal to 0. If a date exists, then the respective demand should not be blank or null. Similarly, if a value for demand exists, then a date ought to be present. Note that whilst it is tempting to replace missing values with 0, it is strongly advised against doing so unless you are sure that no data means no demand.

If a missing row means that the system was down or no record was available for that day, then we suggest leaving the entire row out of the data set for accurate results.

Bulk uploading Beam analyses

If you want to upload a large amount of Beam analyses we recommend using the Beam API.