Pages:
Author

Topic: Bitcoin mining profitability calculator (Read 44868 times)

legendary
Activity: 1708
Merit: 1020
October 05, 2012, 04:09:03 AM
#22
This project is being taken over by someone else and I won't be able to provide support going forward.

It was fun but I will take a break from working on Bitcoin websites for a while. Smiley
legendary
Activity: 1708
Merit: 1020
September 23, 2012, 03:56:15 PM
#21
Default profitability decline per year corrected: from 0.5 to 0.61

default assumption: decline by Moore's law (18 months performance doubling).

1 / sqrt(2 / 18 * 24)

note: Though profitability was quite stable lately, it might drop sharply with asics really coming...

legendary
Activity: 1708
Merit: 1020
August 13, 2011, 02:44:37 PM
#20

please check out the latest update: http://bitcoinx.com/profit

finally I found the time to implement a more reasonable estimate.

what do you say?
legendary
Activity: 1708
Merit: 1020
April 15, 2011, 12:09:04 PM
#19
Added a time frame parameter.
legendary
Activity: 1386
Merit: 1004
April 15, 2011, 09:11:04 AM
#18
If you add a box to increase difficulty rate at a percent rate per change such as 10% it might be pretty close to reality. 

I see the difficulty rate rising at about 10% a change for at least a few months. 
qed
full member
Activity: 196
Merit: 100
April 15, 2011, 05:41:28 AM
#17
A so long prediction is kinda useless. Too many variables.
legendary
Activity: 1708
Merit: 1020
April 14, 2011, 04:54:14 PM
#16
You have a line "Generated blocks per year", but the displayed value is the number of coins, not blocks. It would be nice to have both.
done

Unfortunately GPU mining can become unprofitable just as suddenly as CPU mining did when someone starts large scale mining with ASICs. It's only a matter of time. https://bitcointalksearch.org/topic/how-important-is-power-efficiency-in-mining-5496
definitely. I'd like the ASICS better too, especially with their lower power consumption.


I see it like this. Difficulty depends in some way on BTC price. It does not have to grow exponentially. The exponential growth might have been because of the improvement in software and the switch from CPU to GPU or result from more and more people mining. From the difficulty plots one could even read a beginning saturation (temporary?).

Fitting the BTC price to extrapolate it is not the right way to go in the calculator. Accordingly I am not sure if it is the right thing to exponentially extrapolate difficulty because it basically depends on the price.
legendary
Activity: 1708
Merit: 1010
April 14, 2011, 04:36:12 PM
#15
Unfortunately GPU mining can become unprofitable just as suddenly as CPU mining did when someone starts large scale mining with ASICs. It's only a matter of time. https://bitcointalksearch.org/topic/how-important-is-power-efficiency-in-mining-5496

Which is one reason I'm not inclined to run out to buy a new GPU.  I'm not a gamer, so have little additional reason to upgrade.  However, if a relatively cheap dedicated mining card is developed, I'd be all over it.
donator
Activity: 2058
Merit: 1054
April 14, 2011, 01:43:18 PM
#14
You have a line "Generated blocks per year", but the displayed value is the number of coins, not blocks. It would be nice to have both.
legendary
Activity: 1284
Merit: 1001
April 14, 2011, 01:17:10 PM
#13
Unfortunately GPU mining can become unprofitable just as suddenly as CPU mining did when someone starts large scale mining with ASICs. It's only a matter of time. https://bitcointalksearch.org/topic/how-important-is-power-efficiency-in-mining-5496
full member
Activity: 210
Merit: 106
April 14, 2011, 12:51:43 PM
#12
It doesn't take into account future increases in BTC value, either (which could offset this).  There are many variables, but I for one think this is a useful tool for demonstrating that mining can be profitable.

Of course it is profitable (certainly if you already own hardware) but calculations without factoring difficulty increase are very misleading.

