{
  "id": 8272070,
  "title": "I Built a Budget Optimiser That Showed Me the Cost of My Own Rules",
  "url": "https://urgent.news/2026/09/18/i-built-a-budget-optimiser-that-showed-me-the-cost-of-my-own-rules",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-09-18T13:23:02.000Z",
  "source": {
    "name": "HackerNoon",
    "slug": "hackernoon",
    "url": "https://hackernoon.com/i-built-a-budget-optimiser-that-showed-me-the-cost-of-my-own-rules?source=rss"
  },
  "original_language": "en",
  "account": "A small business was faced with a fixed marketing budget and several competing channels. It became clear that deciding how to allocate the budget among channels was not as simple as simply ranking them. The key insight was that every pound given to one channel is a pound that cannot go somewhere else. This realization led to treating the problem as a constrained optimisation problem, rather than a scoring problem.\n\nThe basic structure of the optimisation problem involved historical performance, productivity ratios, business priorities, budget and policy constraints, and a linear programming solver. The model aimed to maximise the value produced by the available budget while still respecting the rules provided by the user.\n\nThe optimisation layer was built in Python using PuLP and the CBC solver. Each platform and business objective became part of one allocation problem. The model tried to maximise the value produced by the budget while adhering to the rules set by the user.\n\nOne interesting finding was that the solver could identify which constraints were actually shaping the result. Constraints that would have allowed more spending were revealed as non-binding, while those that directly conflicted with the optimum were identified as binding constraints. This information provided valuable insights into the true impact of each constraint.\n\nInitially, the idea was to add an on/off decision for each channel, making the formulation discrete and potentially using mixed-integer optimisation. However, the author decided to keep the allocation continuous, preserving the clean dual interpretation of the solver's output. This decision allowed the tool to provide a more useful explanation of how constraints affected the recommendation.\n\nThe project evolved to include a separate rule-based interpretation layer, which presented the optimisation results in a user-friendly manner. This layer asked questions such as whether the budget was heavily concentrated, if the recommendation was stable under different assumptions, and whether diversification was warranted. By highlighting the trade-offs and impacts of constraints, the tool provided a clearer understanding of the budget allocation decision for the business.",
  "summary": "Building CLARO showed how shadow prices and constraint analysis can make marketing budget recommendations easier to understand and challenge.",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}