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

# CSV uploads

> Create CSV data sources, map columns, upload billing history, and assign meters at the building level in EnerG

CSV uploads let you load historical utility data from spreadsheets or exported reports. Add the source at the [portfolio level](/products/energ/analytics/portfolio-data-sources), then open your named CSV source from [Building data sources](/products/energ/buildings/data-sources) to upload files, review history, and assign meters to each site.

Use CSV uploads when you lack [Arcadia](/products/energ/data-sources/arcadia) automation or need a one-time backfill before you switch to ongoing collection.

<Info>
  Download the official template for your upload type before you prepare the file. Use the field reference for supported service types, units of measure, currencies, and required columns. After the first successful mapping, new files for the same source map automatically.
</Info>

## Prepare the file

Before you upload:

1. Download the template for the upload type you need.
2. Review the field reference for allowed **Service Type**, unit of measure, currency, and required columns.
3. Map your column names to platform fields in **Field Mapping** before the file is processed.

Required fields include **Account Number**, **Meter Number**, **Meter Name**, **Service Type**, **Usage**, **Unit**, **Start Date**, and **End Date**.

## Add a CSV data source (portfolio)

<Steps>
  <Step title="Open Data Sources">
    In the portfolio left sidebar, click **Data Sources**.
  </Step>

  <Step title="Start the upload">
    Click **+ Add Data Source**. In the **Add Data Source** dialog, select **CSV Upload** from the **API** dropdown. Enter a name for the data source in the **Name** field.

    <Frame caption="Add Data Source dialog with CSV Upload selected">
      <img src="https://mintcdn.com/kodelabs/Ph3_DUgZdP7vM-lt/images/energ/energ-data-sources-csv-select.png?fit=max&auto=format&n=Ph3_DUgZdP7vM-lt&q=85&s=57b3fefde5bddbadc10e614b6dc05690" alt="Add Data Source dialog showing CSV Upload selected in the API dropdown, a Name field, and a file upload area labeled Choose a file or drop it here" width="1262" height="734" data-path="images/energ/energ-data-sources-csv-select.png" />
    </Frame>
  </Step>

  <Step title="Upload your file">
    Drag your CSV file into the upload area or click to browse. Click **Next** to proceed to column mapping.
  </Step>

  <Step title="Map columns">
    The **Field Mapping** interface shows your source columns on the left and required target fields on the right. Drag each source column to its matching target field. A progress indicator tracks how many required fields you have mapped.

    Required fields include **Account Number**, **Meter Number**, **Meter Name**, **Service Type**, **Usage**, **Unit**, **Start Date**, and **End Date**.

    <Frame caption="Field Mapping interface with source and target columns">
      <img src="https://mintcdn.com/kodelabs/Ph3_DUgZdP7vM-lt/images/energ/energ-data-sources-csv-column-mapping.png?fit=max&auto=format&n=Ph3_DUgZdP7vM-lt&q=85&s=137588f81efcd90cc70c1355155cf927" alt="Field Mapping screen with Source column list on the left and Target fields including Account Number, Meter Number, Meter Name, and Service Type on the right, with a progress indicator showing 0 of 8 required fields mapped" width="1012" height="811" data-path="images/energ/energ-data-sources-csv-column-mapping.png" />
    </Frame>
  </Step>

  <Step title="Save the data source">
    Click **Save**. The source appears under **All Data Sources** for every building in the portfolio.
  </Step>
</Steps>

<Check>
  Each CSV source is named for the provider or file set, such as **Goyo - Water** or **Goyo - Electric**.
</Check>

## Open your CSV source from the building view

<Steps>
  <Step title="Select a building">
    From [Portfolio Home](/products/energ/analytics/benchmarking), open a building in the building view.
  </Step>

  <Step title="Open the CSV source">
    Expand **Data Sources** in the left sidebar. Under **All Data Sources**, click your CSV source name.
  </Step>
</Steps>

The source page shows a **CSV Upload** badge, **PRIVATE** visibility, and **Meters** and **Accounts** tabs. Use **Meters** to upload reads and manage building assignments.

## Meters tab

The **Meters** tab lists meters created or updated by CSV uploads for this building.

<Frame caption="CSV Upload Meters tab with upload controls">
  <img src="https://mintcdn.com/kodelabs/2xuyqDwhBYJ11inY/images/energ/energ-building-csv-upload-meters.png?fit=max&auto=format&n=2xuyqDwhBYJ11inY&q=85&s=fa07a4ec646387b12ad6e9b78a96e5c8" alt="Goyo Water CSV Upload data source Meters tab with View Upload History and Upload Data buttons Search Meters Assign Meters and table showing Whole Building Cavana Kinshicho water SITE_METER m3 unit Active status" width="1024" height="310" data-path="images/energ/energ-building-csv-upload-meters.png" />
</Frame>

The table shows each meter's level, service type, unit, account, and status. For column definitions, see [Meter table columns](/products/energ/reference/data-and-meter-fields#meter-columns).

| Control                 | Purpose                                                 |
| ----------------------- | ------------------------------------------------------- |
| **Search Meters**       | Filter by meter number or name                          |
| **View Upload History** | Open the upload log for this source                     |
| **+ Upload Data**       | Upload a new CSV file                                   |
| **Assign Meters**       | Link meters from the portfolio library to this building |

## Upload new data

Click **+ Upload Data** to open the **Upload New Data** modal.

