Rules an option must satisfy, such as budget limits and shares that total 100%.
Some options may be off the table whatever their value: “we cannot spend more than $500k up front" or "we cannot accept more than a $1M loss”. Set these in Analyst tools → Constraints.
Each rule is tested on 2,000 simulated futures per option, and the app reports how often it fails. The recommendation only considers options that meet the “must” rules.
Templates include rules that cannot be removed, such as shares that must not add to more than 100% and values that should not go below zero. Rules implied by an estimate (a share between 0% and 100%, absolute limits) apply automatically.
Use constraints for hard limits on losses or spend. Use risk appetite for how much shortfall you tolerate.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Meerie","colors":{"primary":"#166ee1","light":"#3b8cf0","dark":"#166ee1"},"appearance":{"default":"dark"},"navbar":{"primary":{"type":"button","label":"Open the app","href":"https://di.meerietechnology.com"}},"footer":{"socials":{"github":"https://github.com/MeerieTech"}},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"meerie","hasAudioNarration":false,"actualSubdomain":"meerie","customDomains":[],"gitSource":{"type":"github","owner":"meerietech","repo":"di-documentation","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":"","_id":"6aead20988c6d638aac879f4"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aead24f88c6d638aac87e5a","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"default","tag":"Advanced","count":6},{"language":"default","tag":"3 · Estimate","count":6},{"language":"default","tag":"MCP guides","count":5},{"language":"default","tag":"Tools","count":4},{"language":"default","tag":"5 · Analyze the results","count":3},{"language":"default","tag":"Start","count":2},{"language":"default","tag":"Reference","count":2},{"language":"default","tag":"6 · Revise","count":2},{"language":"default","tag":"2 · Draw the influence diagram","count":2},{"language":"default","tag":"Best practice","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"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":"rbac-expansion","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":"full-page-search","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":"turbopuffer-dual-write","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},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"advanced/constraints","slug":"/advanced/constraints","pageMetadata":{"title":"Constraints","description":"Rules an option must satisfy, such as budget limits and shares that total 100%.","href":"/advanced/constraints"},"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: \"Rules an option must satisfy, such as budget limits and shares that total 100%.\"\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`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Heading,Table,Tip}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Some options may be off the table whatever their value: “we cannot spend more than `,`$500k up front\" or \"we cannot accept more than a $`,`1M loss”. Set these in `,_jsx(_components.strong,{children:`Analyst tools → Constraints`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`must-and-should`,children:`Must and should`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`What happens when it fails`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Must`})}),_jsx(_components.td,{children:`The run stops, or the option is ruled out`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Should`})}),_jsx(_components.td,{children:`A warning is shown`})]})]})]}),`\n`,_jsx(_components.p,{children:`Each rule is tested on 2,000 simulated futures per option, and the app reports how often it fails. The recommendation only considers options that meet the “must” rules.`}),`\n`,_jsx(Heading,{level:`2`,id:`built-in-rules`,children:`Built-in rules`}),`\n`,_jsx(_components.p,{children:`Templates include rules that cannot be removed, such as shares that must not add to more than 100% and values that should not go below zero. Rules implied by an estimate (a share between 0% and 100%, absolute limits) apply automatically.`}),`\n`,_jsxs(Tip,{children:[`Use constraints for hard limits on losses or spend. Use `,_jsx(_components.a,{href:`/analyze/win-criteria`,children:`risk appetite`}),` for how much shortfall you tolerate.`]})]})}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":"Constraints","description":"Rules an option must satisfy, such as budget limits and shares that total 100%.","href":"/advanced/constraints"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Must and should","slug":"must-and-should","depth":2,"children":[]},{"title":"Built-in rules","slug":"built-in-rules","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"meerie","siteName":"Meerie","title":"Constraints - Meerie","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-04T06:36:14.989Z","originalFileLocation":"advanced/constraints.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=\"dark\"}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=\"Rules an option must satisfy, such as budget limits and shares that total 100%.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Meerie\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/meerie/_generated/favicon/apple-touch-icon.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/meerie/_generated/favicon/favicon-32x32.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/meerie/_generated/favicon/favicon-16x16.png?v=3\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/meerie/_generated/favicon/favicon.ico?v=3\">\u003cmeta data-mint-head property=\"og:title\" content=\"Constraints - Meerie\">\u003cmeta data-mint-head property=\"og:description\" content=\"Rules an option must satisfy, such as budget limits and shares that total 100%.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Meerie\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://meerie.mintlify.app/advanced/constraints\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://meerie.mintlify.app/_mintlify/api/og/v2?division=Advanced\u0026amp;title=Constraints\u0026amp;description=Rules+an+option+must+satisfy%2C+such+as+budget+limits+and+shares+that+total+100%25.\u0026amp;theme=4911f06bbe1a7c5fad89b747\u0026amp;signature=d8e61bf24f950a5655772dd6cc97191657255b214ee72101f9c467596ec41dbd\">\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=\"Constraints - Meerie\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Rules an option must satisfy, such as budget limits and shares that total 100%.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://meerie.mintlify.app/_mintlify/api/og/v2?division=Advanced\u0026amp;title=Constraints\u0026amp;description=Rules+an+option+must+satisfy%2C+such+as+budget+limits+and+shares+that+total+100%25.\u0026amp;theme=4911f06bbe1a7c5fad89b747\u0026amp;signature=d8e61bf24f950a5655772dd6cc97191657255b214ee72101f9c467596ec41dbd\">\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=\"https://mintlify.s3.us-west-1.amazonaws.com/meerie/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Meerie\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#166ee1\">\u003clink data-mint-head rel=\"canonical\" href=\"https://meerie.mintlify.app/advanced/constraints\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/advanced/constraints.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://meerie.mintlify.app/#organization\",\"name\":\"Meerie\",\"url\":\"https://meerie.mintlify.app\"},{\"@type\":\"WebSite\",\"@id\":\"https://meerie.mintlify.app#website\",\"name\":\"Meerie\",\"url\":\"https://meerie.mintlify.app\",\"publisher\":{\"@id\":\"https://meerie.mintlify.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://meerie.mintlify.app/advanced/constraints#webpage\",\"url\":\"https://meerie.mintlify.app/advanced/constraints\",\"name\":\"Constraints\",\"description\":\"Rules an option must satisfy, such as budget limits and shares that total 100%.\",\"dateModified\":\"2026-11-04T06:36:14.989Z\",\"isPartOf\":{\"@id\":\"https://meerie.mintlify.app#website\"},\"breadcrumb\":{\"@id\":\"https://meerie.mintlify.app/advanced/constraints#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://meerie.mintlify.app/advanced/constraints#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Advanced\",\"item\":\"https://meerie.mintlify.app/advanced/formulas\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Constraints\",\"item\":\"https://meerie.mintlify.app/advanced/constraints\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://meerie.mintlify.app/advanced/constraints#article\",\"headline\":\"Constraints\",\"name\":\"Constraints\",\"description\":\"Rules an option must satisfy, such as budget limits and shares that total 100%.\",\"url\":\"https://meerie.mintlify.app/advanced/constraints\",\"mainEntityOfPage\":{\"@id\":\"https://meerie.mintlify.app/advanced/constraints#webpage\"},\"dateModified\":\"2026-11-04T06:36:14.989Z\",\"publisher\":{\"@id\":\"https://meerie.mintlify.app/#organization\"},\"isPartOf\":{\"@id\":\"https://meerie.mintlify.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Meerie\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Meerie","nav":{"global":null,"groups":[{"group":"Start","pages":[{"title":"Meerie Docs","href":"/index"},{"title":"The six steps at a glance","href":"/journey/overview"}]},{"group":"1 · Frame the decision","pages":[{"title":"How to create a decision","href":"/frame/create-decision"}]},{"group":"2 · Draw the influence diagram","pages":[{"title":"How to build an influence diagram","href":"/structure/influence-diagram"},{"title":"Types of nodes in the influence diagram","href":"/structure/node-types"}]},{"group":"3 · Estimate","pages":[{"title":"How to set estimates and notes","href":"/estimate/set-estimates"},{"title":"Why ranges, not single numbers","href":"/estimate/why-ranges"},{"title":"Choosing how to describe an estimate","href":"/estimate/describe-estimates"},{"title":"Bounded shapes","href":"/estimate/bounded-shapes"},{"title":"Skewed and percentage shapes","href":"/estimate/skewed-shapes"},{"title":"Correlation","href":"/estimate/correlation"}]},{"group":"4 · Simulate the futures","pages":[{"title":"Monte Carlo simulation","href":"/simulate/monte-carlo"}]},{"group":"5 · Analyze the results","pages":[{"title":"How to set up win criteria","href":"/analyze/win-criteria"},{"title":"How to read the results","href":"/analyze/read-results"},{"title":"Reading the numbers","href":"/analyze/reading-numbers"}]},{"group":"6 · Revise","pages":[{"title":"Sensitivity and value of information","href":"/revise/sensitivity-voi"},{"title":"How to revise","href":"/revise/revise"}]},{"group":"Tools","pages":[{"title":"How to use Dave, the AI analyst","href":"/tools/dave"},{"title":"How to use notes","href":"/tools/notes"},{"title":"How to share and manage access","href":"/tools/sharing"},{"title":"How to connect to MCP","href":"/tools/mcp"}]},{"group":"MCP guides","pages":[{"title":"Ask Claude about a decision","href":"/mcp/explore-decision"},{"title":"Build or change a model with Claude","href":"/mcp/build-model"},{"title":"Run and compare simulations with Claude","href":"/mcp/run-simulations"},{"title":"Research an input with Claude","href":"/mcp/research"},{"title":"Write memos and documents with Claude","href":"/mcp/write-up"}]},{"group":"Advanced","pages":[{"title":"Formulas and model code","description":"Write calculations, use the function library, and see the code the engine runs.","href":"/advanced/formulas"},{"title":"Constraints","href":"/advanced/constraints"},{"title":"Stress tests and scenarios","description":"Rerun the simulation under a stated what-if and compare it with the base run.","href":"/advanced/stress-tests"},{"title":"Decision trees","href":"/advanced/decision-trees"},{"title":"Research sources","href":"/advanced/research-sources"},{"title":"Calibration and the specialist view","href":"/advanced/calibration-specialist"}]},{"group":"Best practice","pages":[{"title":"Best practice","href":"/best-practice"}]},{"group":"Reference","pages":[{"title":"Glossary","href":"/reference/glossary"},{"title":"Troubleshooting","href":"/reference/troubleshooting"}]}]},"basePath":"","title":"Constraints - Meerie","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":[],"chunks":[]}