Of course it is profitable if the value of your earned BTC exceeds your hardware and electricity costs, but now we're venturing into the realm of tautology.  It's not "of course" profitable for everyone, and reading the forum, many people are skeptical it can be profitable for anyone.  Some simple math, and clearly it can.  I gather that's why this calculator was made.
newbie
Activity: 14
Merit: 0
April 14, 2011, 12:48:45 PM
#11
But as long as mining is marginally (i.e. BTC income larger than electricity costs)  profitable, people will join mining and difficulty will increase (that's how arbitrage works).
Exactly!

I don't think we will see difficulty increases of 20% per 2106 blocks (as mrjones suggests) but 10-15% is very real in the nearest future.
And even with that very conservative estimate of a 10% change per two weeks, difficulty increases by a factor of 12 (1.1026 = 11.92) over the course of a year.  By the end of that year, a rig that generated 50 BTC per week initially becomes one that takes an entire three months to generate 50 BTC!
full member
Activity: 238
Merit: 100
April 14, 2011, 12:36:41 PM
#10
It doesn't take into account future increases in BTC value, either (which could offset this).  There are many variables, but I for one think this is a useful tool for demonstrating that mining can be profitable.

Of course it is profitable (certainly if you already own hardware) but calculations without factoring difficulty increase are very misleading.

BTC price increases are possible but definitely not certain. Heck, the BTC price can even fall hard. If there was a futures market, it would show very similar prices to the spot prices because future is not know and the current value is the best bet. But as long as mining is marginally (i.e. BTC income larger than electricity costs)  profitable, people will join mining and difficulty will increase (that's how arbitrage works). And if the BTC price increases, the difficulty will increase even more. The rate of difficulty increase is not known but this thread is a proof that people still join the mining game and we are far from difficulty saturation.

I don't think we will see difficulty increases of 20% per 2106 blocks (as mrjones suggests) but 10-15% is very real in the nearest future.
legendary
Activity: 800
Merit: 1001
April 14, 2011, 12:25:24 PM
#9
How would you do that? You can still increase the fixed difficulty by hand.
Take a look at this graph.  It shows difficulty versus time on a logarithmic scale.  (There's also a linear scale version available here.)  You can see that difficulty has increased from roughly 200 to 80000 (i.e. by a factor of 400) since the middle of July 2010.  That's 9 months, or 39 weeks.  Difficulty adjusts every two weeks, so that is 19 adjustment periods.  That means an average of roughly a 37% increase in difficulty every two weeks over this time period, since 1.3719 ~= 400.

You can work this into your equations easily.  You start with the equation:

factor(rate, numPeriods) = (1 + rate - (1 + rate)-numPeriods) / rate

In PHP, that would be:

Code:
$factor = (1 + $rate - pow(1 + $rate, -$numPeriods)) / $rate;

You need to allow the user to enter in a rate, which is how much they expect the difficulty to increase per two week period.  You could default this to 0.37 for example, or to a more conservative value like 0.20 if you think the number of people mining bitcoins isn't going to keep increasing at the historical rate.

For your specific code, you'd change it to be something like this:

Code:
...
$blocksInFirstTwoWeeks = $blockCoins * (14.0 * 24.0 * 3600.0) / $hashTime;
$factor = (1 + $rate - pow(1 + $rate, -26)) / $rate;
$blocksPerYear = $blocksInFirstTwoWeeks * $factor;
...

As an example, your current page with the default values shows 2676.80 coins per year (you say blocks, but mean coins). That's 103 per two week period.  We then calculate "factor" as above, assuming a rate of 0.20:

Code:
factor = (1 + 0.20 - (1 + 0.20)^(-26)) / 0.20 = 5.96

For a final answer of 613.88, rather than 2676.80.  This is a huge difference, but is very real.  If you use a rate of 0.37, you get a factor of 3.70, for a final answer of 381.1 coins, which is seven times less.

I would also suggest that you allow people to enter the number of periods, rather than one year.

Bump!  Thanks for your time and effort.  I'll donate when it's done!
newbie
Activity: 14
Merit: 0
April 14, 2011, 12:08:52 PM
#8
How would you do that? You can still increase the fixed difficulty by hand.
Take a look at this graph.  It shows difficulty versus time on a logarithmic scale.  (There's also a linear scale version available here.)  You can see that difficulty has increased from roughly 200 to 80000 (i.e. by a factor of 400) since the middle of July 2010.  That's 9 months, or 39 weeks.  Difficulty adjusts every two weeks, so that is 19 adjustment periods.  That means an average of roughly a 37% increase in difficulty every two weeks over this time period, since 1.3719 ~= 400.

You can work this into your equations easily.  You start with the equation:

factor(rate, numPeriods) = (1 + rate - (1 + rate)-numPeriods) / rate

In PHP, that would be:

Code:
$factor = (1 + $rate - pow(1 + $rate, -$numPeriods)) / $rate;

You need to allow the user to enter in a rate, which is how much they expect the difficulty to increase per two week period.  You could default this to 0.37 for example, or to a more conservative value like 0.20 if you think the number of people mining bitcoins isn't going to keep increasing at the historical rate.

For your specific code, you'd change it to be something like this:

Code:
...
$blocksInFirstTwoWeeks = $blockCoins * (14.0 * 24.0 * 3600.0) / $hashTime;
$factor = (1 + $rate - pow(1 + $rate, -26)) / $rate;
$blocksPerYear = $blocksInFirstTwoWeeks * $factor;
...

As an example, your current page with the default values shows 2676.80 coins per year (you say blocks, but mean coins). That's 103 per two week period.  We then calculate "factor" as above, assuming a rate of 0.20:

Code:
factor = (1 + 0.20 - (1 + 0.20)^(-26)) / 0.20 = 5.96

For a final answer of 613.88, rather than 2676.80.  This is a huge difference, but is very real.  If you use a rate of 0.37, you get a factor of 3.70, for a final answer of 381.1 coins, which is seven times less.

I would also suggest that you allow people to enter the number of periods, rather than one year.
full member
Activity: 210
Merit: 106
April 14, 2011, 11:45:57 AM
#7
I'm afraid that without factoring future increases in difficulty, this is fairly useless.
It doesn't take into account future increases in BTC value, either (which could offset this).  There are many variables, but I for one think this is a useful tool for demonstrating that mining can be profitable.
legendary
Activity: 1708
Merit: 1020
April 14, 2011, 11:37:25 AM
#6
@Grinder:
I added a new result so it is easier to iterate there for now. This would go well together with Raulo's suggestion.

@Raulo:
> And a claim of increase in BTC price is a pure speculation.
isn't it the same with the difficulty?

The idea of the exponential fit is interesting but I will leave that for a later version as it is much more complicated.

There are clear cases as my own where mining is not very profitable with current hardware because of too high energy costs (0.30$/kWh) and the calculator can help point in the right direction.
full member
Activity: 238
Merit: 100
April 14, 2011, 10:36:40 AM
#5
How would you do that? You can still increase the fixed difficulty by hand.

Exponential fit. There is a calculator online:
http://www.taters.net/btcgc.php

Quote
Also there seems to be a correlation to some extend between difficulty and price which partly compensates the increase in difficulty:

As long as mining is marginally profitable, difficulty will increase even with constant BTC prices. And a claim of increase in BTC price is a pure speculation.
legendary
Activity: 1284
Merit: 1001
April 14, 2011, 10:32:20 AM
#4
I've been thinking of making just that, but I didn't have a site to put it on.

You could also add a calculation of the break even difficulty level for the given hash rate, power consumption and bitcoin price.
legendary
Activity: 1708
Merit: 1020
April 14, 2011, 10:03:09 AM
#3
How would you do that? You can still increase the fixed difficulty by hand.

Also there seems to be a correlation to some extend between difficulty and price which partly compensates the increase in difficulty:

http://www.bitcoinmoney.com/post/3573286726/price-drives-capacity
https://bitcointalksearch.org/topic/--4339

Pages:
Jump to: