The credit economy had a skew: a handful of high-throughput actions (posting, uploading, daily login) dominated everyone's balance, and most of the good community behavior — answering questions, reporting spam, welcoming newcomers — paid nothing.
Seven new earn sources are live, all routed through a new CreditLedger service that enforces per-source daily caps and per-voter dedup:
- Upvote received — post authors earn 1 credit per unique upvoter per day, capped at 100/day. No self-votes, no credit for the same voter upvoting twice.
- Best answer — 50 credits when a thread author marks your reply as the best answer. Cap 250/day.
- Helpful report — 10 credits to the reporter whenever a mod actually takes action (warn, suspend, ban, shadow-ban). Dismissed reports don't pay. Cap 50/day.
- First post of the day — 5 credit nudge the first time you post anywhere each calendar day.
- Staff pick — 100 credits when a mod marks your thread as a staff pick. No cap, no dedup (rare enough that it doesn't need one).
- Welcome reply — 5 credits for replying to a newbie's (< 48h old) first thread. Cap 25/day. Encourages greeting first-posters instead of ignoring them.
- Crosspost — 5 credits per successful crosspost. Cap 25/day.
Daily caps on the legacy sources — posting, uploading, friend-accepts — are now also enforced. UserCredit::earn consults credits.cap_{reason} at award time and clamps whatever's left under the ceiling. No existing caller sites had to change.
Claw-back is automatic. Delete a post and every credit it earned (upvote, best-answer, first-post-of-day, awards received) reverses. Undelete replays. Rescind an upvote and only that voter's credit to the author reverses — other voters' credits stand. Every reversal is its own credit_transactions row so the audit trail is intact.
Full breakdown on your credit history at /account/credits.