← all posts
// economics · hardware-roi

AI hardware ROI for an edge or SBC AI fleet: renting GPU capacity versus buying

Rent until the fleet proves it's busy, then buy. That's the rule. Everything below is just me earning it.

The fleet in question is the boring kind: Raspberry Pis or Orange Pis, a few mini PCs on the busier nodes, cameras, an accelerator or two, storage, enclosures, power supplies, one management box tying it together. The job is always-on sensing, OCR, vision, voice, smart-home logic, narrow automation close to the data source. The alternative is routing events to the cloud, running one central server instead of a fleet, or using deterministic rules for whatever doesn't need a model, not skipping AI. The point of edge inference is power per node, local response, less data leaving the building, none of which shows up as a token count. What you're buying is a correct decision made at the right place, on time; tokens and accelerator-hours are just the receipts.

Where the money actually leaves your hands

Write the cash-flow relationship down before you argue rent versus buy: monthly rent equals the GPU-hour rate times billable hours, plus storage, plus transfer, plus whatever the platform calls its managed fees. Compare it against ownership on the same completed workload and data lifecycle, on-demand against reserved against interruptible against owned, or the comparison is fiction. Split every line into fixed and variable honestly: hardware, installation, and reserved capacity are fixed across a useful range, while electricity, paid tokens, and transfer move with the work. Human review can be either: a dedicated operator is fixed, per-exception review is variable, and blending the two flatters whichever number you like.

The bill of materials needs the same honesty: accelerator, host, memory, storage, network, power, cooling, enclosure, spares, tax, shipping, installation, minus whatever you'd have bought anyway. A laptop your engineer already needed isn't an AI line item; the memory upgrade bought purely so a model would fit, is. Keep quotes, rates, and taxes in a separate worksheet: prices move faster than the fleet's shape.

Idle time is not the same as free time

Push each candidate route, local, rented, API, through the same workload and log: accepted tasks against severe failures, retries and abstentions and repair minutes, queue, first token, completion, p95, and hours spent active, resident-idle, asleep, or unavailable. A cheaper model needing two attempts and five minutes of correction doesn't get to claim the price of the first attempt; its real cost belongs to the completed result.

The real risk is maintenance times node count, not sticker price: storage failures, install labor, mismatched hardware, boxes that never leave prototype status because nobody budgeted for the after. Build low, base, and high demand curves with daily peaks and p95 latency in each, since a box running at full tilt can't absorb an interactive request when one lands. Batch work can soak up quiet hours, but only if it's needed. Watch queueing and abandoned requests on shared systems; on an edge fleet, multiply update, replacement, backup, and travel time by node count, since labor outruns the electricity bill.

Ownership doesn't remove the risk rental was pricing. It just moves that risk onto your calendar.

The mistake I see most is comparing a cloud accelerator's hourly price against a local GPU while dropping the rented host and persistent storage. Keep assumptions visible somewhere small and boring, date anything volatile, and don't let decimal precision stand in for honesty.

When the spreadsheet earns the right to become a decision

Payback month is the first month cumulative discounted benefit clears cumulative cost; ROI over your horizon is net discounted benefit over discounted cost. Both lean on a conservative useful life and residual value; edge hardware lies too: a Pi can be in fine physical health while the model you need has outgrown what it can hold, economically dead well before it's mechanically dead. I wouldn't bother with full discounted-cash-flow rigor on a stack of Pis; simple payback gets you most of the answer for a tenth of the spreadsheet.

Productivity benefit needs a realization factor: saving ten developer minutes doesn't automatically become ten minutes of billable output. It counts only if it avoids a hire, cuts outsourced spend, or defends itself in a budget meeting. Run the model once with that value at zero; a purchase surviving only on speculative time savings deserves a harder look.

Compare against renting the same way you'd compare against buying: hourly GPU rental earns its keep while your demand shape is still unknown, the same logic behind why a flat subscription is often the wrong instrument for AI spend. Fold in persistent storage, image prep, transfer, minimum billing increments, setup automation, and the idle instance someone forgot to kill. A short rental benchmark before you commit to hardware is often the cheapest insurance you'll buy all year.

What I'd actually go check before spending anything

State the break-even boundary in terms you can check against a dashboard: accepted tasks per month, productive GPU-hours, maximum tolerable API cost per task, or the minimum useful life the hardware needs to clear. That boundary is something a teammate can confirm or overturn in six months without asking what you meant. Set a retest date now, with real triggers: volume moving materially, a new model changing the quality gate, API prices shifting, an electricity contract renewing, a component hitting end of support. ROI isn't a property stamped onto a GPU, it's a relationship between one workload, one alternative, and a set of dated assumptions.

The first thing I'd pull isn't a spec sheet. It's last month's actual utilization for whatever's already running: active hours against resident-idle hours against dead time, node by node. Everything else here is arithmetic on top of that one number.

#hardware-roi#cost#self-hosting