> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dema.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Targets

> Learn more about how you can use your budget to setup targets in our platform.

export const TargetMetricFields = () => <>
    <ResponseField name={targetDefinitions.orders.name} type={targetDefinitions.orders.dataType}>
      {targetDefinitions.orders.description}
      <br /><br />
      <strong>Format:</strong> {targetDefinitions.orders.format}<br />
      <strong>Example:</strong> {targetDefinitions.orders.example}
    </ResponseField>
    <ResponseField name={targetDefinitions.grossSales.name} type={targetDefinitions.grossSales.dataType}>
      {targetDefinitions.grossSales.description}
      <br /><br />
      <strong>Format:</strong> {targetDefinitions.grossSales.format}<br />
      <strong>Example:</strong> {targetDefinitions.grossSales.example}
    </ResponseField>
    <ResponseField name={targetDefinitions.marketingSpend.name} type={targetDefinitions.marketingSpend.dataType}>
      {targetDefinitions.marketingSpend.description}
      <br /><br />
      <strong>Format:</strong> {targetDefinitions.marketingSpend.format}<br />
      <strong>Example:</strong> {targetDefinitions.marketingSpend.example}
    </ResponseField>
    <ResponseField name={targetDefinitions.visits.name} type={targetDefinitions.visits.dataType}>
      {targetDefinitions.visits.description}
      <br /><br />
      <strong>Format:</strong> {targetDefinitions.visits.format}<br />
      <strong>Example:</strong> {targetDefinitions.visits.example}
    </ResponseField>
    <ResponseField name={targetDefinitions.users.name} type={targetDefinitions.users.dataType}>
      {targetDefinitions.users.description}
      <br /><br />
      <strong>Format:</strong> {targetDefinitions.users.format}<br />
      <strong>Example:</strong> {targetDefinitions.users.example}
    </ResponseField>
    <ResponseField name={targetDefinitions.newCustomerCount.name} type={targetDefinitions.newCustomerCount.dataType}>
      {targetDefinitions.newCustomerCount.description}
      <br /><br />
      <strong>Format:</strong> {targetDefinitions.newCustomerCount.format}<br />
      <strong>Example:</strong> {targetDefinitions.newCustomerCount.example}
    </ResponseField>
    <ResponseField name={targetDefinitions.netSales.name} type={targetDefinitions.netSales.dataType}>
      {targetDefinitions.netSales.description}
      <br /><br />
      <strong>Format:</strong> {targetDefinitions.netSales.format}<br />
      <strong>Example:</strong> {targetDefinitions.netSales.example}
    </ResponseField>
    <ResponseField name={targetDefinitions.products.name} type={targetDefinitions.products.dataType}>
      {targetDefinitions.products.description}
      <br /><br />
      <strong>Format:</strong> {targetDefinitions.products.format}<br />
      <strong>Example:</strong> {targetDefinitions.products.example}
    </ResponseField>
  </>;

export const TargetDimensionFields = () => <>
    <ResponseField name={targetDefinitions.date.name} type={targetDefinitions.date.dataType} required>
      {targetDefinitions.date.description}
      <br /><br />
      <strong>Format:</strong> {targetDefinitions.date.format}<br />
      <strong>Example:</strong> {targetDefinitions.date.example}
    </ResponseField>
    <ResponseField name={targetDefinitions.country.name} type={targetDefinitions.country.dataType} required>
      {targetDefinitions.country.description}
      <br /><br />
      <strong>Format:</strong> {targetDefinitions.country.format}<br />
      <strong>Example:</strong> {targetDefinitions.country.example}
    </ResponseField>
    <ResponseField name={targetDefinitions.newCustomer.name} type={targetDefinitions.newCustomer.dataType}>
      {targetDefinitions.newCustomer.description}
      <br /><br />
      <strong>Format:</strong> {targetDefinitions.newCustomer.format}<br />
      <strong>Example:</strong> {targetDefinitions.newCustomer.example}
    </ResponseField>

    <ResponseField name={targetDefinitions.channelGroup.name} type={targetDefinitions.channelGroup.dataType}>
      {targetDefinitions.channelGroup.description}
      <br /><br />
      <strong>Example:</strong> {targetDefinitions.channelGroup.example}
    </ResponseField>

    <ResponseField name={targetDefinitions.channel.name} type={targetDefinitions.channel.dataType}>
      {targetDefinitions.channel.description}
      <br /><br />
      <strong>Example:</strong> {targetDefinitions.channel.example}
    </ResponseField>

    <ResponseField name={targetDefinitions.storefront.name} type={targetDefinitions.storefront.dataType}>
      {targetDefinitions.storefront.description}
      <br /><br />
      <strong>Example:</strong> {targetDefinitions.storefront.example}
    </ResponseField>
  </>;

