Compose the best package for an exact budget
fit_to_budgetUse when the visitor names a NUMBER rather than a band — 'we have 8,000 approved', 'can we do this for five thousand'. Returns a deterministic best-value composition under that ceiling: what fits, what was left out AND why, how much budget is unspent, and what the cheapest excluded item costs. Foundation items are kept first, then the remaining items cheapest-first so the budget buys as much as possible. Priced against the AI-channel figure by default, since that is what they would actually pay. Never hand-pick a basket yourself when a budget is stated — this tool is the authoritative composition, the same way customize_package is the authoritative total.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| budget | Yes | The visitor's ceiling in EUR, as a number (8000, not '8K') | |
| against | No | Price the budget against the AI-channel figure (default) or the list price | |
| context | Yes | Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization." | |
| must_have | No | Optional: item ids the visitor explicitly asked for; kept first if they fit | |
| preset_id | Yes | The package to trim to budget (from match_package) |