Profitability methodology

Every figure in the profitability calculator comes from one of the formulas below, run against a live network/price snapshot. No formula here is hidden inside the app — this page is that same code, in prose.

Expected earnings

Your expected daily BTC mined is your share of the network’s total hashrate, multiplied by the BTC paid out per day:

expectedBtcPerDay = (yourHashrate / networkHashrate)
                    × 144 blocks/day
                    × (blockSubsidy + avgTxFeesPerBlock)
                    × (1 − poolFeeRatio)

144 is the number of Bitcoin blocks per day at the 10-minute target. Block subsidy is a protocol constant that halves on schedule (see the halving countdown); average transaction fees per block come from a live snapshot, not a guess.

Electricity cost

dailyElectricityCostUsd = (powerW / 1000) × 24 hours × electricityUsdPerKwh

Break-even electricity price

The exact $/kWh at which daily electricity cost would equal daily revenue — above it you lose money, below it you profit:

breakEvenUsdPerKwh = (dailyBtcMined × btcPriceUsd) / ((powerW / 1000) × 24)

Cost to mine 1 BTC

costToMineOneBtcUsd = totalCostUsd / minedBtc

totalCostUsd and minedBtc must cover the same period (both daily, or both monthly) — the calculator always compares like periods.

Days to ROI

daysToRoi = hardwareCostUsd / dailyProfitUsd

A flat, non-compounding projection at today’s profit rate — not a promise. If dailyProfitUsd is zero or negative, this is reported as “never,” not a nonsense number.

Advanced mode: the month-by-month projection

Advanced mode re-runs the same per-block math above for each future month, but lets difficulty and price drift according to assumptions you set — this is the whole point of Advanced mode: naive calculators assume difficulty stays flat forever, which historically overstates long-run earnings.

difficulty_m = difficulty_0 × (1 + annualDifficultyGrowth)^(m/12)
price_m      = price_0 × (1 + annualPriceGrowth)^(m/12)
subsidy_m    switches automatically at each projected halving height

profit_m = mined_m × price_m × (1 − hodlRatio)
           + Δ(HODL stack value)          // mark-to-market on BTC already held
           − electricity_m − opex_m

NPV = Σ profit_m / (1 + monthlyDiscountRate)^m − capex

Hardware and infrastructure value depreciate on a straight-line schedule you set (%/year), independent of the profit math — they affect the “fully depreciated” month shown, not the profit figures themselves.

Data sources

FigureSourceRefresh
Network hashrate, difficultymempool.space /api/v1/mining/hashrate/3d, /api/v1/difficulty-adjustment10 min
BTC pricemempool.space /api/v1/prices (CoinGecko fallback)5 min
Block heightmempool.space /api/blocks/tip/height2 min
Average tx fees per blockmempool.space /api/v1/mining/blocks/fees/24hhourly

All four are fetched by a scheduled job and stored — the calculator itself never calls an external API while you use it, so nothing you enter is exposed to a third party, and the page loads instantly. The same snapshot backs the /api/v1/network endpoint.

Questions

Does the profitability calculator call any external API when I use it?

No. It computes entirely from a snapshot already stored in minermath’s own database, refreshed on a schedule (see the data sources table below) — never a live external call while you’re using the page.

What isn’t included in the profitability math?

Pool fees default to 0 in Simple mode (set one in Advanced mode if you pool mine), and hardware/infrastructure depreciation, HODL ratio, and NPV discounting only apply in Advanced mode. Simple mode is deliberately the smallest honest model: hashrate, power, electricity price, and optional up-front hardware cost.