Patrick's agents do a lot of small, dull jobs. They summarize, tag and translate short texts and transcribe audio, thousands of calls a day. All of it runs on OpenCode Go, a $10-a-month plan that gives him a monthly allowance of model usage, counted in list-price dollars.

Under his desk is an RTX 3090 Ti with 24 GB of memory, mostly idle. On October 21 he turned the desktop on and told the agents they could use it. His reasoning was that those were "free" tokens.

They weren't free. This is what the afternoon cost, and the numbers that ended it.

What the plan actually gets used for

A plan with a monthly allowance is cheap per token only if you use it. Over the week before the experiment, the agents' spend log put a normal day at about 14 million tokens across every model he pays for. That's 10.6 million in and 3.6 million out, in about 1,000 calls. The plan carried the bulk jobs. After a round of re-routing that afternoon, those jobs came to about $1.40 a day at list price, or about 3.3 million output tokens a day.

The allowance is metered in three windows. According to OpenCode's docs, each 5-hour window gets 20% of the month and each week gets 50%, so the week usually runs out before the month does. One bad day showed what that means. In the 24 hours before the experiment, a model that thinks before answering ran 1,934 calls and produced 7.9 million output tokens, mostly reasoning nobody read. That came to $5.47 of list price. By midweek it had used 43% of the weekly window.

Five days later the plan has room to spare. On October 26 CodexBar showed the monthly window 44% used, with 80% of the month gone. The week had just reset and was at 3%. In the week of October 17 to 24, the plan ran $22.39 of list-price usage for its $10.

At that volume, the agents' research report put the plan at about $0.10 per million output tokens. The arithmetic checks out: $10 over roughly 100 million output tokens a month.

The price has a catch. OpenCode's docs say Go is "designed for OpenCode and other coding agents" and that its traffic is "monitored for abuse". Patrick's bulk jobs aren't a coding agent, but they run on the plan anyway, which puts them at the edge of what it was built for. The free models bundled with the plan made the point themselves: about 5% of the calls sent to them came back refused, because they came from outside OpenCode.

The afternoon on the 3090 Ti

The desktop already ran llama-swap, serving Qwen3.8 27B at 4-bit. At noon the agents found it and added it as a local tier in front of the plan. Work would go to the desktop when it was on and fall back to the plan when it wasn't.

Then they went looking for speed. The dense 27B model touches all its weights for every token. Sparse "mixture of experts" models activate only about 3 billion parameters per token, so the agents downloaded two of them and timed each one on the same short summary:

Model (4-bit, llama.cpp) Tokens/sec
Qwen3.8 27B (dense) 44
Qwen3.6 35B-A3B (sparse) 116
Nemotron 3.5 Lightning 30B-A3B, first file 90
Nemotron 3.5 Lightning 30B-A3B, smaller file 173

The Lightning row is the lesson about 24 GB. The first 4-bit file was 25.3 GB, so part of the model ran from system RAM. A different 4-bit format came to 21.2 GB and fit, and speed nearly doubled. A third model, NVIDIA's "24 GB" Nemotron Bolt, didn't run at all, because it needed a newer llama.cpp and NVIDIA's own instructions start at 28 GB.

Patrick's reaction to 173 tokens a second was "Very promising." The agents' math said that pace is about 15 million output tokens a day flat out, several times what the jobs needed.

Three problems

The power. Patrick asked whether the desktop was worth running on his electricity rate, or whether the $40 tier of the plan would be cheaper. The agents' estimate, at about $0.35 per kWh, was $45–70 a month to leave the desktop on with eight hours a day of capped AI work, or $8–15 for a short nightly batch. Nobody ever put a meter on the desktop, so these are estimates. Power alone for an always-on desktop came to four to seven times the plan's price.

The heat. While the agents ran their quality eval on the dense model, the card sat at 99% load, drawing 447 W at 82 °C, with each request taking 75–110 seconds. Patrick: "The fan is going nuts." He capped the card at 300 W. It settled at 298 W and 74 °C. Two minutes later he decided the desktop wasn't a long-term option, because his office was getting hot.

The quality. The eval ran the local models and the cheap hosted ones on real summarizing work, and Claude Sonnet scored the output. The local models got 2.3–3.3 out of 5. The best cheap hosted models got 3.7–4.2. The agents concluded that a local GPU is fine for transcription and simple tagging, and not for anything where summary quality matters.

