Set account exposure bounds through the API and review the custom-factor upload format in development.
Use this guide to constrain an account’s built-in asset-allocation exposure or a custom factor. Start with an existing organization, client account, and assigned portfolio. See the Customization guide for account setup and Optimizer factor bounds for factor names, units, and active-reference definitions.To set bounds in the app, use the Advisor guide: Set factor exposure bounds.
Custom-factor upload is in development. You can set bounds for built-in factors and custom factors already configured for your organization. Contact the Tilt team to request a new factor. The upload section documents its data format and replacement behavior.
The examples use API-key authentication. Replace the organization, client, and account placeholders with your own values. The ranges illustrate the request format; choose bounds for your portfolio.
curl --request GET \ --url https://api.tilt.now/api/v1/custom/org/{organization_uuid}/ \ --header 'X-Api-Key: <api-key>'
Read factor_values in the response. It contains the existing custom factor names and asset loadings. Built-in asset_allocation_* factors do not require an entry here.Get Organization API reference
The equity row allows 50% to 70% absolute exposure and an active difference of −3 to +3 percentage points. Both absolute and active ranges apply together. To bound an existing custom factor, use its exact configured name and loadings’ scale after confirming them with the Tilt team.Provide all four numeric bounds for each factor. Include the complete factor-bound list you want saved at this account scope: submitting the list replaces its existing rows. A non-empty account list takes precedence over portfolio and organization lists. See Configuration hierarchy before overriding inherited bounds.Update Client Account API reference
curl --request POST \ --url https://api.tilt.now/api/v1/custom/org/{organization_uuid}/clients/{client_uuid}/accounts/{account_uuid}/optimize/ \ --header 'X-Api-Key: <api-key>'
Check the optimized holdings against the saved loadings and both ranges. For each factor, sum portfolio weight multiplied by asset loading, then subtract the same calculation for the optimization benchmark to check active exposure. Saving configuration alone does not establish that an optimization can satisfy it.If a custom factor has no configured values, contact the Tilt team to confirm its setup. If built-in asset-class exposure data is unavailable, ask the team to confirm data availability. For an infeasible run, review the absolute and active ranges together with the account’s other constraints.Optimize Account Portfolio API reference
Custom-factor upload is in development. The example below documents the upload data format for planned self-service support. Contact the Tilt team to request a factor and confirm setup before submitting custom loadings.A custom factor has a name and a map from Tilt Asset IDs to numeric loadings. For a custom large-cap bucket, 1 identifies assets in the defined bucket and 0 identifies assets outside it. Its weighted exposure measures the portfolio allocation to that bucket.
This illustrative payload describes factor_values on Update Organization. The values map needs coverage across holdings, the optimization benchmark, and potential purchases. Missing custom asset loadings count as zero, which can understate bucket exposure.
Supplying factor_values replaces the organization’s entire custom-factor list. Retaining existing factors requires their names and complete values maps in the same request. Other accounts in the organization can use these loadings too; review their bounds before replacing a factor.
After the team confirms a custom factor is configured, use its exact name in the app or API bounds. A name entered in the bounds editor or a display label from monitoring does not create asset loadings.To request another Tilt-supplied factor or help defining a new one, send the team the details listed in Request a new factor.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Tilt","colors":{"primary":"#0D9373","light":"#07C983","dark":"#0D9373"},"logo":{"light":"https://mintcdn.com/tilt/CmDCDxwb3XgHwxNS/logo/tilt-logo-black.svg?fit=max\u0026auto=format\u0026n=CmDCDxwb3XgHwxNS\u0026q=85\u0026s=c712cd24d8c9812d3728e6b503fd56aa","dark":"https://mintcdn.com/tilt/CmDCDxwb3XgHwxNS/logo/tilt-logo-white.svg?fit=max\u0026auto=format\u0026n=CmDCDxwb3XgHwxNS\u0026q=85\u0026s=efb8bcdbe259904ba562c178ab70be50"},"favicon":"https://mintcdn.com/tilt/J3pxSIYjdOBRrTOF/favicon.png?fit=max\u0026auto=format\u0026n=J3pxSIYjdOBRrTOF\u0026q=85\u0026s=1d43655803c0b4d4f0bc9d321f854c15","api":{"mdx":{"server":"https://api.tilt.now"}},"navbar":{"links":[{"href":"mailto:contact@tilt.now","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://tilt.io"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/ridethetilt","x":"https://x.com/ridethetilt","instagram":"https://www.instagram.com/ridethetilt"}},"seo":{"metatags":{"canonical":"https://docs.tilt.io"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"tilt","hasAudioNarration":false,"actualSubdomain":"tilt","customDomains":["docs.tilt.now"],"gitSource":{"type":"github","owner":"delphia","repo":"tilt","deployBranch":"main","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae3c644f7fb2cc77b53ce7b","collectionId":"6d8b206e-a1c0-444d-97f3-fa3d79a47bf2","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae3c644f7fb2cc77b53ce7b"},"entitlements":{},"buildId":"6ae3c7e032fdfe8182ae205b","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"Portfolio Optimization","count":52},{"language":"default","tag":"Advisor","count":31},{"language":"default","tag":"Index Construction","count":21},{"language":"default","tag":"Tilt Agent","count":17},{"language":"default","tag":"Pulse","count":14},{"language":"default","tag":"REST API (design preview)","count":14},{"language":"default","tag":"Marketplace","count":11},{"language":"default","tag":"Getting started","count":10},{"language":"default","tag":"Metrics \u0026 Reporting","count":8},{"language":"default","tag":"Monitor your book","count":7}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"customization/configure-factor-bounds","slug":"/customization/configure-factor-bounds","pageMetadata":{"title":"Configure factor exposure bounds","description":"Set account exposure bounds through the API and review the custom-factor upload format in development.","href":"/customization/configure-factor-bounds"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Set account exposure bounds through the API and review the custom-factor upload format in development.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,..._provideComponents(),...props.components},{CodeBlock,Heading,Note,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Use this guide to constrain an account’s built-in asset-allocation exposure or a custom factor. Start with an existing organization, client account, and assigned portfolio. See the `,_jsx(_components.a,{href:`/customization/guide`,children:`Customization guide`}),` for account setup and `,_jsx(_components.a,{href:`/customization/factor-bounds`,children:`Optimizer factor bounds`}),` for factor names, units, and active-reference definitions.`]}),`\n`,_jsxs(_components.p,{children:[`To set bounds in the app, use the Advisor guide: `,_jsx(_components.a,{href:`/advisor/set-factor-exposure-bounds`,children:`Set factor exposure bounds`}),`.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Custom-factor upload is in development. You can set bounds for built-in factors and custom factors already configured for your organization. Contact the `,_jsx(_components.a,{href:`mailto:contact@tilt.now`,children:`Tilt team`}),` to request a new factor. The `,_jsx(_components.a,{href:`#custom-factor-uploads-in-development`,children:`upload section`}),` documents its data format and replacement behavior.`]})}),`\n`,_jsx(_components.p,{children:`The examples use API-key authentication. Replace the organization, client, and account placeholders with your own values. The ranges illustrate the request format; choose bounds for your portfolio.`}),`\n`,_jsx(Heading,{level:`2`,id:`1-inspect-the-organization’s-custom-factors`,children:`1. Inspect the organization’s custom factors`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --request`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` GET`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --url`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.tilt.now/api/v1/custom/org/{organization_uuid}/`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'X-Api-Key: \u003capi-key>'`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Read `,_jsx(_components.code,{children:`factor_values`}),` in the response. It contains the existing custom factor names and asset loadings. Built-in `,_jsx(_components.code,{children:`asset_allocation_*`}),` factors do not require an entry here.`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.a,{href:`/api-reference/endpoint/get-org-details`,children:`Get Organization API reference`})}),`\n`,_jsx(Heading,{level:`2`,id:`2-set-the-account’s-exposure-bounds`,children:`2. Set the account’s exposure bounds`}),`\n`,_jsxs(_components.p,{children:[`Set bounds in `,_jsx(_components.code,{children:`customization_config.factor_exposure_bounds`}),`. This example uses the built-in equity factor, which requires no custom upload:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`17`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`17`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --request`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` PATCH`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --url`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.tilt.now/api/v1/custom/org/{organization_uuid}/clients/{client_uuid}/accounts/{account_uuid}`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Content-Type: application/json'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'X-Api-Key: \u003capi-key>'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --data`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"customization_config\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"factor_exposure_bounds\": [`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"factor\": \"asset_allocation_equity\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"min_bound\": \"0.50\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"max_bound\": \"0.70\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"min_active_bound\": \"-0.03\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"max_active_bound\": \"0.03\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`The equity row allows 50% to 70% absolute exposure and an active difference of −3 to +3 percentage points. Both absolute and active ranges apply together. To bound an existing custom factor, use its exact configured name and loadings’ scale after confirming them with the Tilt team.`}),`\n`,_jsxs(_components.p,{children:[`Provide all four numeric bounds for each factor. Include the complete factor-bound list you want saved at this account scope: submitting the list replaces its existing rows. A non-empty account list takes precedence over portfolio and organization lists. See `,_jsx(_components.a,{href:`/customization/guide#configuration-hierarchy`,children:`Configuration hierarchy`}),` before overriding inherited bounds.`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.a,{href:`/api-reference/endpoint/patch-client-account`,children:`Update Client Account API reference`})}),`\n`,_jsx(Heading,{level:`2`,id:`3-run-and-inspect-the-optimization`,children:`3. Run and inspect the optimization`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --request`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --url`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.tilt.now/api/v1/custom/org/{organization_uuid}/clients/{client_uuid}/accounts/{account_uuid}/optimize/`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'X-Api-Key: \u003capi-key>'`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Check the optimized holdings against the saved loadings and both ranges. For each factor, sum portfolio weight multiplied by asset loading, then subtract the same calculation for the optimization benchmark to check active exposure. Saving configuration alone does not establish that an optimization can satisfy it.`}),`\n`,_jsxs(_components.p,{children:[`If a custom factor has no configured values, contact the `,_jsx(_components.a,{href:`mailto:contact@tilt.now`,children:`Tilt team`}),` to confirm its setup. If built-in asset-class exposure data is unavailable, ask the team to confirm data availability. For an infeasible run, review the absolute and active ranges together with the account’s other constraints.`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.a,{href:`/api-reference/endpoint/post-account-optimize`,children:`Optimize Account Portfolio API reference`})}),`\n`,_jsx(Heading,{level:`2`,id:`custom-factor-uploads-in-development`,children:`Custom-factor uploads (in development)`}),`\n`,_jsx(_components.p,{children:`Custom-factor upload is in development. The example below documents the upload data format for planned self-service support. Contact the Tilt team to request a factor and confirm setup before submitting custom loadings.`}),`\n`,_jsxs(_components.p,{children:[`A custom factor has a name and a map from Tilt Asset IDs to numeric loadings. For a custom large-cap bucket, `,_jsx(_components.code,{children:`1`}),` identifies assets in the defined bucket and `,_jsx(_components.code,{children:`0`}),` identifies assets outside it. Its weighted exposure measures the portfolio allocation to that bucket.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`12`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`12`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"factor_values\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"custom_large_cap\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"values\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"\u003casset-id-in-large-cap-bucket>\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"1.0\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"\u003casset-id-outside-large-cap-bucket>\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"0.0\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"$USD\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"0.0\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`This illustrative payload describes `,_jsx(_components.code,{children:`factor_values`}),` on `,_jsx(_components.a,{href:`/api-reference/endpoint/update-org-details`,children:`Update Organization`}),`. The values map needs coverage across holdings, the optimization benchmark, and potential purchases. Missing custom asset loadings count as zero, which can understate bucket exposure.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Supplying `,_jsx(_components.code,{children:`factor_values`}),` replaces the organization’s entire custom-factor list. Retaining existing factors requires their names and complete values maps in the same request. Other accounts in the organization can use these loadings too; review their bounds before replacing a factor.`]})}),`\n`,_jsx(_components.p,{children:`After the team confirms a custom factor is configured, use its exact name in the app or API bounds. A name entered in the bounds editor or a display label from monitoring does not create asset loadings.`}),`\n`,_jsxs(_components.p,{children:[`To request another Tilt-supplied factor or help defining a new one, send the team the details listed in `,_jsx(_components.a,{href:`/customization/factor-bounds#request-a-new-factor`,children:`Request a new factor`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Configure factor exposure bounds","description":"Set account exposure bounds through the API and review the custom-factor upload format in development.","href":"/customization/configure-factor-bounds"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"1. Inspect the organization’s custom factors","slug":"1-inspect-the-organization’s-custom-factors","depth":2,"children":[]},{"title":"2. Set the account’s exposure bounds","slug":"2-set-the-account’s-exposure-bounds","depth":2,"children":[]},{"title":"3. Run and inspect the optimization","slug":"3-run-and-inspect-the-optimization","depth":2,"children":[]},{"title":"Custom-factor uploads (in development)","slug":"custom-factor-uploads-in-development","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"tilt","siteName":"Tilt","title":"Configure factor exposure bounds - Tilt","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-29T17:04:29.508Z","originalFileLocation":"customization/configure-factor-bounds.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Set account exposure bounds through the API and review the custom-factor upload format in development.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Tilt\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/tilt/ll1NQKfwX50eMlxC/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/tilt/ll1NQKfwX50eMlxC/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/tilt/ll1NQKfwX50eMlxC/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/tilt/ll1NQKfwX50eMlxC/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/tilt/ll1NQKfwX50eMlxC/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/tilt/ll1NQKfwX50eMlxC/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/tilt/ll1NQKfwX50eMlxC/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/tilt/ll1NQKfwX50eMlxC/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/tilt/ll1NQKfwX50eMlxC/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Configure factor exposure bounds - Tilt\">\u003cmeta data-mint-head property=\"og:description\" content=\"Set account exposure bounds through the API and review the custom-factor upload format in development.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Tilt\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.tilt.io/customization/configure-factor-bounds\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://tilt.mintlify.app/_mintlify/api/og/v2?division=Factor+exposure\u0026amp;title=Configure+factor+exposure+bounds\u0026amp;description=Set+account+exposure+bounds+through+the+API+and+review+the+custom-factor+upload+format+in+development.\u0026amp;theme=3ba79756f8550f1bcc8240bd\u0026amp;signature=c38a32d26f8e5954ac5f3580a4c0f808483b31acab05cc380e7cc74df0e2a088\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Configure factor exposure bounds - Tilt\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Set account exposure bounds through the API and review the custom-factor upload format in development.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://tilt.mintlify.app/_mintlify/api/og/v2?division=Factor+exposure\u0026amp;title=Configure+factor+exposure+bounds\u0026amp;description=Set+account+exposure+bounds+through+the+API+and+review+the+custom-factor+upload+format+in+development.\u0026amp;theme=3ba79756f8550f1bcc8240bd\u0026amp;signature=c38a32d26f8e5954ac5f3580a4c0f808483b31acab05cc380e7cc74df0e2a088\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/tilt/ll1NQKfwX50eMlxC/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Tilt\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0D9373\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.tilt.io/customization/configure-factor-bounds\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/customization/configure-factor-bounds.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.tilt.io/#organization\",\"name\":\"Tilt\",\"url\":\"https://docs.tilt.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/tilt/CmDCDxwb3XgHwxNS/logo/tilt-logo-black.svg?fit=max\u0026auto=format\u0026n=CmDCDxwb3XgHwxNS\u0026q=85\u0026s=c712cd24d8c9812d3728e6b503fd56aa\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.tilt.io#website\",\"name\":\"Tilt\",\"url\":\"https://docs.tilt.io\",\"publisher\":{\"@id\":\"https://docs.tilt.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.tilt.io/customization/configure-factor-bounds#webpage\",\"url\":\"https://docs.tilt.io/customization/configure-factor-bounds\",\"name\":\"Configure factor exposure bounds\",\"description\":\"Set account exposure bounds through the API and review the custom-factor upload format in development.\",\"dateModified\":\"2026-10-29T17:04:29.508Z\",\"isPartOf\":{\"@id\":\"https://docs.tilt.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.tilt.io/customization/configure-factor-bounds#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.tilt.io/customization/configure-factor-bounds#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Tilt\",\"item\":\"https://docs.tilt.io\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Configure factor exposure bounds\",\"item\":\"https://docs.tilt.io/customization/configure-factor-bounds\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.tilt.io/customization/configure-factor-bounds#article\",\"headline\":\"Configure factor exposure bounds\",\"name\":\"Configure factor exposure bounds\",\"description\":\"Set account exposure bounds through the API and review the custom-factor upload format in development.\",\"url\":\"https://docs.tilt.io/customization/configure-factor-bounds\",\"mainEntityOfPage\":{\"@id\":\"https://docs.tilt.io/customization/configure-factor-bounds#webpage\"},\"dateModified\":\"2026-10-29T17:04:29.508Z\",\"publisher\":{\"@id\":\"https://docs.tilt.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.tilt.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Tilt\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Tilt","nav":{"global":null,"tabs":[{"tab":"Tilt Agent","pages":[{"title":"Tilt Agent","href":"/tilt-agent/overview"}]},{"tab":"Advisor","pages":[{"title":"Advisor","href":"/advisor/overview"}]},{"tab":"Index Construction","pages":[{"title":"Index Construction","href":"/index-construction/overview"}]},{"tab":"Portfolio Optimization","groups":[{"group":"Getting started","pages":[{"title":"Customization guide","description":"An introduction to setting up and optimizing a client portfolio.","href":"/customization/guide"}]},{"group":"Factor exposure","pages":[{"title":"Configure factor exposure bounds","href":"/customization/configure-factor-bounds"},{"title":"Optimizer factor bounds","description":"Look up built-in allocation factors, custom loadings, exposure units, and benchmark-relative bounds.","href":"/customization/factor-bounds"}]},{"group":"Organization","pages":[{"title":"Get Organization","openapi":"GET /api/v1/custom/org/{organization_uuid}/","href":"/api-reference/endpoint/get-org-details"},{"title":"Update Organization","openapi":"PATCH /api/v1/custom/org/{organization_uuid}/","href":"/api-reference/endpoint/update-org-details"},{"title":"Get Organization Risk Model","openapi":"GET /api/v1/custom/org/{organization_uuid}/risk_model","href":"/api-reference/endpoint/get-org-risk-model"},{"title":"Create Organization Risk Model","openapi":"POST /api/v1/custom/org/{organization_uuid}/risk_model","href":"/api-reference/endpoint/post-org-risk-model"},{"title":"Update Organization Risk Model","openapi":"PUT /api/v1/custom/org/{organization_uuid}/risk_model","href":"/api-reference/endpoint/put-org-risk-model"}]},{"group":"Asset Classes \u0026 Benchmarks","pages":[{"title":"Get Benchmark Index","openapi":"GET /api/v1/custom/benchmark_indexes/{benchmark_identifier}/","href":"/api-reference/endpoint/get-benchmark-index"},{"title":"Get Benchmark Indexes","openapi":"GET /api/v1/custom/benchmark_indexes/","href":"/api-reference/endpoint/get-benchmark-indexes"},{"title":"Get Asset Classes","openapi":"GET /api/v1/custom/org/{organization_uuid}/asset_classes/","href":"/api-reference/endpoint/get-asset-classes"},{"title":"Get Asset Class","openapi":"GET /api/v1/custom/org/{organization_uuid}/asset_classes/{asset_class_uuid}/","href":"/api-reference/endpoint/get-asset-class"},{"title":"Create Asset Class","openapi":"POST /api/v1/custom/org/{organization_uuid}/asset_classes/","href":"/api-reference/endpoint/post-asset-class"},{"title":"Update Asset Class","openapi":"PATCH /api/v1/custom/org/{organization_uuid}/asset_classes/{asset_class_uuid}/","href":"/api-reference/endpoint/patch-asset-classes"},{"title":"Delete Asset Class","openapi":"DELETE /api/v1/custom/org/{organization_uuid}/asset_classes/{asset_class_uuid}/","href":"/api-reference/endpoint/delete-asset-class"}]},{"group":"Portfolios","pages":[{"title":"Get Portfolio Configs","openapi":"GET /api/v1/custom/org/{organization_uuid}/portfolio_configs/","href":"/api-reference/endpoint/get-portfolio-configs"},{"title":"Get Portfolio Config","openapi":"GET /api/v1/custom/org/{organization_uuid}/portfolio_configs/{config_uuid}/","href":"/api-reference/endpoint/get-portfolio-config"},{"title":"Create Portfolio Config","openapi":"POST /api/v1/custom/org/{organization_uuid}/portfolio_configs/","href":"/api-reference/endpoint/post-portfolio-config"},{"title":"Update Portfolio Config","openapi":"PATCH /api/v1/custom/org/{organization_uuid}/portfolio_configs/{config_uuid}/","href":"/api-reference/endpoint/patch-portfolio-configs"},{"title":"Delete Portfolio Config","openapi":"DELETE /api/v1/custom/org/{organization_uuid}/portfolio_configs/{config_uuid}/","href":"/api-reference/endpoint/delete-portfolio-config"}]},{"group":"Clients","pages":[{"title":"Get Clients","openapi":"GET /api/v1/custom/org/{organization_uuid}/clients/","href":"/api-reference/endpoint/get-org-client"},{"title":"Get Client","openapi":"GET /api/v1/custom/org/{organization_uuid}/clients/{uuid}/","href":"/api-reference/endpoint/get-client-details"},{"title":"Create Client","openapi":"POST /api/v1/custom/org/{organization_uuid}/clients/","href":"/api-reference/endpoint/post-org-client"},{"title":"Update Client","openapi":"PATCH /api/v1/custom/org/{organization_uuid}/clients/{uuid}/","href":"/api-reference/endpoint/put-client-update"},{"title":"Delete Client","openapi":"POST /api/v1/custom/org/{organization_uuid}/clients/{uuid}/delete/","href":"/api-reference/endpoint/delete-client"}]},{"group":"Accounts","pages":[{"title":"Create Client Account","openapi":"POST /api/v1/custom/org/{organization_uuid}/clients/{client_uuid}/accounts/","href":"/api-reference/endpoint/post-client-account"},{"title":"Update Client Account","openapi":"PATCH /api/v1/custom/org/{organization_uuid}/clients/{client_uuid}/accounts/{account_uuid}","href":"/api-reference/endpoint/patch-client-account"}]},{"group":"Portfolio Customization","pages":[{"title":"Optimize Account Portfolio","openapi":"POST /api/v1/custom/org/{organization_uuid}/clients/{client_uuid}/accounts/{account_uuid}/optimize/","href":"/api-reference/endpoint/post-account-optimize"},{"title":"Create Account Trade Proposal","openapi":"POST /api/v1/custom/org/{organization_uuid}/clients/{client_uuid}/accounts/{account_uuid}/proposal/","href":"/api-reference/endpoint/post-account-proposal"}]},{"group":"Dynamic Rules","pages":[{"title":"Dynamic rules guide","href":"/dynamic-rules/guide"},{"title":"Get Dynamic Rules Schema","openapi":"GET /api/v1/custom/org/{organization_uuid}/dynamic_rules/schema/","href":"/api-reference/endpoint/get-dynamic-rules-schema"},{"title":"Validate Expression","openapi":"POST /api/v1/custom/org/{organization_uuid}/dynamic_rules/validate/","href":"/api-reference/endpoint/post-dynamic-rules-validate"},{"title":"Simulate Dynamic Rules","openapi":"POST /api/v1/custom/org/{organization_uuid}/dynamic_rules/simulate/","href":"/api-reference/endpoint/post-dynamic-rules-simulate"},{"title":"Create Preview Job","openapi":"POST /api/v1/custom/org/{organization_uuid}/dynamic_rules/preview/","href":"/api-reference/endpoint/post-dynamic-rules-preview"},{"title":"Get Preview Job Result","openapi":"GET /api/v1/custom/org/{organization_uuid}/dynamic_rules/preview/{job_id}/","href":"/api-reference/endpoint/get-dynamic-rules-preview-job"},{"title":"List Preview Jobs","openapi":"GET /api/v1/custom/org/{organization_uuid}/dynamic_rules/preview/jobs/","href":"/api-reference/endpoint/list-dynamic-rules-preview-jobs"}]},{"group":"Backtesting","pages":[{"title":"Create Account Backtest","openapi":"POST /api/v1/custom/org/{organization_uuid}/clients/{client_uuid}/accounts/{account_uuid}/backtests/","href":"/api-reference/endpoint/post-account-backtest"},{"title":"List Account Backtests","openapi":"GET /api/v1/custom/org/{organization_uuid}/clients/{client_uuid}/accounts/{account_uuid}/backtests/","href":"/api-reference/endpoint/list-account-backtests"},{"title":"Get Account Backtest Result","openapi":"GET /api/v1/custom/org/{organization_uuid}/clients/{client_uuid}/accounts/{account_uuid}/backtests/{job_id}/","href":"/api-reference/endpoint/get-account-backtest-result"}]},{"group":"Bulk Customization","pages":[{"title":"Create Bulk Optimization Task","openapi":"POST /api/v1/custom/org/{organization_uuid}/optimized_proposals/","href":"/api-reference/endpoint/post-bulk-client-optimize-proposal"},{"title":"Get Optimization Task Status","openapi":"POST /api/v1/custom/org/{organization_uuid}/optimized_proposals/status/","href":"/api-reference/endpoint/get-bulk-optimization-status"},{"title":"Get Optimization Task Result","openapi":"GET /api/v1/custom/org/{organization_uuid}/optimized_proposals/{proposal_uuid}/","href":"/api-reference/endpoint/get-optimization-task-result"},{"title":"Search Optimization Proposals","openapi":"POST /api/v1/custom/org/{organization_uuid}/optimized_proposals/list/","href":"/api-reference/endpoint/search-optimized-proposals"}]},{"group":"Tickers","pages":[{"title":"Search Tickers","openapi":"api-reference/openapi-schema.json GET /api/v1/tickers/search","href":"/api-reference/endpoint/search-tickers"}]},{"group":"Metrics \u0026 Reporting","pages":[{"title":"Get Aggregate Holdings","openapi":"GET /api/v1/custom/org/{organization_uuid}/reports/holdings/","href":"/api-reference/endpoint/get-org-reports-holdings"},{"title":"Get Aggregate Holdings by Constituents","openapi":"GET /api/v1/custom/org/{organization_uuid}/reports/holdings/constituents/","href":"/api-reference/endpoint/get-org-reports-holdings-constituents"},{"title":"Get Optimization Metrics","openapi":"GET /api/v1/custom/org/{organization_uuid}/reports/optimizations/","href":"/api-reference/endpoint/get-org-reports-optimizations"},{"title":"Get Aggregate Trade Proposals","openapi":"GET /api/v1/custom/org/{organization_uuid}/reports/proposals/","href":"/api-reference/endpoint/get-org-reports-proposals"},{"title":"Get Aggregate Proposals by Constituent","openapi":"GET /api/v1/custom/org/{organization_uuid}/reports/proposals/constituents/","href":"/api-reference/endpoint/get-org-reports-proposals-constituents"},{"title":"Get Requests","openapi":"GET /api/v1/custom/org/{organization_uuid}/reports/requests/","href":"/api-reference/endpoint/get-org-reports-requests"},{"title":"Get Aggregate Request Metrics","openapi":"GET /api/v1/custom/org/{organization_uuid}/reports/requests/aggregate/","href":"/api-reference/endpoint/get-org-reports-requests-aggregate"},{"title":"Get Ticker Constraints","openapi":"GET /api/v1/custom/org/{organization_uuid}/reports/ticker_constraints/","href":"/api-reference/endpoint/get-org-reports-ticker-constraints"}]}]},{"tab":"Pulse","pages":[{"title":"Pulse","href":"/backchannel/introduction"}]},{"tab":"Marketplace","pages":[{"title":"Marketplace","href":"/introduction"}]}]},"title":"Configure factor exposure bounds - Tilt","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":[],"chunks":[]}