Skip to main content

Energy

A living system exchanges information and energy.

Every month you get a fresh pool of energy. Casting votes spends it. Receiving votes on your content earns it back. The pool resets on the 1st of each UTC month — unused energy does not carry over.

Energy is separate from rank. A high rank does not add energy. A user with GOAT rank still gets the same 31 base energy as everyone else.

Relevance vote: Cast. Rank: Rank. Profile plate: User profile.

How it works​

Monthly pool​

The base pool is 31 energy per month. On the 1st of each UTC month the balance resets to 31. Any remaining energy from the previous month is discarded.

Income​

EventEnergyWhen
Monthly reset+311st of UTC month
Topic created+13Publishing a topic (topic_created)
Vote received+1A new vote row is inserted on your topic (first insert only, not a weight change)
Hot bonus+130Your topic hits 100 community votes within 48 hours

The +1 vote_received goes to the topic author only. A branch author on someone else's topic does not receive it. A weight change on an existing vote row does not trigger it again.

Spend​

The cost of a vote is abs(next) − abs(previous). A heavier vote costs more. A lighter vote refunds the difference. Flipping the sign at the same absolute value costs 0.

ChangeCost
First vote at +33
Change +3 to +107
Change +10 to +37 (refund)
+3 → −30
Change +10 to +100 (no-op)

Decay​

Each idle UTC day — no vote cast — reduces the balance by floor(balance × 0.99^idleDays). This is not a flat 1% per day on a round number; it compounds on the current balance. The lastActiveAt stamp is updated by casting a vote (spend or refund). Creating a topic or proposing a branch does not update it.

Reset​

On the 1st of each UTC month the balance is set to 31. The previous month's remaining balance is discarded.

Profile plate​

The Voting Power plate on your profile shows the current balance, a bar splitting the month into used and remaining, and a footer: {used} used / {votes} votes and Reset in {n}d.

Title tooltip: Energy to vote. Resets on the 1st of each UTC month. The link explore more... goes to /community.

The bar tooltip lists remaining, earned, used this month, idle decay, the monthly grant, and the max for this month.

Code​

PiecePath
Schemapackages/shared/src/schema/voting-power.ts
Monthly grantapps/frontend/src/server/lib/apply-monthly-energy.ts
Balance readapps/frontend/src/server/routers/users.ts (getVotingPower)
Plateapps/frontend/src/components/profile/VotingPower.tsx