I couldn't find a really good explanation of reputation, so I read the code, and here's what I discovered.
Simplified vs. Raw scores
The score displayed on your Steemit profile is not the actual value stored in the Steem blockchain, but a simplified version. The scores on profile pages range from a minimum of roughly -25 to maximum of around 75, with newly-opened accounts placed exactly in the middle at 25. The raw scores on the blockchain, however, are actually values in the millions, billions, or even trillions (and these can also be positive or negative).
Simplified scores are shown on Steemit profiles, for example here: steemit.com/@username. Raw scores can be found on steemd.com/@username, note the slightly different domain names there. On steemd.com scroll to the bottom row of the first data box, where it says "Reputation", you'll likely see a number in the billions.
Here comes the math
Numbers in the billions are good for computers to do lots of complex math and fine tuning, but they're not easy for humans to read, hence the simplifed version shown on profile pages. Here is the formula for the simplification:
- Take the log base 10 of the raw score
- Subtract 9
- Multiply by 9
- Add 25
- Round down to the nearest integer
So a raw score of 26,714,311,062 becomes a simplified score of 37.
Actually, it's a little more complicated than that, but this is a good summary. I'll leave the extra details out for now, because I want to keep this simple. Scores in the lower end are normalized to 25. It takes a little while for newly-registered users to move off 25, but once you finally get to 26 or above then the formula described above is valid.
This is a snippet of the actual code used by the system. It should make sense to most programmers:
If you want to read and decipher the exact math, see the code in GitHub on the following page. Look at the last section, beginning "export const repLog10".
https://github.com/steemit/steemit.com/blob/master/app/utils/ParsersAndFormatters.js
Tracking your score increases
As mentioned, for new users the simplified reputation score is always 25, and it stays there for a while even if you post and comment a few times. Only once your raw score exceeds around 1,300,000,000 will you finally move up to a simplified score of 26. These are aproximate rounded numbers matching simplified scores to raw scores:
- 26 = 1,300,000,000
- 27 = 2,000,000,000
- 29 = 3,000,000,000
- 31 = 5,000,000,000
- 34 = 10,000,000,000
Note that buying Steem or Steem Power does not increase reputation. Only posting, commenting, and curating will increase your rep. So if you'd like to see your reputation increase (and thus your curation power) the secret is to get engaging! Post and comment with some high-quality and original content.
Further details
While studying this, I also found the following post by @dantheman helpful. It doesn't quite cover the details I've described above, but it provides other useful info about how reputation works:
@dantheman/brief-update-on-reputation-score
Also note, it's possible these reputation calculations could change at any time. So if you've Googled and are reading this some time in the future, take care to go back to that GitHub page and check the code again.