A fleet of revenue-generating assets, a fixed annual repair budget, and equipment that fails at its own rate — this tool computes the optimal repair-or-skip rule for every day of the year and every level of budget remaining, so cheap repairs that pay back beat expensive ones that barely do.
Each equipment type carries its own repair cost, unit margin (net earnings per unit of output), and failure behavior. Repairing a failed asset recovers output × margin × days remaining of earnings, but with a fixed cash budget the several cheap repairs you could fund instead of one expensive one usually recover more. The optimizer ranks the fleet by earnings per dollar of repair, not by raw output, and solves the resulting cash-budget allocation exactly by backward induction on a discretized budget grid, then validates the realized policy with Monte-Carlo simulation.
Failure risk is set per equipment type, not as a single fleet-wide count. Enter a mean time between failures (MTBF) for each type, or switch a type to Weibull and set the shape parameter β directly — β < 1 for infant mortality, β > 1 for wear-out. If you have run-to-failure records, paste them in instead: the backend fits a two-parameter Weibull by maximum likelihood (right-censoring supported, for assets still running), and uses the fitted β and MTBF in place of the manual fields, reporting the fit's confidence intervals and a survival curve alongside the policy. That fit-from-data path is the point of this tool — most public repair-budget calculators take a single failure-rate input; this one estimates it from your own failure history.
A static priority list (always fix the highest-output asset first) ignores the fact that a fixed budget is exhausted faster by expensive equipment. The optimizer instead computes a shadow price for each remaining budget dollar — how much recoverable earnings it is worth — and derives, per equipment type, an output cutoff: repair only if the failed asset's output is at least that cutoff. The cutoff rises as budget runs low or the year runs out, since a repair has less time or cash to earn back its cost.
The backward-induction policy is solved under an exponential (memoryless, constant-hazard) failure-rate assumption per type — that is what keeps the value function tractable as a function of day and budget remaining alone, with no per-asset age in the state space. The Monte-Carlo layer then plays that same fixed policy against whichever distribution each type is actually configured with, exponential or Weibull, and reports the gap between what the policy expected and what was realized. For exponential-only fleets the gap should sit near zero; a wear-out or infant-mortality type will show a real, nonzero mismatch — the cost of the policy's simplifying assumption, made visible rather than hidden.
A fleet of 260 assets across six equipment types shares a $1.8M annual repair budget. MTBFs run from roughly 950 to 3,600 days depending on equipment type, implying about 70 expected failures per year in aggregate. The optimizer typically deploys the full budget, recovers well over ten times the earnings it spends, and captures the large majority of at-risk earnings — while the decision table shows exactly which output level justifies a repair for each equipment type, in each month, at each level of budget remaining.
For: reliability engineers, maintenance planners, and asset managers allocating a constrained repair or capex budget across a fleet with heterogeneous repair and failure economics.