<Frame caption="Upload New Data modal with automatic mapping">
  <img src="https://mintcdn.com/kodelabs/2xuyqDwhBYJ11inY/images/energ/energ-building-csv-upload-new-data.png?fit=max&auto=format&n=2xuyqDwhBYJ11inY&q=85&s=f63b8b15f69fd59c50385aa83573fc0b" alt="Upload New Data modal with Mapping is complete banner file drop zone default mapping section showing cost to Cost cost_currency to Cost Currency end_date to End Date and Cancel Submit buttons" width="768" height="687" data-path="images/energ/energ-building-csv-upload-new-data.png" />
</Frame>

<Steps>
  <Step title="Open Upload Data">
    On the **Meters** tab, click **+ Upload Data**.
  </Step>

  <Step title="Confirm mapping">
    When the banner reads **Mapping is complete; New Files will be mapped automatically**, review the **default** mapping list. Each row pairs a source field (for example `cost_currency`) with a display label (for example **Cost Currency**).
  </Step>

  <Step title="Choose a file">
    Drag a CSV into the drop zone or click **Choose a file or drop it here**.
  </Step>

  <Step title="Submit">
    Click **Submit**. EnerG starts a job that moves through **validating**, **processing**, then **done** or **failed**. Wait for the job to finish before you treat the upload as complete. Success and error counts appear when processing ends.
  </Step>
</Steps>

For the first file on a new source, complete portfolio-level **Field Mapping** before building uploads inherit the **default** profile.

## View upload history

Click **View Upload History** to review every file uploaded to this source.

<Frame caption="Upload History page with file status counts">
  <img src="https://mintcdn.com/kodelabs/2xuyqDwhBYJ11inY/images/energ/energ-building-csv-upload-history.png?fit=max&auto=format&n=2xuyqDwhBYJ11inY&q=85&s=9155b14795a6b610829923863e00a4df" alt="Upload History page with Details table listing Goyo Water CSV files with green success counts 23 and 146 orange pending 0 and red error 0 and eye icon per row" width="486" height="274" data-path="images/energ/energ-building-csv-upload-history.png" />
</Frame>

| Column         | What it shows                                                             |
| -------------- | ------------------------------------------------------------------------- |
| **File**       | Uploaded filename as a link                                               |
| **Job status** | Validating, processing, done, or failed                                   |
| **Rows**       | Row counts by outcome: success (green), pending (orange), and error (red) |

Click the eye icon on a row to inspect row-level results. Failed rows include the row number, field, and reason so you can correct the file and re-upload.

## Assign meters to the building

Click **Assign Meters** to link CSV meters that exist in the portfolio but are not yet tied to this building.

<Frame caption="Add existing Meters dialog for CSV sources">
  <img src="https://mintcdn.com/kodelabs/2xuyqDwhBYJ11inY/images/energ/energ-building-csv-upload-assign-meters.png?fit=max&auto=format&n=2xuyqDwhBYJ11inY&q=85&s=dd761b079c1959449d8ee590c2f567e8" alt="Add existing Meters modal with Search Meters empty table pagination 0 of 0 with Cancel and Submit buttons" width="911" height="513" data-path="images/energ/energ-building-csv-upload-assign-meters.png" />
</Frame>

Search the list, select meters, then click **Submit**. If the table is empty, upload a CSV at the portfolio level first or confirm meters are not already assigned elsewhere.

## Unlink meters from the building

Remove CSV meters from the building assignment without deleting the underlying records in the portfolio.

<Frame caption="Unlink Meters from Building dialog">
  <img src="https://mintcdn.com/kodelabs/2xuyqDwhBYJ11inY/images/energ/energ-building-csv-upload-unlink-meters.png?fit=max&auto=format&n=2xuyqDwhBYJ11inY&q=85&s=764e809e6896dfd72a70a229812aa7b2" alt="Unlink Meters from Building modal with meter table showing meter numbers names providers addresses Natural Gas and Electric service types checkboxes and pagination 1-10 of 12816" width="679" height="567" data-path="images/energ/energ-building-csv-upload-unlink-meters.png" />
</Frame>

Select meters, then click **Unlink**. Historical reads may remain in the portfolio; the building no longer rolls them into dashboards. See [Unassign meters](/products/energ/buildings/meters#unassign-meters-from-the-building) for the building **Meters** page workflow.

## Troubleshoot upload errors

If rows fail validation, check the following.

* Compare every required column header to the template spelling and order
* Remove blank rows that break validation
* Split very large files only when product guidance recommends a row limit
* Confirm date formats match what EnerG expects (typically MM/DD/YYYY)
* Open **Upload History** and review the red error count for the file

## Next steps

<CardGroup cols={2}>
  <Card title="Building data sources" icon="database" href="/products/energ/buildings/data-sources" arrow={true} cta="Open">
    Return to the building data sources overview.
  </Card>

  <Card title="Building meters" icon="gauge" href="/products/energ/buildings/meters" arrow={true} cta="Open">
    Review all meters assigned to the building after CSV import.
  </Card>

  <Card title="Arcadia" icon="plug" href="/products/energ/data-sources/arcadia" arrow={true} cta="Open">
    Automate ongoing utility collection after historical CSV loads.
  </Card>

  <Card title="Manual entry" icon="pencil" href="/products/energ/data-sources/manual-entry" arrow={true} cta="Open">
    Capture meters that never appear in bulk files or automated feeds.
  </Card>

  <Card title="Data sources and meters" icon="gauge" href="/products/energ/concepts/data-and-meters" arrow={true} cta="Read">
    Understand how imported bills feed EnerG analytics.
  </Card>
</CardGroup>
