Import and export financial data with CSV

Import and export funds data with CSV in Focus to load cost and benefit data in bulk, update existing items across many months at once, or move data between systems. CSV is the recommended path for the initial load when you're rolling out the funds tab and financial data to a new focus area, and for round-trip edits when you need to change many rows at once.

Before you begin

Make sure the following prerequisites are met before you import data:

If this is your first import, start with one focus area and one cost or benefit item, so you can confirm the data lands correctly before scaling up.

What you can and can't import via CSV

CSV import covers most day-to-day Funds data. A few things are managed in-product only.

You can import

You can't import via CSV

Cost items, including type, sub-type, expenditure class, and investment category

Budgets, which are set at the fiscal year level in Focus

Benefit items, including benefit type

Baselines, which are captured in Focus when a plan is approved

Monthly forecast values

Tags

Monthly actual values

Links to Jira work items

Updates to existing items, matched by ID

Cost types, sub-types, and other admin-configured options

Understand the CSV schema

Funds uses two CSV formats: one for costs, one for benefits. Each row is a single cost or benefit item containing monthly values for one financial version: either forecast or actual, not both. To capture both forecast and actual values for the same item, use two rows or two uploads.

Costs CSV columns

Column

Required?

Description

Focus Area ID

Yes (or Focus Area External ID)

The internal Focus Area UUID (for example, 5faba0bc-2130-4d1e-ab1b-375ad8006adb).

Focus Area External ID

Yes (or Focus Area ID)

The external Focus Area identifier you've assigned. At least one of Focus Area ID or Focus Area External ID is required. If you provide both, they must point to the same focus area or the row is rejected.

Focus Area Name

Ignored on import

Returned on export for readability.

Cost Item ID

Optional

The internal cost item UUID. Provide it to update an existing item. Leave it blank to let Funds generate one.

Cost Item External ID

Optional

An external identifier you assign to the cost item. Useful for matching across uploads.

Cost Item Name

Required

The name of the cost item.

Cost Type

Required if Cost Subtype is set

Labor or Non-labor.

Cost Subtype

Optional

Must match a sub-type your administrator has configured (for example, Employee, Contractor).

Expenditure Type

Optional

CapEx or OpEx.

Investment Category

Optional

Must match a category your administrator has configured (for example, CtB, RtB).

Financial Version Type

Required

ACTUAL or FORECAST. Each row contains values for one version only.

Month columns

 

One column per period, named YYYY-MM (for example, 2026-01, 2026-02). Values are in whole currency units.

Benefits CSV columns

Column

Required?

Description

Focus Area ID

Yes (or Focus Area External ID)

The internal Focus Area UUID.

Focus Area External ID

Yes (or Focus Area ID)

The external Focus Area identifier you've assigned. At least one of Focus Area ID or Focus Area External ID is required.

Focus Area Name

Ignored on import

Returned on export for readability.

Benefit Item ID

Optional

The internal benefit item UUID. Provide it to update an existing item. Leave it blank to create a new item.

Benefit Item External ID

Optional

An external identifier you assign to the benefit item. Useful for matching across uploads.

Benefit Item Name

Required

The name of the benefit item.

Benefit Type

Optional

Must match a benefit type your administrator has configured.

Financial Version Type

Required

ACTUAL or FORECAST. Each row contains values for one version only.

Month columns

 

One column per period, named YYYY-MM. Values are in whole currency units.

Prepare your CSV

You can get a CSV file to work with in two ways.

Download current data from a focus area

The downloaded file includes Focus Area IDs, item IDs, and all current values. You can edit existing rows and re-upload, or remove the existing rows and use the file as a starting point for new items with the Focus Area ID already in place.

  1. Navigate to the focus area.

  2. Select the Funds tab.

  3. Select more actions (•••), then select Download current data.

  4. Choose which fields to include (Baselines, Forecasts, Actuals), set the date range, and optionally select Include data from all sub-focus areas.

  5. Select Download.

Download a blank template

Use this when you want to build a CSV from scratch. The template has the correct column headers for your selected date range, but no existing data or Focus Area IDs.

You can download a blank template from two places:

From a focus area:

  1. Select the Funds tab.

  2. Select more actions (•••), then select Download template.

From Focus settings:

  1. Select settings (), then select Focus settings.

  2. Under Integrations, select Transfer data.

  3. Select the Funds tab, then select Costs or Benefits.

  4. Select Download.

Both options produce the same file. Because blank templates don't include Focus Area IDs, you need to add them yourself. To find the ID for a focus area, use Download current data on that focus area and copy the Focus Area ID from the exported file.

External IDs can't be edited in Focus today. If you want a focus area's external ID to match a code from another system, set it correctly the first time.

Import new data

Each row in your CSV file represents a single cost or benefit item's monthly values for one financial value, forecast or actual. To import a CSV file, navigate to the focus area, select the Funds tab, then select more actions (•••), then select Import data.

Create new items

When a row in your CSV doesn't include a Cost Item ID or Benefit Item ID, Funds creates a new item for that row and assigns it an internal ID. If the row includes an External ID that doesn't match an existing item, the new item is created with that identifier attached. If the External ID matches an existing item, that item is updated instead.

