Your comments

My bad, I was thinking about it as the total code you have left as a finished product, rather than the work (typing) that it takes to get to the product.

Hmm, I was thinking about the goal as a sort of autonomous thing that would be determined based on previous work. I think that if this was implemented, it could be a hybrid of our 2 ideas: allowing the user to target specific languages by specific amounts, and otherwise defaulting to a more general "progress further" goal (that the user could choose to specify).

Also, how will a user know how much work goes into x amount of points? I think that there should be some sort of scale that the user could view, like "you made 123 points yesterday" or "last week, when you were coding, you averaged 123 points per hour".

Cool idea.

I see 2 problems:

  1. The average characters you type coding in a week is language specific, meaning that 10,000 characters of html is not as hard to write as 10,000 characters of python. (come to think of it, this could go into a feature request all on its own)
  2. This is more a problem that's nigh impossible to solve, but you can't accurately measure productivity by number of characters, because unlike a writer, less lines to do more is generally better.

2 is impossible, but 1 isn't. To solve the language issue, use a "global average" that would combine all languages. To get the "global average", you would average (points gained per day - average points per week / 7) for each language. Positive = progression, negative = regression, 0-ish = about the same.

(I undoubtedly made a mistake somewhere here ^, take it with a grain of salt)

A possible visualizer for this would be a string like "119/273" just before the "65.33% [Plain] streak 4 mins" that would show "current points / goal points".

Additionally, it would be possible to slowly raise the point goal, to encourage more and more each day.

I tested this with a bunch of different people, and noticed that the percentages get pretty small - even paul has a 4.71%.

4.7h / day - LavaEagle, highest ranked in this right now, so essentially a tentative upper bound

66 / 14  =  4.71 hours / day  =  19.64%

4h / day
3h / day
2h / day
1h / day
0.5h / day
 4 / 24 = 16.66%
3 / 24 = 12.50%
2 / 24 = 8.333%
1 / 24 = 4.166%
0.5 / 24 = 2.083%

Let's say most of the users are coding 4-10 hours a week (wild guess):

4h / week
6h / week
8h / week
 10h / week
4 / (24 * 7) = 2.381%
6 / (24 * 7) = 3.571%
8 / (24 * 7) = 4.762%
 10 / (24 * 7) = 5.952%

Maybe if we only count the hours people are awake?

4h / week (hours awake only)
4 / (16 * 7) = 3.571%

My main concern is that the percentages will be too close together, so percentages will have to go out many decimal places to differentiate, ie.  2.97619047%.

Maybe it would be better to drop the percentage, and just express this as a "week's focus" meter, with 25% being the max (using the 24h day scale).

Maybe this is fine - just wanted to put it out there.