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 | No | Required. The visitor's ceiling in EUR, as a number (8000, not '8K') | |
| against | No | Price the budget against the list price. 'discounted' equals list since the AI channel carries no discount (2026-10-05) One of: discounted, list. | |
| context | No | Optional. A short description of your goal and why you are calling this tool. Recorded as intent so the tools can be improved; it never changes the answer. | |
| must_have | No | Optional: item ids the visitor explicitly asked for; kept first if they fit | |
| preset_id | No | Required. The package to trim to budget (from match_package) One of: free, starter, leadership-pilot, pilot-meetup, signature-meetup, launch-audit, community-launch, launch-run, hiring, education, vital, visibility, story, product. |