How GoMining profitability is calculated
The whole model, with the formulas, the constants and their verification date. Including the list of places where it can be wrong.
Almost every mining calculator shows you a result and hides how it got there. That forces you to take the number on faith, with no way to tell whether it is inflated. This page is the opposite: here is the entire chain of calculation, so you can redo it by hand and find out exactly where we disagree.
Everything below is what the calculator literally runs, not a simplified version of it. If you find an error, write to [email protected].
The whole thing, in one line
A GoMining digital miner earns bitcoin every day and pays maintenance every day. What is left is yours:
| Net / day = Gross reward − Maintenance |
| Maintenance = (Electricity + Service fee) × (1 − Discount ÷ 100) |
Everything else on this page is unpacking those two lines.
1. Income: what the network issues per TH
The reward is not set by GoMining, it is set by the Bitcoin network. It is shared across all the hashrate that is mining, so your slice comes from dividing what the network issues by the total hashrate:
| theoretical sat/TH/day = 144 × (subsidy_sats + average_fees_sats) ÷ network_hashrate_TH |
The 144 is how many blocks Bitcoin produces per day by design, one every ten minutes. The subsidy is not hard-coded: it is derived from the current block height, because it halves every 210,000 blocks.
| subsidy = 50 ÷ 2⌊height ÷ 210,000⌋ |
Deriving the subsidy from the height rather than from a constant is what lets the projections apply the halving on their own when they cross the date, without anyone having to remember.
The same sum with real data, verified on 24 July 2026:
| Input | Value | Where it comes from |
|---|---|---|
| Block height | 959,457 | mempool.space |
| Subsidy | 3.125 BTC | derived from the height |
| Average fees per block | 1,886,277 sats | mempool.space, 144-block average |
| Total per block | 314,386,277 sats | 3.125 × 10⁸ + 1,886,277 |
| Network hashrate | 915.33 EH/s | mempool.space, 3-day average |
| theoretical sat/TH/day | 49.46 | 144 × 314,386,277 ÷ 915,331,674 |
2. The pool factor: why you do not receive that 49.46
Here is the piece almost no calculator includes, and the reason the others come out optimistic. GoMining does not pay you 100% of the network's theoretical reward. In between there is pool commission, mining luck itself, and platform overhead.
Since GoMining does not publish that number, it has to be measured: compare the network's theoretical figure against what the app's dashboard actually shows as paid.
| pool factor = real sat/TH/day ÷ theoretical sat/TH/day |
| 47.1 ÷ 49.46 = 0.952 |
| sat/TH/day the calculator uses = 49.46 × 0.952 = 47.09 |
Measured on 24 July 2026 against mempool.space and a reading of the GoMining dashboard.
Without that factor the model would overestimate income by around 5%. That does not sound like much until you notice that on a thin-margin miner, 5% is the difference between making money and losing it.
Checked a second time, with different data. On 27 July 2026 it was cross-checked against the payout history of two 1 TH miners observed in the GoMining app over thirteen days:
| Measurement | Theoretical | Paid | Factor |
|---|---|---|---|
| 24 Jul 2026 · dashboard | 49.46 | 47.1 | 0.952 |
| 27 Jul 2026 · 13 days of payouts | 52.24 | 49.54 | 0.948 |
Two independent measurements, taken nine days apart and with the network hashrate moving 5% in between, give 0.952 and 0.948. That does not make the factor an official figure — it still is not one — but it does move it out of guesswork. The full working of that second check, including both cost formulas matching within 0.6%, is in how much bitcoin 1 TH mines per day.
And the other half has to be said too: it is the least reliable parameter in the whole model. It is our own measurement, at one moment, against one dashboard. It can shift if the pool commission changes, and a run of luck moves it in the short term. That is why the fleet dashboard ships a calibrator: you enter the sat/TH you are actually being paid and it tells you your real factor. If yours comes out far from 0.95, either something has changed or the number you read is not per TH per day.
3. Costs: the only two there are
GoMining charges maintenance as two separate things, and it is worth not confusing them because they behave differently:
| Electricity ($/day) = $/kWh × 24 ÷ 1000 × W/TH × TH |
| Service fee ($/day) = 0.0089 × TH |
Electricity depends on efficiency; the service fee does not. That is why efficiency matters so much: it is the only one of the two you can change by buying better.
The kWh price is not yours to choose: it is set by the data centre your miner sits in, and GoMining documents a range of $0.05 to $0.07/kWh. Total cost per TH per day, at $0.05/kWh:
| Efficiency | Electricity | Service | Total |
|---|---|---|---|
| 12 W/TH | $0.0144 | $0.0089 | $0.0233 |
| 15 W/TH | $0.0180 | $0.0089 | $0.0269 |
| 28 W/TH | $0.0336 | $0.0089 | $0.0425 |
Against that, gross income per TH per day was $0.0304 with bitcoin at $64,509 (27 July 2026). That one line shows why a 28 W/TH miner loses money and a 12 W/TH one does not: income is identical for all three, only the bill changes.
4. Maintenance discounts
They apply to maintenance, never to income. There are four and they stack:
| Discount | How it works | Maximum |
|---|---|---|
| GOMINING token | 1% for every 18 days of maintenance your balance covers | 20% (360 days) |
| VIP tier | Automatic, based on your account level | 6% (Elite) |
| Service button | +0.3% for each consecutive day you press it | 3% (10 days) |
| Solo mining | Variable, set by the weekly veGOMINING vote | no official figure |
The token one has two details that change the result and that almost nobody models properly.
The first is that it moves in steps, not continuously: whole 18-day brackets. Coverage is worked out like this:
| days of coverage = (GOMINING_balance × GOMINING_price) ÷ gross_daily_fee_of_the_fleet |
| discount % = min( ⌊days ÷ 18⌋ , 20 ) |
That floor function means that near a bracket edge, another hundred dollars of balance can be worth a whole point of discount, and a thousand badly placed can be worth nothing.
The second is that coverage is computed against the gross fee of the whole fleet, not the already-discounted one. That is deliberate: using the discounted figure would make the discount depend on itself, and the sum would go circular.
All four are added, and then the cap is applied:
| total discount = min( token + VIP + button + solo mining , cap ) |
And a warning about that cap, because it is one of the things most often repeated wrongly: the 29% is not an official GoMining limit. It is the arithmetic sum of the three discounts that are documented (20 + 6 + 3). GoMining publishes no combined cap. If your dashboard shows a different number, yours is the right one and you can change it in the settings.
Solo mining, on top of that, does not apply to miners you have entered into Miner Wars.
5. From daily net to the metrics
| Break-even (days) = total_investment ÷ net_day |
| Annual ROI (%) = net_day × 365 ÷ total_investment × 100 |
With a negative daily net there is no break-even, and the calculator says exactly that instead of returning a huge number that looks like an answer.
One GoMining feature is worth understanding here: Reward Protection. When the day's reward does not cover maintenance, the difference is not charged to you. That stops you paying out of pocket, but you earn nothing that day either. The engine keeps the real negative value separately, so you can see how much you are actually losing rather than a reassuring zero.
6. Projections: why they come out lower than other tools'
A two-year projection that draws a straight line is a projection assuming the network stands still. It does not. This model applies two things almost nobody applies:
- Difficulty rises. More machines arrive every month and your slice shrinks. The model grows the network hashrate by a configurable monthly percentage (1.5% by default; historically it runs between 1% and 3%).
- The halving arrives. On crossing block 1,050,000 — around April 2028 — the subsidy drops from 3.125 to 1.5625 BTC. Because the subsidy is derived from the height, the projection applies it on its own the day it lands.
The loop is daily and recomputes the network state for each day: growing hashrate, block height advancing by 144 per day. Even in manual mode — where you type your own sat/TH — the projection degrades that value with difficulty and the halving, because otherwise it would lie just the same.
What it does not do is predict the bitcoin price. You pick that as a scenario, which is why the results come out as "if the price does this, that is what you would get".
Where this model can be wrong
No calculator publishes this section, and it is the one most worth your time.
- The pool factor is a measurement, not an official figure. 0.952 comes from comparing the theoretical value with one dashboard reading at one moment. It is the most fragile number on this page. Calibrate it with your own.
- The 29% cap is not documented. It is the sum of three discounts, not a limit published by GoMining.
- The solo mining discount has no known maximum. It is set by a weekly vote. The limit the form uses is our estimate, not a source.
- Per-block fees are a moving average of the last 144 blocks. In a network congestion spike, real income on those days is higher than what comes out here; in a lull, lower.
- Your electricity price depends on your data centre and you do not choose it. If your miner sits in a $0.07/kWh one and you calculate with $0.05, your real result is worse than the screen's.
- GoMining changes its terms whenever it wants. Every constant here carries a date for exactly that reason. If you are reading this much later, check them against the official documentation before trusting them.
- And none of this predicts the bitcoin price, which is what dominates the final result.
The sources, one by one
All verified on 24 July 2026, except the example figures in section 3, which are from the 27th.
| Item | Source |
|---|---|
| Service fee $0.0089/TH/day | Official mining FAQ |
| Electricity $0.05–0.07/kWh | Official mining FAQ |
| Token: 18 days = 1%, 360 = 20% | Fees and discounts FAQ |
| VIP 0.3% – 6% | Fees and discounts FAQ |
| Service button 0.3%/day, 3% cap | Fees and discounts FAQ |
| Solo mining variable by vote | Voting FAQ |
| BTC and token prices | CoinGecko, live |
| Hashrate, height and per-block fees | mempool.space, live |
| Pool factor 0.952 | our own measurement against the two above |
Every constant lives in a single block at the top of motor.js, each with its source and date beside it. There is not one economic number scattered through the HTML.