← all posts
// economics · hardware-roi

AI hardware ROI for an edge or SBC AI fleet: pricing risk and downtime

And nobody plans for the moment the fan on a cheap board seizes at two in the morning, and whatever it was quietly running, a door camera, an OCR pass, a voice trigger, has no idea what to do next. The budget covered the board. Not the moment.

An edge or SBC fleet: Raspberry Pis, Orange Pis, mini PCs, cameras, accelerators, storage, power, and a management node, doing always-on sensing, OCR, vision, voice, or automation where the data appears. The alternative isn't nothing, it's cloud processing, a central server, or deterministic sensors, the fallback ladder from the local-first cascade. The unit that matters is one reliable decision, not a token count.

Counting the failure, not just the parts

Expected cost is failure probability times repair cost plus outage hours times the hourly cost of downtime. Write it down, a formula survives a year of price drift and a gut feeling doesn't, the same discipline behind the 99 percent cost architecture.

expected_annual_risk = probability * (repair_cost + outage_hours * business_cost_per_hour)

List every failure mode, component, provider, capacity, model quality, the operator who forgot to swap a card, and test recovery time instead of guessing it. Split fixed from variable: hardware, install labor, and reserved capacity are fixed; electricity, tokens, transfer, and support are variable. A dedicated operator is a fixed cost; a per-exception reviewer scales with failures.

The parts list, minus the laptop you already owned

Put every incremental component on the bill: accelerator, host, memory, storage, network, power, cooling, enclosure, spares, tax, shipping, installation. Subtract equipment you'd buy anyway; an ordinary laptop isn't an AI cost, a memory upgrade bought only for a model is. Run the workload through local, rented, and API routes, tracking accepted work against failures, token mix, retries, repair minutes, latency, and time active, idle, or down. A model needing two tries and five minutes of correction isn't cheap because its first answer was, the cost belongs to the finished result, and a local specialist shouldn't compete against a frontier API at maximum reasoning.

What the fleet actually does with its idle hours

The real risk here is maintenance multiplied by node count, quiet storage failures, installation labor, fragmented accelerators, and hardware stalled at prototype. Build low, base, and high demand curves and include the daily peak: full utilization leaves nothing to absorb an interactive request, and batch work only counts if genuinely needed. Meter idle states too: sleep and always-resident are different economics, shared systems need their queue watched, and a fleet multiplies update, replacement, backup, and travel time by node count until labor outruns electricity. The common mistake is redundancy for one option and a quiet bet the other won't fail. Keep assumptions in a table, sourced and dated, not hidden behind decimals.

The ROI math, and the number you should set to zero

Payback month is the first month cumulative discounted benefit passes cumulative cost; ROI over your horizon is net discounted benefit divided by discounted cost. Both need a conservative useful life and residual value; hardware can outlive the model that justified buying it. Productivity gains need a realization factor: ten minutes saved per developer isn't ten minutes of billable output, count it only when it avoids a hire, cuts outsourced spend, or shortens a binding queue, and run the model once with that term at zero. Compare against renting too, hourly rental earns its keep while demand stays uncertain, so count storage, setup, transfer, minimum billing, and forgotten idle instances. A short rental trial is cheap insurance against a wrong purchase.

Draw the boundary, then put a date on revisiting it

Fund mitigation only where the expected loss earns it, in operational terms: accepted tasks per month, productive GPU hours, a maximum API cost per task, a minimum useful life. Set a retest date and name the triggers, volume shifting, a model changing what counts as acceptable, prices moving, a contract renewing, a component reaching end of support, recalculate the moment one fires. ROI lives in the relationship between one workload, one alternative, and dated assumptions, not stamped onto the GPU. That's why I skip this model for a couple of boards on a shelf, the hour spent costs more than the mistake it'd catch. Past that size I run it every time, and what I give up on purpose is the comfort of buying on instinct: I'd rather be wrong on paper, with a date set to fix it, than quietly wrong forever.

#hardware-roi#cost#self-hosting