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

# Optimizer factor bounds

> Look up built-in allocation factors, custom loadings, exposure units, and benchmark-relative bounds.

A factor loading is a number assigned to an asset. The optimizer calculates portfolio exposure by multiplying each asset's loading by its portfolio weight and adding the results. Factor exposure bounds constrain that total.

Use [Configure factor exposure bounds](https://docs.tilt.now/customization/configure-factor-bounds.md) to save bounds through the API and look up the custom-factor upload format.

You can also [set factor exposure bounds in the app](https://docs.tilt.now/advisor/set-factor-exposure-bounds.md) for an account, model, or firm.

> [!NOTE]
>
> Custom-factor upload is in development. Use built-in factors or custom factors already configured for your organization. Contact the [Tilt team](mailto:contact@tilt.now) to request a new factor and confirm its availability.

## Built-in allocation factors

Tilt supplies these asset-allocation loadings when asset-class exposure data is available. You can reference their exact names in `customization_config.factor_exposure_bounds` without uploading custom values.

| Factor name | Exposure measured |
| - | - |
| `asset_allocation_equity` | Equity. |
| `asset_allocation_fixed_income` | Fixed income. |
| `asset_allocation_commodity` | Commodities. |
| `asset_allocation_currency` | Currency. |
| `asset_allocation_alternative` | Alternatives. |
| `asset_allocation_cash` | Cash. |
| `asset_allocation_private_equity` | Private equity. |
| `asset_allocation_crypto` | Crypto. |
| `asset_allocation_unknown` | Unclassified exposure. |

These loadings are fractions: a loading of `1` means 100% exposure to that asset-class type, and `0.6` means 60%. Tilt uses the latest asset-class exposure record on or before the optimization date. Cash receives a cash loading of `1`. For a direct equity holding without an exposure record, Tilt assigns an equity loading of `1`; other uncovered assets receive an unknown loading of `1`.

A holding can contribute to several allocation factors through its exposure record. A 10% portfolio weight in a fund with an equity loading of `0.6` contributes 6% equity exposure.

If an optimization reports that asset-class exposure data is unavailable, contact [Tilt Support](mailto:contact@tilt.now) to confirm data availability before using these factors.

## Custom factor names and loadings

Custom factors come from your organization's `factor_values`. Each entry has a `name` and a `values` map from Tilt Asset IDs to numeric loadings. Use that exact `name` as the bound's `factor` value. [Get Organization](https://docs.tilt.now/api-reference/endpoint/get-org-details.md) returns your configured factors. The [upload format](https://docs.tilt.now/customization/configure-factor-bounds.md#custom-factor-uploads-in-development) documents the integration contract for custom-factor upload, which is in development.

The `asset_allocation_` prefix is reserved for Tilt's built-in factors. Custom factor names use a different prefix, such as `custom_large_cap`.

The custom loading definition determines its scale and direction. A binary membership factor uses `1` for assets in the bucket and `0` for assets outside it. For a continuous score, confirm what higher and lower values mean before choosing bounds. The optimizer treats missing custom asset loadings as zero, so confirm coverage across the account's holdings and optimization benchmark, including assets it may buy.

## Absolute and active bounds

Each entry in `customization_config.factor_exposure_bounds` requires these fields:

| Field | Meaning |
| - | - |
| `factor` | A built-in allocation factor name or the exact name of an uploaded custom factor. |
| `min_bound` | Minimum exposure of the optimized portfolio. |
| `max_bound` | Maximum exposure of the optimized portfolio. |
| `min_active_bound` | Minimum optimized exposure minus optimization-benchmark exposure. |
| `max_active_bound` | Maximum optimized exposure minus optimization-benchmark exposure. |

Absolute and active bounds use the loadings' units. For allocation and binary membership factors, `0.05` means 5% absolute exposure or a 5 percentage point active difference. For a continuous score, the bounds use that score's scale.

For example, a portfolio with 65% equity exposure and an optimization benchmark with 60% equity exposure has active equity exposure of `0.05`. It meets absolute bounds of `0.50` to `0.70`, but exceeds an active maximum of `0.03`.

The active reference is the benchmark-weight portfolio supplied to the optimizer for the account. Check that reference before comparing the result with a monitoring policy, which can select a different benchmark. [Models and benchmarks](https://docs.tilt.now/advisor/models-and-benchmarks.md) explains the portfolio references used in Tilt.

## Size and capitalization buckets

Monitoring's Characteristics factor catalog labels `sze_score` as **Size**. Its presence in that catalog does not make it an accepted optimizer factor name. Custom optimizer factors require organization-configured loadings, and their scale and direction follow those supplied values.

The built-in allocation factors above do not include large-cap, mid-cap, or small-cap buckets. A custom bucket uses binary asset loadings to bound its weighted exposure; contact the Tilt team to request one. A continuous Size score measures a different quantity: a bound on its average score does not specify a percentage allocation to a capitalization bucket.

## Request a new factor

Contact the [Tilt team](mailto:contact@tilt.now) to request an additional Tilt-supplied factor or help defining custom loadings. Include:

* The exposure you want to control, such as a large-cap allocation or a Size score.
* The intended definition, units, and direction, including capitalization thresholds for a bucket.
* The asset universe and any data source or existing loadings you want to use.
* Your proposed absolute and active ranges, and the benchmark for the active comparison.

Confirm the supported factor name and loading definition with the team before configuring bounds for a requested factor.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.