If you guys have python installed on your computer you can run this python script I wrote. It takes the halving into account, accounts for faster blocktimes when the difficulty increases faster, and allows difficulty increases to change over time.
Please don't trust random code on the internet! There's nothing malicious here, but you don't know that unless you can read it (so don't run it if you don't know what you're doing). Source is here:
# This is written in python 3
# You can use this in your own projects if you wish
# Note that pricing and hosting costs assume 50 units purchased
def truncate(f, n): #This function is from stackOverflow
'''Truncates/pads a float f to n decimal places without rounding'''
s = '{}'.format(f)
if 'e' in s or 'E' in s:
return '{0:.{1}f}'.format(f, n)
i, p, d = s.partition('.')
return '.'.join([i, (d+'0'*n)[:n]])
###################
# HARCODED VALUES #
###################
#Cost in USD of miner (fixed costs only)
minerCost = 1395.5
#Monthly hosting rate, USD
minerPowerCost = 45.04
#Monthly PSU cost, per miner, USD
PSUCost = 10
#Simulation ending block number ()
simulationEnd = 472500 #this is ~1 yr after halving
#Revenue of miner $/day @ anticipated start block
#You may need to calculate this at bitcoinwisdom.com/bitcoin/difficulty
minerRevenue = 8.55
#This is the block the simulation begins at
startBlock = 385389 #this block should be mined on November 27th
#This is the predicted difficulty at startBlock
startDiff = 68500000000 #this is my projected difficulty on the 27th
#this is the starting % increase every two weeks
expectedDiffIncrease = 3.00
#this is the % change in difficulty increase every two weeks
diffIncreaseDelta = -3.5
############################################
#A couple of calculations before we begin: #
############################################
#Gets daily total recurring costs for us
minerPowerCost += PSUCost
minerPowerCost /= 30
breakeven = False
revenue = 0
daysElapsed = 0 #in days
currentBlock = startBlock
blocksSinceLastBlock = 0;
currentDiff = startDiff
print("Simulation start: \nDifficulty is {}. \nProfit is ${} per day.\nExpected difficulty increase is {}%, with future increases changing by {}%.".format(truncate(currentDiff, 2), truncate(minerRevenue - minerPowerCost, 2), truncate(expectedDiffIncrease, 2), truncate(diffIncreaseDelta, 2)))
print("Note that daily profit does include hosting cost.")
while True:
#1 loop = 1 block
if (currentBlock % 2016 == 0): #checks if difficulty needs to be adjusted
currentDiff *= (100 + expectedDiffIncrease)/100
minerRevenue *= (100 - expectedDiffIncrease)/100
print("Difficulty is now {} (+{}%). Profit is now ${} per day".format(truncate(currentDiff, 2), truncate(expectedDiffIncrease, 2), truncate(minerRevenue - minerPowerCost, 2)))
expectedDiffIncrease *= (100 + diffIncreaseDelta)/100
if (currentBlock == 420000): #checks if block reward needs to be halved
minerRevenue /= 2
print("The block reward has halved. Profit is now ${} per day".format(truncate(minerRevenue - minerPowerCost, 2)))
if (minerRevenue - minerPowerCost <= 0):
print("Miner is no longer profitable. Ending simulation\n")
break
if (blocksSinceLastBlock) > int((144*(100+expectedDiffIncrease)/100)//1): #calculates real time, note that this accounts for less time between blocks when diff spikes
daysElapsed += 1
revenue += minerRevenue - minerPowerCost
blocksSinceLastBlock -= (144*(100+expectedDiffIncrease)/100)//1 #this takes care of a difficulty increase mid-day
if currentBlock == simulationEnd:
print("End of simulation reached.\n")
break
if (revenue > minerCost and breakeven == False):
print("BREAK EVEN REACHED ON DAY {}!".format(daysElapsed))
breakeven = True #hell yes
currentBlock += 1
blocksSinceLastBlock += 1
print("{} days have elapsed.".format(daysElapsed))
print("Your total revenue after hosting costs: {}".format(truncate(revenue,2)))
print("Your net gain/loss: ${}".format(truncate(revenue-minerCost,2)))
"Plausible" difficulty scenario:
Simulation start:
Difficulty is 68500000000.00.
Profit is $6.71 per day.
Expected difficulty increase is 3.00%, with future increases changing by -3.50%.
Note that daily profit does include hosting cost.
Difficulty is now 70555000000.00 (+3.00%). Profit is now $6.45 per day
Difficulty is now 72597567250.00 (+2.89%). Profit is now $6.21 per day
Difficulty is now 74625707336.90 (+2.79%). Profit is now $5.99 per day
Difficulty is now 76637539075.80 (+2.69%). Profit is now $5.78 per day
Difficulty is now 78631295311.30 (+2.60%). Profit is now $5.58 per day
Difficulty is now 80605323051.80 (+2.51%). Profit is now $5.39 per day
Difficulty is now 82558082994.20 (+2.42%). Profit is now $5.22 per day
Difficulty is now 84488148495.90 (+2.33%). Profit is now $5.05 per day
Difficulty is now 86394204049.70 (+2.25%). Profit is now $4.90 per day
Difficulty is now 88275043314.50 (+2.17%). Profit is now $4.75 per day
Difficulty is now 90129566757.00 (+2.10%). Profit is now $4.61 per day
Difficulty is now 91956778951.50 (+2.02%). Profit is now $4.48 per day
Difficulty is now 93755785587.30 (+1.95%). Profit is now $4.36 per day
Difficulty is now 95525790229.40 (+1.88%). Profit is now $4.24 per day
Difficulty is now 97266090872.10 (+1.82%). Profit is now $4.13 per day
Difficulty is now 98976076328.90 (+1.75%). Profit is now $4.03 per day
Difficulty is now 100655222492.16 (+1.69%). Profit is now $3.93 per day
The block reward has halved. Profit is now $1.04 per day
Difficulty is now 102303088498.15 (+1.63%). Profit is now $1.00 per day
Difficulty is now 103919312827.61 (+1.57%). Profit is now $0.95 per day
Difficulty is now 105503609370.50 (+1.52%). Profit is now $0.91 per day
Difficulty is now 107055763480.00 (+1.47%). Profit is now $0.87 per day
Difficulty is now 108575628038.90 (+1.41%). Profit is now $0.83 per day
Difficulty is now 110063119558.50 (+1.37%). Profit is now $0.79 per day
Difficulty is now 111518214328.15 (+1.32%). Profit is now $0.76 per day
Difficulty is now 112940944631.03 (+1.27%). Profit is now $0.73 per day
Difficulty is now 114331395039.91 (+1.23%). Profit is now $0.69 per day
Difficulty is now 115689698804.39 (+1.18%). Profit is now $0.66 per day
Difficulty is now 117016034339.57 (+1.14%). Profit is now $0.63 per day
Difficulty is now 118310621824.20 (+1.10%). Profit is now $0.61 per day
Difficulty is now 119573719914.87 (+1.06%). Profit is now $0.58 per day
Difficulty is now 120805622581.46 (+1.03%). Profit is now $0.56 per day
Difficulty is now 122006656067.74 (+0.99%). Profit is now $0.53 per day
Difficulty is now 123177175979.67 (+0.95%). Profit is now $0.51 per day
Difficulty is now 124317564503.24 (+0.92%). Profit is now $0.49 per day
Difficulty is now 125428227752.45 (+0.89%). Profit is now $0.47 per day
Difficulty is now 126509593247.44 (+0.86%). Profit is now $0.45 per day
BREAK EVEN REACHED ON DAY 505!
Difficulty is now 127562107521.74 (+0.83%). Profit is now $0.43 per day
Difficulty is now 128586233857.42 (+0.80%). Profit is now $0.41 per day
Difficulty is now 129582450145.87 (+0.77%). Profit is now $0.39 per day
Difficulty is now 130551246871.86 (+0.74%). Profit is now $0.38 per day
Difficulty is now 131493125217.94 (+0.72%). Profit is now $0.36 per day
Difficulty is now 132408595285.90 (+0.69%). Profit is now $0.34 per day
Difficulty is now 133298174431.81 (+0.67%). Profit is now $0.33 per day
End of simulation reached.
597 days have elapsed.
Your total revenue after hosting costs: 1431.67
Your net gain/loss: $36.17
Super optimistic simulation for the hell of it:
Simulation start:
Difficulty is 68500000000.00.
Profit is $6.71 per day.
Expected difficulty increase is 1.00%, with future increases changing by -8.00%.
Note that daily profit does include hosting cost.
Difficulty is now 69185000000.00 (+1.00%). Profit is now $6.62 per day
Difficulty is now 69821502000.00 (+0.92%). Profit is now $6.55 per day
Difficulty is now 70412471192.90 (+0.84%). Profit is now $6.48 per day
Difficulty is now 70960764656.60 (+0.77%). Profit is now $6.41 per day
Difficulty is now 71469122579.00 (+0.71%). Profit is now $6.35 per day
Difficulty is now 71940162360.70 (+0.65%). Profit is now $6.30 per day
Difficulty is now 72376375133.10 (+0.60%). Profit is now $6.25 per day
Difficulty is now 72780124281.90 (+0.55%). Profit is now $6.20 per day
Difficulty is now 73153645615.60 (+0.51%). Profit is now $6.16 per day
Difficulty is now 73499048866.10 (+0.47%). Profit is now $6.12 per day
Difficulty is now 73818320248.30 (+0.43%). Profit is now $6.09 per day
Difficulty is now 74113325847.70 (+0.39%). Profit is now $6.06 per day
Difficulty is now 74385815635.60 (+0.36%). Profit is now $6.03 per day
Difficulty is now 74637427945.60 (+0.33%). Profit is now $6.00 per day
Difficulty is now 74869694270.30 (+0.31%). Profit is now $5.98 per day
Difficulty is now 75084044261.40 (+0.28%). Profit is now $5.96 per day
BREAK EVEN REACHED ON DAY 223!
Difficulty is now 75281810837.40 (+0.26%). Profit is now $5.94 per day
The block reward has halved. Profit is now $2.05 per day
Difficulty is now 75464235319.50 (+0.24%). Profit is now $2.04 per day
Difficulty is now 75632472533.60 (+0.22%). Profit is now $2.03 per day
Difficulty is now 75787595827.40 (+0.20%). Profit is now $2.02 per day
Difficulty is now 75930601965.10 (+0.18%). Profit is now $2.01 per day
Difficulty is now 76062415867.30 (+0.17%). Profit is now $2.01 per day
Difficulty is now 76183895177.40 (+0.15%). Profit is now $2.00 per day
Difficulty is now 76295834636.20 (+0.14%). Profit is now $2.00 per day
Difficulty is now 76398970256.40 (+0.13%). Profit is now $1.99 per day
Difficulty is now 76493983290.90 (+0.12%). Profit is now $1.99 per day
Difficulty is now 76581503991.90 (+0.11%). Profit is now $1.98 per day
Difficulty is now 76662115162.80 (+0.10%). Profit is now $1.98 per day
Difficulty is now 76736355504.70 (+0.09%). Profit is now $1.97 per day
Difficulty is now 76804722762.70 (+0.08%). Profit is now $1.97 per day
Difficulty is now 76867676678.20 (+0.08%). Profit is now $1.97 per day
Difficulty is now 76925641753.20 (+0.07%). Profit is now $1.96 per day
Difficulty is now 76979009836.20 (+0.06%). Profit is now $1.96 per day
Difficulty is now 77028142535.30 (+0.06%). Profit is now $1.96 per day
Difficulty is now 77073373469.30 (+0.05%). Profit is now $1.96 per day
Difficulty is now 77115010363.30 (+0.05%). Profit is now $1.96 per day
Difficulty is now 77153336999.60 (+0.04%). Profit is now $1.95 per day
Difficulty is now 77188615029.70 (+0.04%). Profit is now $1.95 per day
Difficulty is now 77221085657.70 (+0.04%). Profit is now $1.95 per day
Difficulty is now 77250971202.00 (+0.03%). Profit is now $1.95 per day
Difficulty is now 77278476543.50 (+0.03%). Profit is now $1.95 per day
Difficulty is now 77303790467.60 (+0.03%). Profit is now $1.95 per day
Difficulty is now 77327086906.40 (+0.03%). Profit is now $1.94 per day
End of simulation reached.
604 days have elapsed.
Your total revenue after hosting costs: 2217.02
Your net gain/loss: $821.52
"Difficulty Armageddon" simulation result, for the fun of it:
Simulation start:
Difficulty is 68500000000.00.
Profit is $6.71 per day.
Expected difficulty increase is 7.00%, with future increases changing by -2.00%.
Note that daily profit does include hosting cost.
Difficulty is now 73295000000.00 (+7.00%). Profit is now $6.11 per day
Difficulty is now 78323037000.00 (+6.86%). Profit is now $5.57 per day
Difficulty is now 83588538131.40 (+6.72%). Profit is now $5.07 per day
Difficulty is now 89095638568.10 (+6.58%). Profit is now $4.61 per day
Difficulty is now 94848167182.80 (+6.45%). Profit is now $4.20 per day
Difficulty is now 100849633342.66 (+6.32%). Profit is now $3.81 per day
Difficulty is now 107103214894.32 (+6.20%). Profit is now $3.46 per day
Difficulty is now 113611747382.30 (+6.07%). Profit is now $3.14 per day
Difficulty is now 120377714534.57 (+5.95%). Profit is now $2.85 per day
Difficulty is now 127403240041.81 (+5.83%). Profit is now $2.57 per day
Difficulty is now 134690080648.14 (+5.71%). Profit is now $2.32 per day
Difficulty is now 142239620562.84 (+5.60%). Profit is now $2.09 per day
Difficulty is now 150052867195.17 (+5.49%). Profit is now $1.87 per day
Difficulty is now 158130448206.38 (+5.38%). Profit is now $1.67 per day
Difficulty is now 166472609865.86 (+5.27%). Profit is now $1.49 per day
Difficulty is now 175079216691.71 (+5.16%). Profit is now $1.31 per day
Difficulty is now 183949752349.23 (+5.06%). Profit is now $1.15 per day
The block reward has halved. Profit is now $-0.33 per day
Miner is no longer profitable. Ending simulation
227 days have elapsed.
Your total revenue after hosting costs: 766.37
Your net gain/loss: $-629.12
Interestingly, even in that pretty insane worst case scenario you'll still recover most of your initial investment, without even factoring in resale value.
Of course, if you want a better simulator it'll need to factor in the decline in hosting/PSU costs and the inevitable decrease of difficulty that will happen after the halving. However, I think my calculator is probably the most accurate one out there (its just not very easy to use).
It might be interesting coming up with software that calculates the difficulty based on a distribution of hardware by maintenance cost, factoring in how new hardware coming into the market forces old hardware off.
Very interested, but I think we definitely need to have a clearer picture about the fees after 3 months and also the PSU lease situation as mentioned by klondike_bar. How about a yearly plan or an unlimited plan ending when the miner is no longer profitable?
Great North Data isn't setting firm dates on when their hosting rates are going down.
Finksy doesn't want to promise a specific rate after three months, and I don't blame him at all for that. He wants to see the board/PSU failure rates before he requotes (remember, he's promised to cover failures out of his own pocket). The one thing he has guaranteed is that rates won't go up. I know it's frustrating, but we will have to wait and see on that front.