> ## Documentation index
> Fetch the complete documentation index at: https://docs.prescientai.com/llms.txt
> Use this file to discover all available pages before exploring further. Add `.md` to any page URL to get that page as Markdown.

# Data requirements

> Reference for the required and optional columns of each channel type when you supply data from Google Sheets, a warehouse, SFTP, or Azure Blob Storage.

This page lists the columns that Data Center requires for each type of channel. The requirements apply to a channel whose data comes from Google Sheets, BigQuery, Snowflake, SFTP, or Azure Blob Storage. The columns depend on the type of the channel, which the **Type** column of the **Channels** tab shows.

A channel that a hosted connect card or a provider sign-in carries has no column requirement.

## Advertising

| Column        | Required | Notes                                                                   |
| ------------- | -------- | ----------------------------------------------------------------------- |
| date          | Required | The day of the row. The expected name is created_date in Google Sheets. |
| campaign_name | Required | The name of the campaign.                                               |
| campaign_id   | Required | The ID of the campaign. Prescient reads the ID as text.                 |
| spend         | Required | The spend of the campaign on that day.                                  |
| tactic_type   | Optional | Text.                                                                   |
| clicks        | Optional | A number.                                                               |
| impressions   | Optional | A number.                                                               |
| conversions   | Optional | A number.                                                               |
| revenue       | Optional | A number.                                                               |

## Web analytics

| Column           | Required | Notes                                                                   |
| ---------------- | -------- | ----------------------------------------------------------------------- |
| date             | Required | The day of the row. The expected name is created_date in Google Sheets. |
| channel_grouping | Required | The channel group of the sessions.                                      |
| total_sessions   | Required | The sessions of that group on that day.                                 |
| engaged_sessions | Optional | A number.                                                               |
| new_users        | Optional | A number.                                                               |
| active_users     | Optional | A number.                                                               |
| total_users      | Optional | A number.                                                               |
| bounce_rate      | Optional | A number.                                                               |

## Conversion

| Column | Required | Notes                                                                                       |
| ------ | -------- | ------------------------------------------------------------------------------------------- |
| date   | Required | The day of the row. The expected name is created_date in Google Sheets.                     |
| value  | Required | A number. Do not supply a conversion channel from Snowflake. See the rules for each source. |

## E-commerce

| Column                | Required | Notes                                                                                    |
| --------------------- | -------- | ---------------------------------------------------------------------------------------- |
| date                  | Required | The day of the row. The expected name is created_date in Google Sheets and in Snowflake. |
| new_customers         | Required | Optional when the data comes from Snowflake.                                             |
| transactional_orders  | Required | A number.                                                                                |
| transactional_revenue | Required | A number.                                                                                |
| subscription_orders   | Optional | A number.                                                                                |
| subscription_revenue  | Optional | A number.                                                                                |
| wholesale_orders      | Optional | A number.                                                                                |
| wholesale_revenue     | Optional | A number.                                                                                |

## Retail

| Column           | Required                                             | Notes                                                       |
| ---------------- | ---------------------------------------------------- | ----------------------------------------------------------- |
| date             | Required                                             | A date. The expected name is created_date in Google Sheets. |
| date_aggregation | Required                                             | Text.                                                       |
| revenue_amount   | Required                                             | A number.                                                   |
| revenue_ccy      | Required                                             | The currency of the revenue. Text.                          |
| total_units_sold | Required for SFTP, Azure Blob Storage, and Snowflake | Optional for Google Sheets and BigQuery.                    |
| num_of_stores    | Required for SFTP, Azure Blob Storage, and Snowflake | Optional for Google Sheets and BigQuery.                    |

## Other

| Column     | Required | Notes                                                                                  |
| ---------- | -------- | -------------------------------------------------------------------------------------- |
| asin       | Required | One row for each ASIN. An ASIN has 10 characters, each an uppercase letter or a digit. |
| brand_name | Optional | Text.                                                                                  |

## Unique rows

Data Center refuses data with two rows that have the same values in these columns.

| Channel type  | Columns                       | Result                                      |
| ------------- | ----------------------------- | ------------------------------------------- |
| Advertising   | The date and campaign_id      | One row for each campaign on each day.      |
| Web analytics | The date and channel_grouping | One row for each channel group on each day. |
| Conversion    | The date                      | One row for each day.                       |
| E-commerce    | The date                      | One row for each day.                       |
| Retail        | The date                      | One row for each date.                      |
| Other         | asin                          | One row for each ASIN.                      |

## Rules for each source

| Subject                            | Rule                                                                                                                                                                                                                                                                                                                      |
| ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Name of the date column            | The expected name is created_date in Google Sheets, and in Snowflake for an e-commerce channel. The expected name is date in each other source. Data Center accepts date and created_date for the two names.                                                                                                              |
| How Data Center reads column names | Data Center ignores capital letters, spaces, and punctuation in a column name, so Created Date and created_date are the same name. Data Center also accepts some other names for a column: campaign for campaign_name, tactic for tactic_type, cost for spend, sessions for total_sessions, and currency for revenue_ccy. |
| Other channels                     | A channel of the type **Other** can take data only from Google Sheets.                                                                                                                                                                                                                                                    |
| Date format                        | In Google Sheets, SFTP, and Azure Blob Storage, a date has the form YYYY-MM-DD or YYYY/MM/DD. In Google Sheets, a cell that has a date format is also a date. The fix message of a Google Sheets connection asks for the form YYYY-MM-DD.                                                                                 |
| Dates after today                  | In Google Sheets, SFTP, and Azure Blob Storage, a row with a date more than 1 day after today does not pass the check. Do not add rows for days that have not occurred.                                                                                                                                                   |
| Data patch sheet                   | A data patch sheet always uses the Google Sheets column names, so its date column is created_date.                                                                                                                                                                                                                        |
| Conversion data from Snowflake     | Do not supply a conversion channel from Snowflake. The checks can pass, but Prescient does not read conversion data from a Snowflake service account. Use Google Sheets, BigQuery, SFTP, or Azure Blob Storage.                                                                                                           |
| Values of the wrong type           | A date column must hold dates, and a number column must hold numbers. An ASIN must have 10 characters, each an uppercase letter or a digit.                                                                                                                                                                               |
| Blank values                       | A required column cannot have a blank value.                                                                                                                                                                                                                                                                              |
| Numbers                            | A number must be a plain number, with no currency symbol and no currency format.                                                                                                                                                                                                                                          |
| Duplicate rows                     | Two rows cannot have the same values in the columns that make a row unique.                                                                                                                                                                                                                                               |
| Empty source                       | The source must have one row or more.                                                                                                                                                                                                                                                                                     |
| Column names that differ           | When Data Center cannot match a required column to one of your columns, the setup dialog shows a form. In the form, select the column of your data for each required column.                                                                                                                                              |

> **Pages of the earlier help center:** Some pages of the earlier help center list different required columns, or one date format only. The tables and the rules on this page agree with the checks that Data Center runs. For the columns of data that a workspace supplies, this page is the reference.

> **A data patch needs fewer columns:** In a data patch, the main metric columns are optional. See [Data patches](https://docs.prescientai.com/data-center/data-patches).

## Related

- [Data Center](https://docs.prescientai.com/data-center): the guides and the concepts of the product area.
- [Connect a channel](https://docs.prescientai.com/data-center/connect-a-channel): the steps to connect a sheet, a table, or a file location.
- [Add a data patch](https://docs.prescientai.com/data-center/add-a-data-patch): the steps for a patch sheet.
- [Data patches](https://docs.prescientai.com/data-center/data-patches): what a patch is and which columns it needs.
