-
Notifications
You must be signed in to change notification settings - Fork 2
Points Economy
TaskMate's points economy is more than chores in and rewards out. From v4.0.0 a set of automatic point mechanics run quietly in the background — paying interest on savings, optionally shrinking idle balances, and handing out the occasional surprise — plus a parent gate to reverse a mistake. This page is the hub for those mechanics.
All of these are opt-in and configured in Settings → Integrations → TaskMate → Configure → Settings, under the History & streaks section of the Admin Panel.
For the manual point-awarding systems (weekend multiplier, streaks, perfect week) see Bonus Points. For child-to-child transfers see Gifting Points.
Children earn interest on the points they have saved, rewarding patience over impulse spending. Interest is paid through the normal points path, so it also counts as earned points and feeds XP.
| Setting | Default | Range | Description |
|---|---|---|---|
| Savings interest | off |
on / off | Master toggle |
Interest rate (Decay % field) |
5 |
0–100 | Percentage of the current balance paid as interest |
Period (Every) |
weekly |
weekly / monthly
|
When interest is paid |
How it works:
- Paid on the period boundary — weekly pays every Monday, monthly pays on the 1st
- Each child earns
round(balance × rate ÷ 100)points on their current spendable balance - Children with a zero or negative balance, or whose interest rounds to 0, are skipped
- The credit is logged in the activity feed as
Savings interest (+N%)and fires ataskmate_interest_paidevent - A guard stamp prevents paying twice on the same day
Set the rate to 0 or leave the toggle off to disable.
The opposite lever to interest: idle balances slowly shrink, discouraging hoarding and keeping the economy moving. Decay only touches the spendable balance — it does not affect a child's career score or earned totals, so it is not a penalty.
| Setting | Default | Range | Description |
|---|---|---|---|
| Points decay | off |
on / off | Master toggle |
| Decay % | 10 |
0–100 | Percentage of the balance removed each period |
| Every | monthly |
weekly / monthly
|
How often decay runs |
How it works:
- Runs on the period boundary — weekly on Mondays, monthly on the 1st
- Each child loses
round(balance × percent ÷ 100)points; the balance never goes below 0 - Logged in the activity feed as
Points decay (-N%)and fires ataskmate_points_decayevent - Children with a zero balance, or whose decay rounds to 0, are skipped
- A guard stamp prevents decaying twice on the same day
Set the percentage to 0 or leave the toggle off to disable.
A random daily chance for each child to receive a surprise points bonus — a small dose of unpredictability that keeps things fun.
| Setting | Default | Range | Description |
|---|---|---|---|
| Surprise bonuses | off |
on / off | Master toggle |
| Chance % | 15 |
0–100 | Per-child chance of a bonus each day |
| Min pts | 5 |
≥ 0 | Lower bound of the random award |
| Max pts | 20 |
≥ 0 | Upper bound of the random award |
How it works:
- Rolled once a day at 16:00
- Each child is rolled independently against the chance percentage; on a hit they receive a random amount between Min and Max points
- If Min is greater than Max the two are swapped automatically
- Awarded through the normal points path, so it counts as earned and feeds XP
- Logged in the activity feed as a surprise bonus and fires a
taskmate_surprise_bonusevent
Leave the toggle off to disable. See also Bonus Points.
Applied the wrong penalty, awarded a bonus to the wrong child, or approved a chore by mistake? From v4.1.0 the Activity card puts a per-row Undo (↩) button on every reversible event. Tapping it opens a confirm dialog before anything changes.

What gets an Undo button:
| Event | Undoable? |
|---|---|
Applied penalty (Penalty: …) |
✅ |
Applied bonus (Bonus: …) |
✅ |
| Manual points add / remove | ✅ |
| Gift between children (both legs) | ✅ |
| Chore completion / approval | ✅ — undo returns it to pending |
| Weekend bonus | ❌ |
| Streak-milestone / perfect-week bonuses | ❌ |
| Pool allocations and refunds | ❌ |
| Points decay | ❌ |
| Savings interest | ❌ |
| Badge awards | ❌ |
Auto-derived events have no clean inverse, so undo is deliberately scoped to the discrete actions an admin (or child) took. The card's deny-list mirrors the backend, so the button simply never appears on a non-reversible row.
Behind the button, two services do the work:
-
Chore completions call
taskmate.undo_chore_approvalwith thecompletion_id. This removes the awarded points and returns the completion to pending so it can be approved again. -
Point transactions (penalties, bonuses, manual adjustments, gifts) call
taskmate.undo_transactionwith thetransaction_id. This restores the child's balance by the exact amount, rolls back the matching counter —total_penalties_receivedfor a penalty,total_points_earnedfor a bonus — recomputes the career score, and removes the original transaction from the activity log.
The action is admin-gated and recorded in the Admin Audit Log.
# reverse a points transaction
service: taskmate.undo_transaction
data:
transaction_id: <points-transaction id>
# revert a chore approval back to pending
service: taskmate.undo_chore_approval
data:
completion_id: <chore-completion id>See Dashboard Cards for the Activity card and Services for full parameter details.
- Bonus Points — weekend multiplier, streak milestones, perfect week
- Gifting Points — child-to-child point transfers
- Rewards — spending caps and reward stock
- Settings — full settings reference
- Services — service-call reference