# Column Types

Columns store different data types, resulting in unique schemas for each column type.

## Column Type Schemas

### Currency


```json
currencyColumnKey: {
  type: "currency",
  name: string, // column name configured in Pave
  value: { // CurrencyValueObject
    X: string // where X is merit cycle currency code (ex: USD: "100")
  }
}
```

### Text


```json
textColumnKey: {
  type: "text",
  name: string, // column name configured in Pave
  value: string
}
```

### Number


```json
numberColumnKey: {
  type: "number",
  name: string, // column name configured in Pave
  value: string // string representation of number
}
```

### Date


```json
dateColumnKey: {
  type: "date",
  name: string, // column name configured in Pave
  value: string // yyyy-mm-dd
}
```

### Boolean


```json
booleanColumnKey: {
  type: "boolean",
  name: string, // column name configured in Pave
  value: boolean // true or false
}
```

### Composite


```json
compositeColumnKey: {
  type: "composite",
  name: string, // column name configured in Pave
  value: {
    subKey: string | number | date | CurrencyValueObject,
    ... // more subKey-values
  }
}
```

## Default Columns

Only columns configured for the merit cycle in Pave will be included in the response, regardless of visibility configurations in Pave.

Employees with empty values within Pave for a column will return `null` values in the API.

Here is the list of default columns in Pave:

| Key | Available via API | Column Type | SubKeys (when available) |
|  --- | --- | --- | --- |
| `annualBonusCash` | ✅ | currency |  |
| `annualBonusRaise` | ✅ | currency |  |
| `approvalChain` | ❌ |  |  |
| `approvalStatus` | ❌ |  |  |
| `basePay` | ✅ | currency |  |
| `basePayHourly` | ✅ | currency |  |
| `compBandMaxBasePay` | ✅ | currency |  |
| `compBandMaxTotalCash` | ✅ | currency |  |
| `compBandMinBasePay` | ✅ | currency |  |
| `compBandMinTotalCash` | ✅ | currency |  |
| `compBandTargetBasePay` | ✅ | currency |  |
| `compBandTargetTotalCash` | ✅ | currency |  |
| `country` | ✅ | text |  |
| `currentCompaRatio` | ✅ | number |  |
| `currentEquity` | ❌ |  |  |
| `currentOnTargetEarningsAmount` | ✅ | currency |  |
| `currentPlanner` | ✅ | text |  |
| `currentRangePenetration` | ✅ | number |  |
| `currentRangePenetrationTotalCash` | ✅ | number |  |
| `currentTotalAnnualCash` | ✅ | currency |  |
| `currentTotalAnnualCompensation` | ✅ | currency |  |
| `department` | ✅ | text |  |
| `division` | ✅ | text |  |
| `employee` | ✅ | composite | `fullName`, `jobLevel`, `jobTitle` |
| `equityBandRawValues` | ✅ | currency, number | `min`, `max`, `target` |
| `equityCurrentBandRawValues` | ✅ | currency, number | `min`, `max`, `target` |
| `equityPerformanceShares` | ✅ | currency, number |  |
| `equityPromotionShares` | ✅ | currency, number |  |
| `equityRefresherShares` | ✅ | currency, number |  |
| `ethnicity` | ✅ | text |  |
| `family` | ✅ | text |  |
| `gender` | ✅ | text |  |
| `isPaidHourly` | ✅ | boolean |  |
| `isPromotion` | ✅ | boolean |  |
| `jobCode` | ✅ | number, text |  |
| `lastCompAdjustmentDate` | ✅ | date |  |
| `latestBasePayEffectiveDate` | ✅ | date |  |
| `level` | ✅ | number, text |  |
| `location` | ✅ | text |  |
| `managerName` | ✅ | text |  |
| `marketCashRaise` | ✅ | currency |  |
| `metro` | ✅ | text |  |
| `newAnnualBonusCash` | ✅ | currency |  |
| `newAnnualBonusPercent` | ✅ | number |  |
| `newBase` | ✅ | currency |  |
| `newBaseHourly` | ✅ | currency |  |
| `newCompaRatio` | ✅ | number |  |
| `newEquityImpact` | ❌ |  |  |
| `newHireEquityBandRawValues` | ✅ | composite | `min`, `max`, `target` |
| `newHireEquityCurrentBandRawValues` | ✅ | composite | `min`, `max`, `target` |
| `newJobCode` | ✅ | text |  |
| `newJobFamily` | ✅ | text |  |
| `newJobLevel` | ✅ | number, text |  |
| `newJobTitle` | ✅ | text |  |
| `newOnTargetEarningsAmount` | ✅ | currency |  |
| `newPayMix` | ✅ | text |  |
| `newRangePenetration` | ✅ | number |  |
| `newRangePenetrationTotalCash` | ✅ | number |  |
| `newTotalAnnualCash` | ✅ | currency |  |
| `newTotalAnnualCompensation` | ✅ | currency |  |
| `newTotalAnnualCompensationWithOneTimeBonusCash` | ✅ | currency |  |
| `newVariable` | ✅ | currency |  |
| `oneTimeBonusCash` | ✅ | currency |  |
| `onTargetEarningsMarketCashRaise` | ✅ | currency |  |
| `onTargetEarningsPayMix` | ✅ | currency |  |
| `onTargetEarningsPromotionCashRaise` | ✅ | currency |  |
| `onTargetEarningsRaise` | ✅ | currency |  |
| `onTargetEarningsSalaryRaise` | ✅ | currency |  |
| `onTargetEarningsVariableRaise` | ✅ | currency |  |
| `payMix` | ✅ | text |  |
| `performance` | ✅ | text |  |
| `promotionCashRaise` | ✅ | currency |  |
| `raiseBasePercent` | ✅ | number |  |
| `raiseSharesValue` | ✅ | currency, number |  |
| `rewardLetterJobTitle` | ✅ | text |  |
| `salaryImpact` | ❌ |  |  |
| `salaryRaise` | ✅ | currency |  |
| `startDate` | ✅ | date |  |
| `targetOneTimeBonusCash` | ✅ | currency |  |
| `targetVariablePayPercent` | ✅ | number |  |
| `team` | ✅ | text |  |
| `tenure` | ✅ | date |  |
| `title` | ✅ | text |  |
| `totalCashCurrentCompaRatio` | ✅ | number |  |
| `totalCashImpact` | ❌ |  |  |
| `totalCashNewCompaRatio` | ✅ | number |  |
| `useOnTargetEarnings` | ✅ | boolean |  |
| `variablePay` | ✅ | currency |  |
| `variableRaise` | ✅ | currency |  |
| `vestedPercentage` | ✅ | number |  |
| `vestingSummary` | ❌ | composite |  |


## Custom Columns

Custom columns configured for a merit cycle will be available via the API. The key set in-app will be used in the API response.

## Important Notes

### Currencies

All currency fields are returned in the cycle currency.

### Recommendations

Recommendation values uploaded to a column are not available via the API.

### Hidden or Terminated Employees

Hidden or Terminated employees are not available via the API.