To add items with only forecast or only actual values, include one row per item with the appropriate Financial Version Type. To add items that include both forecast and actual values, see Create items with both forecast and actuals.

Match and update existing items

When a row includes an ID that matches an existing item, Funds updates that item instead of creating a new one. Names are never used for matching. Two rows with the same name but no IDs create two separate items.

You provide

What happens

Neither ID nor External ID

A new item is created and assigned an internal ID.

External ID only, no match in the system

A new item is created with that External ID, plus a new internal ID.

External ID only, match found

The existing item is updated.

Internal ID only

The existing item is updated.

Both, and they match the same item

The existing item is updated.

Both, and they conflict

The row is rejected.

If you're loading data from another system like a planning spreadsheet, assign an External ID to each item in your CSV. This makes future round-trip updates safer and lets you create items with both forecast and actual values in a single upload.

Create items with both forecast and actuals

Forecast and actual values always live on separate rows (one row has Financial Version Type = FORECAST, the other ACTUAL). When you're creating new items, Funds needs a way to know that two rows belong to the same item. Without an ID on either row, Funds creates two separate items instead of one.

You have two options for making sure both rows are linked to the same item.

Option 1: Single upload with External IDs

Use this when you want to create items and load both forecast and actual values in one upload.

  1. In your CSV, add an External ID to each new item. This can be any identifier you choose, such as a code from your finance system.

  2. Add two rows for each item: one with Financial Version Type = FORECAST and one with ACTUAL. Use the same External ID on both rows.

  3. Upload the file. Funds creates the item on the first row and matches the second row to it using the External ID.

Option 2: Two uploads without External IDs

Use this when you don't need to assign your own identifiers to items.

  1. Upload your forecast or actual rows first, with all item IDs blank. Funds creates a new item for each row and assigns internal IDs.

  2. Use Download current data to export the data. The exported file includes the internal IDs that Funds assigned to each new item.

  3. Add your remaining rows (the other financial version) to the exported file, using the internal IDs to match each row to its item.

  4. Upload the updated file.

Export and edit existing data

To update existing items in bulk, download the current data, edit the file, and re-upload it. This round-trip workflow is faster than editing items one at a time in the product, and keeps internal IDs intact to avoid accidental duplicates.

  1. In the focus area, open the Funds tab.

  2. Select more actions (•••), then select Download current data. Clear the Baselines checkbox so the export only includes forecast and actual rows, set the date range, then select Download.

  3. Edit the rows you want to change in the exported file.

  4. Remove any rows or columns you don't want to edit.

  5. Back in the focus area, select more actions (•••), then select Import data. Upload the edited file.

Set, change, and clear monthly values

Funds uses the month columns in your CSV to decide what to update. The rules are:

  • Only the month columns you include are touched. If your CSV doesn't have a 2026-03 column, Funds leaves 2026-03 alone for that row.

  • A value updates that month. A 0 means "the value is zero." It does not clear the value.

  • A blank cell in a column that is present clears that month. Funds treats an empty cell as "set this period to no value" and erases any existing value.

To avoid accidental data loss, only include the month columns you actually want to set or change. Drop the rest from your CSV before uploading.

Excel changes date values on open. When you open a CSV in Excel, it may silently reformat yyyy-MM values (like 2026-01) into full dates (like 2026-01-01 or Jan-24). Saving the file writes the changed values back to the CSV, causing import errors.

To avoid this:

  • Edit your CSV in a plain text editor (VS Code, Notepad, TextEdit) instead of Excel.

  • If you must use Excel, check the raw CSV in a text editor before uploading to confirm month columns still use yyyy-MM format.

  • On macOS, Numbers does not auto-format these values and is a safer alternative.

Export data

Use Download current data from the more actions (•••) menu on the Funds tab to export your funds data. You can choose which fields to include (Baselines, Forecasts, Actuals), set the date range, and optionally include data from all sub-focus areas.

Exports are useful for keeping backups before making bulk changes, reporting on financial data outside Focus, or moving data between focus areas.

Delete data

Funds doesn't have a built-in undo for CSV-based deletions. Before you upload a file that clears values, export the current data first so you have a recovery copy.

To clear monthly values for an item:

  1. Build a CSV that contains the rows you want to change, plus the month columns you want to clear.

  2. Leave the cells you want to clear empty. Remember: a blank cell in a column that is present erases that period's value; a 0 sets the value to zero.

  3. Upload the file.

To delete a cost or benefit item entirely, delete it inside the product.

Import limits

CSV imports have a maximum row limit. If your file exceeds the allowed number of rows, the entire import is rejected with an error. If you need to import a large dataset, split it into smaller files. For example, one file per focus area or one file per financial version type.

Categorization is your responsibility

Funds doesn't automatically categorize your financial data. You decide how to classify each cost and benefit item (type, sub-type, expenditure class, investment category, benefit type) when you prepare your CSV. If you need to change the available categorization options, your administrator can update them in Focus admin settings.

Programmatic alternatives

A public API for importing financial data is available. It covers the same scope as CSV (cost and benefit items, forecast and actual values) and uses the same matching rules.

 

Still need help?

The Atlassian Community is here for you.