← all posts
// economics · hardware-roi

AI hardware ROI for a personal AI workstation: valuing productivity without inventing savings

A box under the desk: one GPU with enough VRAM to hold a real model, system RAM sized so nothing swaps to disk mid-inference, NVMe fast enough that loading weights isn't the bottleneck, a cooler and PSU sized for sustained load, not a benchmark spike. That's the whole apparatus. The workload on top of it is ordinary: interactive coding, private document work you don't want leaving the building, some experimentation, occasional overnight batches. The alternative isn't exotic: commercial API calls plus whatever laptop or desktop you already had. What the box buys you is low-latency private access and the freedom to run open-weight models without asking permission per token.

None of that is the hard part. The hard part is turning "it feels faster" into a number that survives an audit, and the unit you're pricing is one month of verified developer work, not tokens, not GPU-hours, which are just intermediate measurements. Every price you plug in, electricity, API rate, tax, belongs in a live worksheet, not prose you trust forever. The formula barely changes year to year; the numbers you feed it change every quarter.

the arithmetic, and what you're allowed to put in it

Here's the shape of the number you're chasing, spelled out instead of coded: monthly value equals accepted tasks, times minutes saved per task, times your loaded hourly value, divided by sixty, times a realization rate you keep conservative. You get "minutes saved" by timing comparable work with the box and without it, review included, never from a demo run. Split every cost into fixed and variable first. Hardware purchase, installation, reserved capacity are fixed over a useful range. Electricity, paid tokens, data transfer, and some support costs move with the work. Human review sits in the middle: a dedicated operator watching outputs all day is fixed, someone fixing exceptions when they happen is variable.

The parts list needs to be complete and honest: accelerator, host, memory, storage, network, power, cooling, enclosure, spares, tax, shipping, installation. Same discipline as mapping a full cost architecture: list everything, subtract what you already owned. A laptop already doing ordinary work isn't an AI cost because it now also runs a model. A memory upgrade bought purely to fit that model in RAM is.

Below the line, measure the workload across local, rented, and API routes, and log this instead of relying on vibes:

log this
accepted tasks and severe failures
input, cached input, reasoning, output tokens
retries, abstentions, human repair minutes
queue, first token, completion, p95 latency
active, resident-idle, sleep, unavailable hours
wall energy and cooling allocation
maintenance and incident time

Quality adjustment isn't optional. If the cheap model needs two attempts and five minutes of your time to fix, that five minutes belongs to the finished result, not the first draft that looked cheap. Run it the other way too: don't price a local model that reliably nails one narrow job against a frontier API at maximum reasoning effort. That's not the same task.

a resting GPU is not free, and a busy one isn't always yours

The real risk with this profile isn't buying the wrong GPU, it's low utilization dressed up as a business case: an upgrade bought because the last one was fun, hobby time quietly counted as business savings. Build three demand curves, low, base, high, and don't skip the daily peaks. A machine can't sit fully scheduled and still absorb an interactive request; p95 latency tells you whether it can. Batch work can soak up quiet hours, but only count it if the organization needed that work done, not because the GPU was idle.

Idle states aren't interchangeable. A workstation that sleeps overnight has different economics from a server holding several models resident for instant answers. If more than one person shares the box, measure queueing and abandoned requests. A small fleet at the edge multiplies things: update time, replacement, backups, and travel scale with node count, and operational labor tends to outrun the electricity bill.

The single error that shows up most: crediting every saved minute at a full rate when nothing extra got sold or avoided because of it. Keep every assumption visible in a small table, with a source and a date on anything that moves. Two decimal places don't make a guess less of a guess.

run it at zero before you trust the rest of it

Payback month is the first month cumulative discounted benefit clears cumulative cost. ROI over whatever horizon you pick is net discounted benefit divided by discounted cost, and both need a conservative useful life plus a residual value, because hardware outlives the model growth or vendor support that makes it economically dead weight.

Productivity claims need that realization factor applied honestly. Minutes saved per developer aren't automatically minutes of billable output; count them only if they avoid a hire, cut outsourced spend, add deliverable output, shorten a queue that was actually binding, or have some other credible use. Then run the whole model a second time with productivity value forced to zero. If the box only pencils out because of speculative time savings, that deserves more scrutiny, not less.

Weigh hourly rental against both the API and the purchase. Renting earns its keep while you're still unsure what hardware shape or demand you'll have, the same logic behind why a subscription is often the wrong instrument for a spiky workload. Rental math has its own leaks: persistent storage, image prep, transfer, minimum billing windows, setup automation, the instance somebody forgot to shut down. A short rental benchmark before you buy anything is cheap insurance against an expensive wrong purchase.

State the break-even boundary in terms you can check later: accepted tasks per month, productive GPU hours, the maximum API cost per task that still loses to owning the box, or the minimum useful life needed. A boundary like that gets revisited in five minutes. A narrative recommendation just gets reread and re-believed.

the retest date, and the part I still can't price

Put a retest date on the calendar with real triggers: volume changes materially, a new model changes what clears your quality gate, API prices move, the electricity contract renews at a different rate, a component ages out of support. ROI lives in the relationship between one workload, one alternative, and a set of dated assumptions, not in the GPU under the desk, and any one of them can go stale before the hardware does.

What I haven't found a clean way to price is the judgment call underneath the realization factor itself, the gap between "I would have gotten to this eventually, just slower" and actual wishful accounting. You can zero out the productivity line, watch the purchase survive or fail on hardware costs alone, and still end up arguing with yourself over whether the afternoon you didn't spend waiting on a queue was worth anything to anyone but you.

#hardware-roi#cost#self-hosting