---
title: "Custom Columns"
description: "When you need data that doesn't come from your HRIS or EMS"
canonical_url: "https://support.pave.com/articles/custom-columns-Pgc4bnoiRQ"
md_url: "https://support.pave.com/articles/custom-columns-Pgc4bnoiRQ.md"
---
# Custom Columns

## When you need data that doesn't come from your HRIS or EMS

Your HRIS and EMS integrations populate most of the employee data in a cycle, but some data points need to come from elsewhere: performance ratings from a separate system, promotion decisions from leadership, custom calculations you've built, or per-employee budget amounts from finance. There are two ways to bring this data into the cycle.

### Data upload (CSV)

Upload a spreadsheet of values mapped to employees. Best for data that originates outside of Pave and needs to be imported in bulk, like performance ratings, promotion flags, flight risk scores, or pre-calculated budget amounts.

### Calculated columns (formulas)

Write a Handlebars formula that computes values from other columns already in the cycle. Best for data that can be derived from existing cycle data, like "new salary = current salary + salary raise" or "bonus target = 5% of base pay if performance exceeds expectations."

## Data upload

### How it works


1. Open the cycle and go to **Configurations** > **Data Upload**.
2. Select the columns you want to populate from the table of uploadable columns.
3. Click **Upload Data**. In the modal, click **Generate CSV** to download a template pre-filled with current values.
4. Fill in the template with your data. Use employee emails to match rows to employees. Use local currency without symbols for currency fields.
5. Upload the completed file. The upload portal validates your data and flags errors for you to fix before saving.

### What you can upload to

You can upload data to any column configured to accept uploads. This includes:

* **Direct column values**: Salary raise amounts, bonus amounts, custom attributes
* **Recommendation values**: Upload target recommendations for any pay type (shown as "\[Column Name\]: Recommendation")
* **Per-employee budget amounts**: Upload budget values for bottom-up budgets (shown as "\[Column Name\]: Budget")

### Override behavior

By default, uploaded data does not overwrite values that planners have manually entered. If a planner has already saved a value for an employee, the upload leaves it in place.

To replace planner inputs, check **"Override planner inputs with uploaded data"** before uploading. This overwrites any manually saved values and cannot be reversed. The override checkbox only appears when you've selected columns where planners can enter data (it's hidden for recommendation and budget columns, which don't have planner inputs to override).

### What happens after upload

* Values appear in planners' worksheets immediately.
* Any calculated columns that reference the uploaded data recalculate automatically.
* Recommendations and budgets that depend on uploaded values refresh.
* An entry is added to the audit log showing who uploaded, when, which columns were affected, and whether override was enabled.
* If an employee email in your CSV doesn't match anyone in the cycle, that row is skipped and you're notified.

### Uploading currency data

Currency values in the CSV should be in the employee's local currency. The system converts them to the cycle's base currency using the exchange rates configured for the cycle. Equity values follow the cycle's equity currency setting if one is defined.

 ![](https://support.pave.com/api/attachments.redirect?id=b6841389-2a40-4913-810f-78b3373249ac " =966x596")

## Calculated columns (formulas)

### How it works


1. Go to **Configurations** > **Columns**.
2. Create a new custom column or edit an existing one.
3. In the column properties, enter a Handlebars formula in the **Formula** field. The formula can reference any other column in the cycle using `columns.[columnKey]`.
4. Use the live preview to test your formula against real employee data before saving.

 ![](https://support.pave.com/api/attachments.redirect?id=2dcf3077-5577-4d1c-8afa-954b8b1887d2 "left-50 =483x440")

### What formulas can do

Formulas support arithmetic, comparisons, conditionals, date operations, string manipulation, and formatting. Some common patterns:

* **Arithmetic**: `{{multiply columns.basePay 0.03}}` (3% of base pay)
* **Conditional**: `{{inlineIf (gt columns.performanceRating "Exceeds") 5000 2500}}` (different amounts based on rating)
* **Aggregation**: `{{add columns.salaryRaise columns.marketRaise}}` (sum two columns)
* **Date logic**: `{{monthDiff columns.startDate columns.cycleStartDate}}` (tenure in months)

For full syntax documentation, see our documentation on [Writing formulas with Handlebars](https://support.pave.com/en-us/articles/writing-formulas-with-handlebars-UY3vIXn2gv?draftPreview=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImViOTM2NWJmLWM5MzctNGQyZi1iNDA3LWE3YjU2MDNhZTQyOSIsImRvY3VtZW50SWQiOiJlZThiMzA2NS04MDIyLTQ3MjktOWI1YS05MDIxZGY2YWMzYTgiLCJjcmVhdGVkQXQiOiIyMDI2LTA1LTAxVDAwOjExOjE0LjI5MFoiLCJleHBpcmVzQXQiOiIyMDI2LTA1LTAxVDAxOjExOjE0LjI5MFoiLCJ0eXBlIjoiZHJhZnRfcHJldmlldyIsImlhdCI6MTc3NzU5NDI3NH0.3cl-T1u5zGF8dLTnYZckMChjsWXyn_PA7b_W6Zk2iOs).

### How calculated columns behave

* **Always read-only.** Planners cannot edit formula column values. The formula controls the output.
* **Automatically recalculate.** When any column referenced in the formula changes (from a planner edit, data upload, or another formula), the calculated column updates.
* **Available to other features.** Calculated column values can be used in budgets, smart flags, and other formulas.

## Things to know

* **Finalized cycles.** Data cannot be uploaded after a cycle is finalized. Calculated columns still display their values but inputs can no longer change.
* **Audit trail.** Every data upload is logged with the author, timestamp, columns affected, and override status.
* **Combining both approaches.** You can upload raw data (like performance ratings) and then build calculated columns on top of it (like a bonus amount that varies by rating). The calculated columns will recalculate whenever you re-upload.