export const targetDefinitions = {
  "date": {
    "dataType": "date",
    "description": "Target date for the budgeted values. Can be daily or the first date of the month for monthly targets.",
    "format": "ISO 8601 (YYYY-MM-DD)",
    "type": "Dimension",
    "example": "2025-01-01",
    "externalId": "DATE",
    "name": "date",
    "optional": "❌"
  },
  "country": {
    "dataType": "string",
    "description": "Country code for geographic budget allocation.",
    "format": "ISO 3166 (2 letters)",
    "example": "SE",
    "externalId": "COUNTRY",
    "type": "Dimension",
    "name": "country",
    "optional": "❌"
  },
  "newCustomer": {
    "dataType": "integer",
    "description": "Indicates whether the target is for new or returning customers. Use 1 for new customers, 0 for returning customers.",
    "format": "1 (new) | 0 (returning)",
    "example": "1",
    "externalId": "NEW_CUSTOMER",
    "type": "Dimension",
    "name": "newCustomer",
    "optional": "✔"
  },
  "channelGroup": {
    "dataType": "string",
    "description": "Marketing channel group for budget allocation across different channel types.",
    "format": "",
    "example": "Social paid",
    "externalId": "CHANNEL_GROUP",
    "type": "Dimension",
    "name": "channelGroup",
    "optional": "✔"
  },
  "channel": {
    "dataType": "string",
    "description": "Specific marketing channel for granular budget planning.",
    "format": "",
    "example": "Facebook",
    "externalId": "CHANNEL",
    "type": "Dimension",
    "name": "channel",
    "optional": "✔"
  },
  "storefront": {
    "dataType": "string",
    "description": "Storefront identifier for multi-store budget allocation.",
    "format": "",
    "example": "US Store",
    "externalId": "MERCHANT_SITE",
    "type": "Dimension",
    "name": "storefront",
    "optional": "✔"
  },
  "orders": {
    "dataType": "integer",
    "description": "Target number of orders expected during the period.",
    "format": "Integer",
    "example": "130",
    "externalId": "ORDERS",
    "type": "Metric",
    "name": "orders",
    "optional": "✔"
  },
  "grossSales": {
    "dataType": "number",
    "description": "Target revenue including shipping fees, excluding VAT and returns.",
    "format": "Decimal",
    "example": "70000",
    "externalId": "GROSS_SALES",
    "type": "Metric",
    "name": "grossSales",
    "optional": "✔"
  },
  "marketingSpend": {
    "dataType": "number",
    "description": "Budgeted marketing spend excluding VAT.",
    "format": "Decimal",
    "example": "20000",
    "externalId": "MARKETING_SPEND",
    "type": "Metric",
    "name": "marketingSpend",
    "optional": "✔"
  },
  "visits": {
    "dataType": "integer",
    "description": "Target number of website visits (sessions).",
    "format": "Integer",
    "example": "4500",
    "externalId": "VISITS",
    "type": "Metric",
    "name": "visits",
    "optional": "✔"
  },
  "users": {
    "dataType": "integer",
    "description": "Target number of unique website users.",
    "format": "Integer",
    "example": "4500",
    "externalId": "USERS",
    "type": "Metric",
    "name": "users",
    "optional": "✔"
  },
  "newCustomerCount": {
    "dataType": "integer",
    "description": "Target number of new customers to acquire.",
    "format": "Integer",
    "example": "500",
    "externalId": "NEW_CUSTOMER_COUNT",
    "type": "Metric",
    "name": "newCustomerCount",
    "optional": "✔"
  },
  "netSales": {
    "dataType": "number",
    "description": "Target revenue after deducting estimated returns, including shipping fees, excluding VAT.",
    "format": "Decimal",
    "example": "60000",
    "externalId": "NET_SALES",
    "type": "Metric",
    "name": "netSales",
    "optional": "✔"
  },
  "products": {
    "dataType": "number",
    "description": "Target number of product units to be sold.",
    "format": "Decimal",
    "example": "850",
    "externalId": "PRODUCTS",
    "type": "Metric",
    "name": "productsSold",
    "optional": "✔"
  }
};

<SidebarToggle />

## Overview

With Dema you can import your budget and use them as targets, which can then be used to compare how your sales, traffic and marketing spend (amongst many other metrics) are tracking against your budget.

<CardGroup cols={2}>
  <Card title="Compare actuals vs targets" icon="chart-line">
    Track how your real performance measures up against your budgeted targets across all key metrics
  </Card>

  <Card title="Flexible dimensionality" icon="layer-group">
    Set targets based on any combination of dimensions and metrics available in Dema
  </Card>
</CardGroup>

***

## Getting started