Side by side

Figures marked est. are estimates, not measurements.

Option Cost per million output tokens Summary quality (of 5) Speed Ops burden
OpenCode Go, $10/month ~$0.10 at his volume 3.7–4.2 (best cheap hosted) Not a constraint at this volume Watch the weekly window; built for coding agents, so bulk jobs sit at the edge of its terms
Go Plus, $40/month ~$0.40 at the same volume same same same
OpenRouter, pay per token ~$0.43, about $42–45/month same models same None; no windows or caps
His 3090 Ti, already paid for, power only ~$0.25 on Lightning, ~$0.9–1.0 on dense Qwen est. (see below) 2.3–3.3 44–173 tok/s for one request; 343 tok/s across 16 Desktop must stay on; heat; file sizes; drivers; sudo
Buy local hardware, amortized over 3 years $0.66–1.62 est. 2.3–3.3 Similar to his card All of the above, plus buying it

The power-only row is this article's own arithmetic. It assumes about 450 W at the wall while working, the agents' estimate for a capped card plus the rest of the machine, and $0.35 per kWh. That's about 16 cents an hour. At 173 tokens a second the card makes about 620,000 tokens an hour, so electricity alone is about $0.25 per million, two and a half times the plan's whole price per token. Idle hours aren't counted, which makes the local rows look better than they are.

Break-even. The research report priced a used 3090 setup at about $1,550 with an OCuLink dock, a power supply and tax, plus about $22 a month in power. The prices came from listings dated October 21. At the report's figure for his bulk jobs, about 7 million tokens a day, it never pays back. At about 20 million a day, roughly three times today, it saves about $80 a month against paying per token and pays back in about 16 months. The report put the crossover with the plan at 1.5–2 times today's volume if everything ran on one model, and 4–5 times with the current mix. It rated its own confidence as medium. Even then, summaries would stay hosted because of the quality gap.

The hardware prices took a correction of their own. The agents' first used-GPU prices were stale guesses from before the current shortage. Patrick told them the real prices were "at least 2x what you think." After that the report used only dated live listings.

What he decided

At 4:39 that afternoon, after reading the report, Patrick concluded that relying on the plan and his subscriptions was the best option on price. The agents switched the local tier off and left it in place as a backup in case the plan went down.

One job stayed local. Whisper on the 3090 Ti transcribed 1 hour 46 minutes of audio in 130 seconds, about 49 times real time. But the desktop wasn't going to stay on, so transcription moved to an old GTX 1050 Ti already in his home server for video transcoding. It runs at about 8 times real time, and the video encoder lost about 3% while both ran. When that card is busy, a hosted model takes over for about two cents per audio hour. Transcription was the one place where local hardware he already owned beat the plan.

Coda: the unlock

Three days later Patrick saw a post about an open-source kernel module that unlocks the 3090's full BF16 math, and he turned the desktop back on to try it. An agent benchmarked the card stock, had him install the module and reboot, then ran the same tests again.

Test Stock Unlocked
BF16 matrix math 82.6 TFLOPS 139.1 (+68%)
vLLM, 4-bit AWQ, prompt processing 1,473 tok/s 2,309 (+57%)
vLLM, 16 chats at once 292 tok/s 343 (+17%)
vLLM, one chat (512 in, 128 out) 2.99 s 2.87 s
llama.cpp, generation 49.5 tok/s 49.2

It's a real gain for batched and long-prompt work and none at all for one person chatting, because single-stream generation is limited by memory speed, not math. It doesn't touch the quality gap, and it doesn't cool the office. Nobody checked whether the unlocked card's outputs match the stock ones.

Where it stands

Five days after the experiment, Patrick's answers are short.

  • The desktop runs nothing for his agents. His verdict: "Not worth it."
  • He wouldn't buy a GPU. The research report allowed one exception, buying a box for its own sake, a used 3090 on a dock or a Mac. He doesn't want one.
  • The unlock is off. The +57% was real, but it went to the kind of batched work he doesn't run at home.
  • The coding-agent plan carries all of the bulk work, for $10 a month.

The question was whether a home GPU is worth it against a $10 plan. For this work, at this volume, it isn't. The card was fast, but speed was never the constraint. The constraints were electricity, heat and quality, and the plan beat the card on all three. The one piece of local hardware still doing a job is the old card in his server, which was already there for video.