<Steps>
  <Step title="Access the template">
    Navigate to our [target template](https://docs.google.com/spreadsheets/d/19qJlrHFgIsWzCqafTJ8GbaZtFviv79fvXTeZwlaMTnk/edit?gid=0#gid=0) and make a copy
  </Step>

  <Step title="Review the example">
    Follow the [Example tab](https://docs.google.com/spreadsheets/d/19qJlrHFgIsWzCqafTJ8GbaZtFviv79fvXTeZwlaMTnk/edit?gid=1533778524#gid=1533778524) to understand the data structure
  </Step>

  <Step title="Fill in your targets">
    Enter your budget targets following the schema and examples provided below
  </Step>

  <Step title="Share with Dema">
    Share your **Google Sheet** with us in Slack or Teams
  </Step>

  <Step title="Confirmation">
    We'll let you know when they've been imported and your target metrics are ready for use!
  </Step>
</Steps>

***

## How targets work

Dema supports targets based on any dimension and metric which means that you can set targets based on a combination of many different dimensions and metrics.

<Warning>
  Target metrics will only work for the dimensions that have been provided in the target sheet. If only date and country have been provided as dimensions, Dema will not be able to break it down on channel and channel group.
</Warning>

<Tip>
  **Start simple** with fewer dimensions and metrics — there's always the option to make it more detailed at a later date.
</Tip>

### Data schema

<AccordionGroup>
  <Accordion title="Dimension fields" icon="tags">
    Dimensions define how your targets are segmented and grouped.

    <TargetDimensionFields />
  </Accordion>

  <Accordion title="Metric fields" icon="chart-simple">
    Metrics are the target values you want to track. Include only the metrics relevant to your business goals.

    <TargetMetricFields />
  </Accordion>

  <Accordion title="Example file" icon="file-spreadsheet">
    Below is an example of how your target data should be structured:

    ```csv theme={null}
    date,country,newCustomer,channelGroup,channel,storefront,orders,grossSales,marketingSpend,visits,users,newCustomerCount,netSales,productsSold
    2025-01-01,SE,1,Social paid,Facebook,EU Store,60,30000,9000,1800,1500,60,27000,150
    2025-01-01,SE,1,Search paid,Google,EU Store,40,20000,6000,1200,1000,40,18000,100
    2025-01-01,SE,0,Social paid,Facebook,EU Store,20,12000,3000,600,500,0,11000,50
    2025-01-01,SE,0,Search paid,Google,EU Store,10,8000,2000,400,300,0,7000,30
    2025-01-01,NO,1,Social paid,Facebook,EU Store,50,25000,7500,1500,1200,50,22500,125
    2025-01-01,NO,1,Search paid,Google,EU Store,30,15000,4500,1000,800,30,13500,75
    2025-01-01,NO,0,Social paid,Facebook,EU Store,15,11000,2700,550,400,0,10000,40
    2025-01-01,NO,0,Search paid,Google,EU Store,10,7000,1800,350,300,0,6500,25
    2025-02-01,SE,1,Social paid,Facebook,EU Store,70,36000,10800,2100,1800,70,32400,180
    2025-02-01,SE,1,Search paid,Google,EU Store,50,24000,7200,1400,1200,50,21600,120
    2025-02-01,SE,0,Social paid,Facebook,EU Store,20,13000,3300,650,500,0,12000,55
    2025-02-01,SE,0,Search paid,Google,EU Store,15,9000,2200,450,350,0,8000,35
    ```

    <Note>
      When importing examples into Google Sheets or similar tools, verify that numbers are not malformatted and match our specified schema above. Pay special attention to decimal points and thousand separators.
    </Note>
  </Accordion>
</AccordionGroup>

***

## Best practices

<CardGroup cols={2}>
  <Card title="Start simple" icon="seedling">
    Begin with fewer dimensions and metrics. You can always add more detail later as your needs evolve.
  </Card>

  <Card title="Flexible combinations" icon="puzzle-piece">
    Any combination of dimension and metric you see in Dema can have its own target metric.
  </Card>

  <Card title="Data validation" icon="magnifying-glass-chart">
    Always verify that numbers are properly formatted with correct decimal points and thousand separators.
  </Card>

  <Card title="Regular updates" icon="arrows-rotate">
    Keep your targets up to date by sharing revised Google Sheets with the team when your budget changes.
  </Card>
</CardGroup>

***

## Need help?

<CardGroup cols={2}>
  <Card title="Contact support" icon="headset">
    Get in touch with our customer success team through Slack or Teams
  </Card>

  <Card title="Template access" icon="file-spreadsheet" href="https://docs.google.com/spreadsheets/d/19qJlrHFgIsWzCqafTJ8GbaZtFviv79fvXTeZwlaMTnk/edit?gid=0#gid=0">
    Access the target template to get started
  </Card>
</CardGroup>
