Getting Started
Jarro runs in your browser — no download required. Open the app link and you're ready to go.
- Open the app — visit your Jarro link (or the demo) on any phone, tablet, or computer.
- Install on home screen (optional) — tap "Add to Home Screen" in your browser menu. This makes Jarro launch like a native app (per-platform steps in Install as an app).
- Set a Parent PIN — the first time you tap the 🔐 icon, you'll create a 4-6 digit PIN. This locks the parent dashboard from little fingers. If you skip this step, the dashboard stays on the default PIN 1234 until you set your own (Settings → Change PIN).
- Add your kids — go to Parent Dashboard → Kids tab → add a child with name, weekly allowance, avatar, and colour.
- Create tasks — go to Parent Dashboard → Formulas tab or the task section to add chores and habits.
Tip: Jarro comes pre-loaded with starter tasks (make bed, do homework, tidy room, help with dishes, personal hygiene). Edit or delete them as you like.
Install as an app (iOS & Android)
Jarro is a Progressive Web App: there is nothing to download from the App Store or Google Play. "Installing" means pinning it to your home screen — it then opens full-screen like a native app, remembers your room, and works offline.
iPhone / iPad (Safari)
- Open your Jarro link in Safari (other iOS browsers can't add home-screen icons).
- Tap the Share button (the square with an arrow).
- Scroll down, tap "Add to Home Screen", then Add.
Android (Chrome)
- Open your Jarro link in Chrome.
- Tap the ⋮ menu in the top-right corner.
- Tap "Add to Home screen" (on some versions "Install app"), then confirm.
Desktop (Chrome / Edge)
Click the install icon at the right end of the address bar (a screen with a down arrow), or browser menu → "Install Jarro". Handy for a kitchen laptop or a wall-mounted tablet's paired desktop.
Tip: the pinned icon remembers your room — it opens your family's board directly, online or offline. Install it on the kids' devices too; tapping an icon beats typing a URL.
Adding Kids
Navigate to 🔐 Parent Dashboard → Kids tab.
Kid settings:
| Field | Description |
| Name | The child's display name. |
| Weekly base | How much they can earn per week (in your currency). Set to 0 for task-only mode. |
| Avatar | Pick an emoji from 100+ options across 9 categories (animals, people, nature, etc.). |
| Colour | A highlight colour for their cards and charts. |
| Formula | The payout rule for this child (Proportional, Earned Day, All-or-Nothing, or Savings Match). |
| Savings goal name | What they're saving for (e.g. "New phone"). Optional. |
| Savings goal amount | Target amount to save. Optional. |
| Amount saved so far | Pre-fill if the child already has savings. |
Free plan: 1 child, browser-only (no cross-device sync, no server backup). Upgrade to Pro (€2.99/mo) for unlimited kids and cross-device sync. If you downgrade later, the server keeps the last Pro snapshot read-only — any changes you make on free stay in the browser and get synced back the moment you resubscribe.
Creating Tasks
Tasks are the chores and habits your kids complete each day. Add them from the kid view (tap "🔐 Add Task" at the bottom of any day) or from the Parent Dashboard.
Task settings:
| Field | Description |
| Name | Short description of the task (e.g. "Make bed"). |
| Icon | An emoji to identify the task at a glance. |
| Schedule | When the task appears: Daily, Weekdays (pick days), Weekly (pick one day), or Once (specific date). |
| Duration | How long the task stays active: just today, 1 week, 1 month, forever, or custom date range. |
| Bonus amount | Optional. Extra money added on top of the formula payout each time the task is completed (marked ★ or 😊). Great for one-off paid jobs like washing the car. |
| Assigned to | All kids, or specific children only. |
| Take turns 🔁 | With two or more kids on a recurring task, occurrences alternate between them (pick order = turn order). Only the day's turn-holder sees it — earnings and streaks follow the turn, and a day you skip keeps the same child's turn. |
Schedule examples:
- Daily: "Personal hygiene" — appears every day for all kids.
- Weekdays (Mon, Wed, Fri): "Take out rubbish" — appears three times per week.
- Weekly (Saturday): "Clean bedroom" — appears once on Saturdays.
- Once (2026-03-15): "Pack for school trip" — appears on that date only.
Tasks with history are protected. Once a task has marks in a closed period, editing it offers Split forward instead of overwriting — the old version keeps its history and your changes apply from the current period on. Likewise the ✕ button offers End it here rather than delete. Past payouts stay exactly as they were.
Daily Usage
The main screen shows a leaderboard with all kids. Tap a child's card to see their day view.
Marking tasks:
Each task on the day view has a status circle. Tap it to cycle through states:
| State | Symbol | Meaning |
| Pending | ◌ | Not yet marked (default). |
| Awaiting approval | 🙋 | The kid marked it done themselves; counts like Pending until a parent approves it. |
| Done | ★ | Task completed. Counts toward earnings and streak. |
| Smiley | 😊 | Completed with excellence. Gives a bonus on top of earnings. |
| Not Done | ✕ | Task missed. May trigger a penalty (Earned Day formula). |
You can also skip a task for one day: tap the ✕ on the task row and choose Skip today only (requires the parent PIN). A skipped task won't count as missed and doesn't break the streak.
Kids mark their own tasks:
Kids don't need the PIN to say "done!" — tapping a task marks it 🙋 Awaiting approval (a second tap takes it back). It counts toward nothing until you approve it: on your next unlock, the kid's view shows an Approve all button, or tap an individual 🙋 task to approve just that one. You can turn kid marking off in Parent Dashboard → Extras if you'd rather keep every change behind the PIN.
Kids can suggest tasks:
Turn on "Let them suggest tasks" for a child (Parent Dashboard → Kids → edit the child) and they get a "Suggest a task" button on their own board. A suggestion is just a proposal — it has no reward, counts toward nothing, and doesn't appear in their list until you approve it. You'll see "Suggested by <name>" in that kid's view with ✓ approve / ✕ reject; the kid sees it marked ⏳ "waiting for a parent" in the meantime. Approving turns it into a normal task (add a reward afterwards with the ✎ edit if you like). Off by default.
Kids can edit their own page:
Turn on "Let them edit their page" for a child and they get an "✏️ Edit my page" button on their own board. They can change their name, avatar, colour, what they're saving for, and their own extra goals — the things that make the page feel like theirs. They can never touch anything that affects money: the weekly base, the formula, and milestone rewards stay parent-only. The savings-goal amount they can change directly — except under the Savings match formula, where hitting the goal pays out a reward, so there a change becomes a request you approve or decline from their page (nothing changes until you say yes). If the child has a personal PIN, it guards the editor too. Off by default.
Navigating days:
The day picker at the top shows the current week. Tap any day to view or edit past/future task marks. Today is highlighted.
Job Board
Some chores aren't part of the daily routine — they're one-off paid gigs: wash the car, weed the garden, help carry the shopping. The Job Board is where you post those, and any kid can grab one.
Posting a job:
- On the main screen, find the 🛠️ Jobs up for grabs card (it shows for an unlocked parent, and to everyone whenever a job is open). Tap Post a job — PIN-gated.
- Give it a name ("Wash the car"), an icon, and — optionally — a reward. Leave the reward at 0 for an unpaid "just helping" chore; that's also how a task-only household (no pocket money) uses the board.
- Optionally pin it for a day — it gets a 📅 tag, shows on the family calendar on that date (claimable right there), and the work stays on that day whoever grabs it.
- Optionally set a valid-until date — an unclaimed job drops off the board after it (handy for "by Sunday" jobs; a "for a day" job lapses after its day by default). Leave it blank to keep the job up until someone takes it or you remove it.
- It lands on the board for every kid to see.
Handing a routine task to the board:
Sometimes a regular chore should just go to whoever's willing today — "Emma keeps skipping the rubbish, let any kid grab it." While unlocked, tap the ✕ on a task in the kid's day view and choose 🛠️ Move to job board. That crosses the task out for that child today (it doesn't count against them) and posts it as a one-off job anyone can claim, set to expire at the end of the day. The task's recurring schedule is untouched — it's back to normal tomorrow. If nobody grabs it, it simply expires off the board.
Claiming & doing it:
- A kid taps I'll do it! — no PIN needed. (With more than one earning child, they pick who's grabbing it.)
- The job becomes that kid's task for the day and shows on the board as 🔨 in progress.
- The kid does it and marks it done (🙋 awaiting approval, like any task).
- You approve — the reward is added to that period's earnings, exactly like a task bonus.
With more than one earning child, claiming always asks who's grabbing it — no silent default — and the confirmation names them, so a wrong tap is caught straight away. Grabbed the wrong job for the wrong kid? While unlocked, tap ↻ on an in-progress job to reassign it or send it back to the board. Open jobs you change your mind about can be removed with the ✕ (parent only). Jobs are deliberately not a competition — they sit there until someone chooses to take one, so a kid earns by opting in, not by racing a sibling.
Checklists
Some chores are really several steps. A checklist breaks one into a tickable sequence — "Clean your room" becomes make the bed, put toys away, vacuum — and each step gets its own icon so young kids can follow along.
Building one:
- Tap 📋 on the dashboard → New checklist. Give it a name and icon.
- Add steps. As you type, Jarro suggests steps from your other checklists, so you're not retyping "brush teeth" for the tenth time.
- Pick a behaviour: Just a guide (the steps are a helper — ticking them tracks progress but nothing is enforced) or Must finish all (the chore can't be marked done until every step is ticked).
Checklists are reusable templates — a small library you build once. You can also tag one to particular children, which just filters the library list.
Types, quantities & notes:
Give a list a type that fits what it's for: a plain Simple list of steps, a Shopping list or Recipe where each item can carry a quantity and a unit (2 l milk, 200 g flour, 6 pcs rolls — shopping units are weights, volumes and counts; recipes add spoons and cups), or a Packing list. On the item row, tap the count to bump it up (or long-press to type an exact amount). Any list can also carry an optional note — perfect as a recipe's method, or a "which aisle" reminder. The library has a type filter so a long list of lists stays tidy. As you add a step, Jarro suggests matching steps from your other lists and asks before adding a duplicate.
Attaching & using:
When you add or edit a chore (or a calendar event), pick a checklist to attach. Attaching makes an independent copy: tweak the steps on that chore without changing the template, and editing the template later never disturbs chores it's already on. On the board, the checklist appears under the chore with a progress bar; your child ticks steps as they go, and progress syncs across every family device. For a daily chore the ticks reset each day, so tomorrow starts fresh. A long list (more than five steps) collapses to its progress bar so it doesn't fill the screen — tap to expand. A checklist attached to a calendar event is tickable wherever the event shows: the Today strip on the home screen and a kid's My events panel, not only in the calendar itself.
Want kids to make their own lists? Parent Dashboard → Extras → Who can do what → turn on Create their own checklists for a child (off by default). They can then build and edit their own, but not touch anyone else's.
Smart-home API (Pro)
If you run a smart home, Jarro can let your devices post jobs to the board automatically. The classic example: your washing machine finishes a cycle and an automation drops a "move the laundry to the dryer" job on the board for whoever's around to grab. Anything that can send a web request — Home Assistant, IFTTT, a Shortcut, a shell script — can create and remove jobs.
Getting a key:
- Parent Dashboard → Settings → 🔌 Smart-home API → name a key (e.g. "Home Assistant") and tap Create key.
- Copy the key shown — it's displayed once and never again. Keep it secret; treat it like a password.
- A key can only add and remove jobs. It can't read your kids, marks, savings or anything else — so it's safe to hand to an automation. Revoke it any time from the same screen.
Creating a job:
Send a POST to /api.php?action=job_create with your key in an X-Api-Key header and a JSON body:
name — what the job says (required).
icon — optional emoji shown on the board (e.g. "🧺"); defaults to 🛠️.
bonus — optional reward; leave it out or 0 for an unpaid "just helping" job.
expiresAt — optional YYYY-MM-DD; the job drops off the board if nobody grabs it by then.
extKey — optional stable tag of your choosing (e.g. "washer"). It's a handle for the job: post the same key again and it updates that job in place instead of creating a duplicate (only the fields you include are changed — omit one and it's left as-is; send "expiresAt":"" to clear an expiry). It's also how you remove the job later without tracking its id.
Example: curl -X POST "https://YOUR-HOST/api.php?action=job_create" -H "X-Api-Key: jarro_…" -H "Content-Type: application/json" -d '{"name":"Move the laundry to the dryer","icon":"🧺","bonus":1,"extKey":"washer"}'
The response is {"ok":true,"id":"…","status":"created|updated|unchanged"} — status tells you whether a new job was made, an existing one (same extKey) was refreshed, or it already matched.
Removing a job:
POST to /api.php?action=job_remove (same header) with {"extKey":"washer"} or {"id":"…"}. Only jobs still waiting on the board are removed — once a child has grabbed a job, it's theirs and the API leaves it alone. There's also job_list (a GET with the header) to see what's currently open.
Calendar events too:
The same key can put events on the family calendar — say a waste-collection automation posts "Trash pickup" for tomorrow morning, or a school feed adds early-dismissal days. POST to /api.php?action=event_create with {"title":"Trash pickup","date":"2026-07-21","start":"07:30","end":"08:00","extKey":"trash"}. start/end are optional (leave them out for an all-day entry), note adds a detail line, and remind controls the notification (false mutes it, a number is minutes before the start). Events created this way are whole-family and support the same extKey upsert — re-post to move or rename in place. Add attendees with member ids to target specific people (GET /api.php?action=member_list returns everyone's id, name and avatar — labels only, never money or marks); leave it out for a whole-family event. event_remove (by extKey or id) and event_list round it out — the list takes &member=<id> and &date=YYYY-MM-DD filters (recurrence expanded), and by default shows only events the key itself created. If you're building a wall display, add &scope=all for a read-only view of the whole family calendar — removals and edits still only ever touch the API's own events.
New jobs and events appear on every family device within about half a minute. The whole feature is part of Pro.
Personal PINs (optional)
On a shared family tablet, anyone can open anyone's board. If a child wants their space to themselves, you can give them a personal PIN — entirely optional, off by default. Think of it as a courtesy lock between siblings, not a vault (a determined kid who watches you type four digits will get in); the parent PIN remains the real gate, since nothing a kid does counts until you approve it.
Setting one up:
- Parent Dashboard → Kids → edit a child → 🔒 Personal PIN.
- Pick what it covers: Marking only (anyone can look at their board, but only they can check off their own tasks / claim jobs as them) or Marking + page (their board also won't open without the PIN).
- Save. The PIN is stored only as an irreversible hash — never in plain text.
Either way, the child still appears on the family leaderboard — the lock only guards acting as them (and, at the stronger level, opening their page). The parent PIN or a trusted certificate always bypasses it.
If you bump into a child's PIN prompt while you're the one trying to manage things, you don't have to back out and unlock elsewhere: just type your parent PIN in that same dialog and tap "I'm a parent — unlock". It clears the lock and drops you straight into the page with full parent controls.
Forgotten PIN:
No recovery codes needed — you're the backstop. Parent Dashboard → Kids → edit the child → Remove PIN (or set a new one). That's it.
This works alongside "Kids mark their own tasks": that setting decides whether kids may check off their own tasks at all; a personal PIN decides that it's really them doing it. Different questions — they stack.
Parent Dashboard
Tap the 🔐 icon and enter your PIN to access the Parent Dashboard. It has seven tabs:
Payouts tab
Shows the current period's earnings breakdown for each child: base + bonus − deductions = total. Also where you configure the period type (monthly/weekly) and currency symbol.
Owed balance: when a period closes, its payout joins a running owed total for that child — the app is the ledger, you're the bank. The Payouts tab shows who's owed what; tap Settle up when you've handed the money over and it clears (it just records the payment — your savings numbers aren't touched). The owed line stays hidden when nobody's owed, and when you first get the feature, periods you've already settled in real life start as paid, so there's no surprise back-balance.
History tab
Archived records from completed periods. Each entry shows per-child stats: task completion %, best streak, smiley count, and earnings (if applicable), plus a ✓ Paid / ⏳ Unpaid tag — tap Mark paid on a period to settle through it. Show details expands a period's gifts and deductions; Show day by day opens a calendar of every mark in that period. You can clear history if needed — and Rebuild history restores it from the raw marks if you change your mind.
Kids tab
Add, edit, or delete children. Each child has: name, weekly base, avatar, colour, formula, and optional savings goal. Free plan includes 1 child; Pro unlocks unlimited.
Formulas tab
Overview of all four payout formulas with explanations of the psychology behind each one. Shows which child currently uses which formula. Helpful when deciding which rule to assign.
Extras tab
Who can do what — set per child (tap a kid's pill in each row, or "All" to set everyone at once). None of these ever affect money:
| Capability | What it does |
| Self-mark tasks (on by default) | The kid's tap marks a task 🙋 "awaiting approval" — it counts only after you approve. Turn off for a younger child so every mark needs the PIN. |
| Suggest tasks | The kid can propose a task from their own board; it does nothing until you approve it (and they never set a reward). |
| Edit their page | The kid can change their name, avatar, colour, what they're saving for, and their own extra goals. Avatar editing lives here — there's no separate avatar switch. If the kid has a personal PIN, it guards the editor. |
And family-wide settings — these change how much is earned or are a shared event, so they apply to everyone (kept uniform so no sibling feels singled out):
| Setting | What it does |
| Streak freeze | A single off-day is forgiven so the streak survives (a second miss still resets it). |
| Personal-best cheers | When a kid beats their own longest streak they get a 🏆 cheer and their record shows on the leaderboard — growth vs. self, not vs. siblings. |
| Bonus week | Pick an end date and, until then, every smiley counts double (base pay and milestones untouched). A home-screen banner reminds everyone. |
| Savings interest | Set a weekly/monthly rate and each child's savings compound on their own — a hands-on compound-interest lesson, and a reason to keep saving rather than spend. It's credited automatically at the end of each period (you'll see a 💰 toast), counts toward goals and milestones, and never back-credits when you first turn it on. Off by default. |
| Auto-save split | Set a per-child percentage and that share of every payout goes straight into savings at period close — the rest stays spendable. Savings is sacred: it only leaves when a goal is reached and you tap Bought (which deducts the goal's price). You can let a child set their own split (enable it under Extras → "Who can do what"), and goals can be open-ended (no target) to just save and earn interest. Off by default. |
| Give jar | An optional third pot for charity. Set a per-child "Give to charity" percentage next to the auto-save split (the two together can't exceed 100%) and that share of every payout lands in their Give jar at period close, labelled with a cause the child picks ("the animal shelter"). When you actually hand the money over, tap Donated on their board to empty the jar. Off by default. |
| Family calendar | Open it from the 📅 button. Add parents alongside kids (in the Family tab) as colour-coded members — they're just labels, no extra accounts or logins. Create events with a date and optional time, pick any mix of attendees (a shared "Dad & Mia → dentist" is one event with two people), and switch between day and week views (responsive on phone and tablet). Events can repeat weekly (pick the days), monthly or yearly — birthdays! — with an optional end date, and each event has its own reminder (10 minutes to 1 day before, or muted) delivered as a notification. Your chores show up automatically from each child's schedule — and kids can tick their own off right there (same approval flow as the board). Member chips filter the view to one person (a child's device opens on them); jobs posted "for a day" appear on their date, up for grabs; and a repeating shared duty can take turns 🔁 — the calendar shows whose turn it is. A Today strip on the home screen lists what's on. Events are parent-managed; everyone can view — and with the per-child "Add their own calendar events" switch (Extras), a child can add, edit and delete their own events (pinned to them). The ⬇️ button exports everything as an .ics file, and on Pro creates a read-only feed link you can subscribe to from Google or Apple Calendar — it uses its own key, so your room link never leaves the app (rotate or turn it off anytime). |
Settings tab
Account-level configuration:
- Period & Currency: Monthly or weekly mode, currency symbol.
- PIN: Change the parent access PIN.
- Recovery code: A 16-character code, generated the first time you set a non-default PIN and valid until you rotate it from Settings. Save it somewhere safe — it's the only way to reset a forgotten PIN or recover a lost room link. Stored as SHA-256 only (never plaintext).
- Trusted devices: Trust a device for passwordless access and bind it to a person — pin a kid's tablet to them (opens to their board, skips their PIN) or a device to Parent (skips the parent PIN). Shared policy — Optional (device skips PIN), Required (device + PIN), or Disabled (device only). A device is identified by a private name or a client certificate; revoke any from any device.
- Notifications (Pro): Anonymous push notifications on any device — event reminders, streak-at-risk nudges, payout day, approvals waiting and reached goals. Per-device switches for each type; a device pinned to a child only gets what concerns them. No email, no account — the subscription is tied to your room. On iPhone/iPad, install the app to the Home Screen first (iOS 16.4+).
- Sync / Room: View or share the room link, join another room, or leave the current one.
- Referral link: Generate and share your referral link to earn free Pro months (Pro plan only).
- Backup: Export or import a full JSON backup of all data.
Security: The parent session uses a sliding 60-second timer — every parental action (marking a task, switching tabs, editing a kid) resets it. The parent is auto-locked once 60 seconds pass without any activity. Reloading the page also re-locks. Kids cannot access any dashboard tab without the PIN (or a trusted certificate).
Insights (Pro)
The Insights tab turns the marks you already make into something you can act on. It doesn't collect anything new — it just reads your existing history — and it leads with what needs you, not a wall of charts.
Needs attention:
At the top is a short list of nudges, each with a one-tap fix:
- A kid is slipping — their completion has dropped. One tap starts a bonus week to re-spark things.
- A task keeps getting missed — one tap hands it to the job board so any kid can grab it (or you can edit it).
- A kid's gone quiet — one tap turns on streak freeze so one off day doesn't reset their streak.
- A kid's on a roll — one tap switches on personal-best cheers so it gets celebrated.
Acted on one, or it's not for you? Dismiss it with the ✕ — it stays gone until the situation changes (dismissals are kept on this device only). When nothing needs you, the tab simply says so. 🎉
The charts:
Below the nudges, per child: a completion trend across recent periods (fills in once your first period closes), a by-weekday breakdown so you can spot a rough day, and the most-skipped tasks — each with a "move to job board" button right there.
Privacy: Insights is computed entirely on your device from data you already entered — nothing extra is recorded or sent anywhere.
Payout Formulas
Each child is assigned a formula that determines how their weekly base turns into actual earnings. You can change a child's formula at any time.
📊 Proportional
The simplest rule. Earnings are proportional to task completion.
- Calculation: (weekly base ÷ 7 × days in period) × (done tasks ÷ total tasks)
- Smiley bonus: (base earned ÷ days) × smiley count
- Streak multiplier: None (streak is tracked but doesn't boost earnings)
- Best for: Younger kids who need a predictable, fair system.
⚡ Earned Day
Each task has a monetary value. Missed tasks cost a penalty. Streaks multiply everything.
- Task value: (weekly base ÷ 7) ÷ tasks per day
- Penalty: 20% of task value per missed task
- Streak multiplier: ×1.05 after 5 days, ×1.10 after 10, ×1.20 after 20
- Smiley bonus: 4% of weekly base per smiley (minimum 0.50)
- Best for: Older kids who respond to clear cause-and-effect.
🎯 All-or-Nothing
Three tiers: full pay, half pay, or nothing. Simple to understand, drives consistency.
- ≥ 80% completion: Full amount (weekly base ÷ 7 × days)
- 50–79% completion: Half the full amount
- Below 50%: Nothing earned
- Smiley bonus: 4% of weekly base per smiley (minimum 0.50)
- Best for: Kids who need a clear target to hit.
💰 Savings Match
Proportional base earnings plus fixed bonuses at savings milestones — encourages long-term saving.
- Base: Same as Proportional formula
- Milestone bonuses: Fixed bonus paid at 25%, 50%, 75%, and 100% of savings goal
- Configurable bonus: Default €10 per milestone (editable per child)
- Smiley bonus: 4% of weekly base per smiley (minimum 0.50)
- Best for: Kids working toward a specific purchase.
Streaks & Smileys
How streaks work
A streak counts consecutive days where all assigned tasks are marked Done or Smiley. If any task is Not Done (or left Pending at end of day), the streak resets to zero.
- Skipped tasks don't break the streak.
- The streak counter (🔥) appears on the kid's dashboard card.
- Streak multipliers only apply to the Earned Day formula.
- "Best streak" is archived at the end of each period for the history tab.
How smileys work
Mark a task as 😊 instead of Done when the child went above and beyond (extra tidy, helped without being asked, etc.). Smileys:
- Count like "done" for streaks. For completion % they're neutral — excluded from the calculation entirely, so they never lower the score.
- Give a flat bonus: 4% of weekly base per smiley, minimum 0.50 in your currency.
- Show up as a separate stat on the dashboard.
Bonus week
Want a novelty boost without changing the rules? In Parent Dashboard → Extras, set a Bonus week end date — until then, every smiley counts double, and a banner on the home screen reminds everyone. It only multiplies the smiley bonus (base pay and milestones are untouched), and you can end it early. Off by default.
Savings Goals
Give each child something to save toward. The savings bar on the dashboard makes progress tangible.
Setting up a goal:
- Go to Parent Dashboard → Kids → Edit child.
- Enter a Goal name (e.g. "New phone").
- Enter a Goal amount (e.g. 120).
- Optionally enter Amount saved so far if starting mid-way.
How savings accumulate:
By default nothing moves on its own — you update "amount saved" when you actually set money aside, which keeps the ledger honest. But you can automate it two ways (both off by default, both in Parent Dashboard → Extras): the auto-save split routes a chosen share of every payout straight into savings at period close, and savings interest compounds the balance each period. Money put aside this way is sacred — it only leaves when a goal is reached and you tap Bought. See Extras for both.
Extra goals:
Beyond the main goal, you can add a few extra savings goals per child (Parent Dashboard → Kids → edit → Extra savings goals). They show as additional progress bars against the same savings balance — so there's always a milestone in reach (a small "Lego" goal alongside the big "Phone" one). They're display-only motivators; the Savings Match formula still tracks the main goal.
Savings Match formula:
If you use the Savings Match formula, the child receives a fixed bonus (default €10) each time they cross a milestone: 25%, 50%, 75%, and 100% of their goal.
Payouts & Deductions
At the end of each period (week or month), check the Payouts tab to see what each child earned.
Payout breakdown:
Each child's total is: Base + Bonus + Task bonuses + Gifts − Deductions (the small print under the name summarises base, bonus and deductions)
- Base: Calculated by their formula based on task completion.
- Bonus: Smiley bonuses + milestone bonuses (Savings Match).
- Task bonuses: A task's optional bonus amount, paid each time that task is completed.
- Gifts: One-off bonuses you record manually (e.g. money from grandparents). Optionally counted toward earnings or sent straight to savings.
- Deductions: Manual amounts you subtract (broken items, borrowed money, etc.).
Adding deductions:
Open a child's view while parent mode is unlocked. A "Deduction" field appears below the task list. Enter an amount to subtract from their earnings for the current period. Deductions reset each new period.
Recording gifts & bonuses:
Got money from grandparents, a birthday gift, or a one-off reward you want tracked? In the child's view (with parent unlocked), tap 🎁 Add bonus. Enter the amount, an optional note ("Birthday from grandma"), and choose where it goes:
- Add to savings — bumps the savings bar immediately. The child sees the gift on the savings goal.
- Add to earnings — counts toward the current period's payout. Useful for one-off rewards or extra chores done outside the regular schedule.
Each entry appears in the kid's detail page with date, note, and amount. Kids see the list too — it's read-only for them (no edit, no delete), so they can watch their gift collection grow without being able to game it. Bonuses are included in period history when the period archives, so the full picture survives over time.
Paying out:
Jarro tracks — you pay. Hand over cash, transfer to their account, or drop it in a physical jar. The app is the ledger; you're the bank.
Task-only Mode
If you don't pay pocket money (or a particular child's money comes from elsewhere), set their weekly base to 0. The app becomes a pure habit tracker:
- No earnings, formula card, or payout amounts are shown.
- Completion %, streaks, and smileys still work.
- The leaderboard shows completion % instead of money earned.
- Savings goal is hidden (since there's nothing to save from).
- Payouts tab excludes this child.
You can mix task-only and earning kids in the same household. Just set each child's weekly base independently.
Hint: When editing a child, the form shows "0 = tasks only, no earnings" below the weekly base field.
Skins & Themes
Go to ⚙️ Settings (gear icon on the main screen) to browse and apply skins. Changes take effect instantly.
Available skins:
| Skin | Vibe |
| 🎮 Game Quest | Dark with purple/gold accents — the default. |
| 🚀 Space | Deep blue with cosmic gradients. |
| 🍬 Candy | Pink, playful, sweet. |
| 🌿 Nature | Green and earthy. |
| ⚡ Cyberpunk | Neon on dark — high contrast. |
| 👾 Retro 8-bit | Pixel-art inspired colours. |
| 🌌 Deep Space | Near-black with star-like accents. |
| 💎 Holographic | Iridescent shifts and shimmer. |
| ☀️ Light | Clean white daytime theme. |
| 🌑 Dark | Pure dark mode, easy on the eyes. |
Sync & Sharing
Jarro works straight away in your browser — open the link, set a PIN, and start tracking. Data persists locally on this device, so a single-child free setup needs no account, no room, no link.
To sync across multiple devices (or back up to the server), create a "room" — a private space identified by a long random link. Share the link with your partner, grandparents, or anyone who needs access. A popular setup: mount a tablet on the wall or fridge as a dedicated leaderboard device — kids check their progress every morning without touching a parent's phone.
How to share:
- Go to Parent Dashboard → Settings.
- Find the room/sync section.
- Copy or share the room link.
- Anyone who opens that link sees the same data in real time.
Multi-device sync:
Changes sync automatically. If you mark a task on one phone, it saves to the server right away; other devices pick it up within half a minute (they check for changes every 30 seconds). A status indicator shows: Saving → Saved → Synced.
Trusted devices:
In Parent Dashboard → Settings → Trusted devices, you can trust a device so it skips a PIN — and bind it to a person:
- Pin to a child — that device opens straight to the child's board and acts as them; their personal courtesy PIN is skipped on that device. Perfect for a kid's own tablet or phone. (The parent PIN is still needed for anything parental.)
- Pin to Parent — that device unlocks the parent dashboard without the PIN.
A device proves itself either by a name you give it (a private id stored only on that device) or, for extra security, by a client certificate (mTLS — see below). Either way you pick who it's for. The shared Trusted-device login policy governs parent-trusted devices: Optional (device skips the PIN, PIN still works), Required (device + PIN), or Disabled (device only, PIN login off). Every trusted device is listed with who it's for and can be revoked from any device. Locked out? If you choose Disabled and then lose every trusted device, use your recovery code (PinModal → "Forgot PIN?") — recovering re-enables PIN login, so you're never permanently stuck.
Client certificates (mTLS):
For extra security you can identify a device with a client certificate instead of (or as well as) the device name. Manage them in the same Trusted devices card; each shows its fingerprint and common name and is revocable individually.
How to set it up:
Any client certificate works — including one you make yourself. The server doesn't check the issuer; Jarro trusts the exact certificate by its fingerprint.
- Create a certificate on any computer with OpenSSL:
openssl req -x509 -newkey rsa:2048 -days 1095 -nodes -keyout key.pem -out cert.pem -subj "/CN=Mom's phone" — then pack it for import: openssl pkcs12 -export -inkey key.pem -in cert.pem -out jarro.p12 (you'll be asked to set an export password).
- Install it on the device. iOS: send the
.p12 to the phone (AirDrop, Files), open it, then Settings → General → VPN & Device Management → install the downloaded profile. Android: copy the file, then Settings → Security → Encryption & credentials → Install a certificate → VPN & app user certificate. Desktop: import the .p12 into the browser or system keychain.
- Present it — open the app; the browser asks which certificate to use for this site. Pick the one you just installed.
- Trust it in Jarro — Parent Dashboard → Settings → Certificate authentication shows the certificate the browser presented. Tap Trust this certificate.
- Choose the PIN policy (above) — keep it on Optional until every device works.
Tip: one certificate per device, named so you can recognise it — the CN you set above is what appears in the trusted list. Switch the policy to "Disabled" only once at least two trusted devices work; otherwise a lost phone can lock you out of the parent dashboard.
Privacy:
- No email or account needed.
- The room link is the access key — keep it private.
- No analytics, no tracking, no ad SDKs.
- You can permanently erase the room and all its server data at any time: Settings → Sync & Room → Delete room.
Recovering access
There is no account and no email on file, so recovery works differently than you might expect: everything hinges on the 16-character recovery code shown once when you first set a PIN (and rotatable from Settings → Recovery code). Pick the scenario that matches yours:
First, the quick check: if you never completed PIN setup (skipped the wizard), there's nothing to recover — the dashboard still opens with the default PIN 1234. Try that before anything below.
Forgot the PIN (you have the code)
- Tap the 🔐 icon, then "Forgot PIN?" on the PIN screen.
- Enter your recovery code and, in the same step, a new PIN.
- You're in — the old PIN stops working immediately.
Lost the room link (you have the code)
- Open the app on the new device — it starts empty; that's expected.
- Go to Settings → Sync & Room → "Lost your room? Recover with code".
- Enter your recovery code — the room link is restored and your data syncs back. You can set a new PIN in the same step.
Lost both the PIN/link and the code
Two options remain: restore a backup JSON if you have one (Parent Dashboard → Settings → Load backup), or start fresh. We cannot reset the PIN or look up your room. We store only irreversible hashes and no contact details, so there is nothing on our side to verify you with — that's the privacy promise working as intended, but it makes the recovery code genuinely irreplaceable.
Before you need it: check Parent Dashboard → Settings → Recovery code. If no code is set, generate one now and store it outside this device — a password manager, or a piece of paper in a drawer.
Referral Programme
Every Pro family gets a personal referral link. Share it with other parents — when they create a room through your link and upgrade to Pro, you both benefit.
How it works:
- Go to Parent Dashboard → Settings.
- Find the 🎁 Invite Families card (visible on Pro plan).
- Tap Get my referral link — a unique 6-character code is generated for your room.
- Share the link using the copy button or QR code.
- When someone opens your link and later upgrades to Pro, the conversion is recorded automatically.
Rewards:
| Event | Reward |
| Referred family upgrades to Pro | You earn 1 free month of Pro |
| Maximum reward | Up to 12 free months |
Free months are tracked independently from your subscription. If you cancel your subscription but have referral months remaining, Pro features stay active until the bonus expires.
Tracking:
The referral card in Settings shows your code, a shareable link, the number of families who upgraded, and your earned free months. If you have a bonus active, the expiry date is displayed.
Tip: The referral link uses your app's domain, so it works in any deployment — not just jarro.eu.
Backup & Restore
Export a complete backup of your data at any time — kids, tasks, marks, history, settings, everything.
Exporting:
- Go to Parent Dashboard → Settings.
- Tap "Export backup" — downloads a JSON file.
- Store it somewhere safe (cloud drive, email to yourself, etc.).
Importing:
- Go to Parent Dashboard → Settings.
- Tap "Import backup" and select a previously exported JSON file.
- Confirm the restore — this replaces all current data.
Note: Backup includes: kids, tasks, marks, deductions, savings, gifts & bonuses, currency, period mode, language, skin, and history. The PIN and recovery code are included as irreversible hashes — never in plaintext.
Settings
Two settings areas: the ⚙️ gear icon (visual preferences) and the Parent Dashboard → Settings tab (account-level settings).
Gear icon (⚙️) — accessible to everyone:
| Setting | What it does |
| Skin/theme | Visual appearance (see Skins section). |
| Language | UI language — 7 options, auto-detected on first use. |
| Sort leaderboard by | Rank kids by total earned or by completion %. |
| UI Scale | Make everything bigger or smaller (60%–200%). |
Parent Dashboard → Settings tab:
| Setting | What it does |
| Period type | Monthly (calendar month) or Weekly (7-day cycle). |
| Currency symbol | What appears after amounts (zł, €, $, £, etc.). Auto-detected from your device region on first launch (e.g. US → $, PL → zł, GB → £). Change anytime — the value persists per room. |
| Change PIN | Update the parent access PIN. |
| Recovery code | 16-character code, generated the first time you set a non-default PIN and valid until rotated from Settings. The only way to reset a forgotten PIN or recover a lost room link. Stored as SHA-256 (locally in the browser, and on the server for Pro rooms) — never plaintext. |
| Certificate auth | Add multiple client certificates for passwordless parent access. Choose PIN policy: Optional (cert bypasses PIN), Required (cert + PIN), or Disabled (cert only). You can add, view, and revoke certificates individually. |
| Sync / Room | View room link, leave room, or join a different room. |
| Referral link | Generate and share your referral link. Earn free Pro months when referred families upgrade (see Referrals section). Pro plan only. |
| Backup | Export / import data (see Backup section). |
| Auto-logout | Sliding 60-second timer — each parental action resets it. Auto-locks after 60 seconds of inactivity, or on page reload. |
FAQ
Can kids change their own tasks?
They can't add, edit, or delete tasks — that requires the parent PIN. By default they can mark a task as done: it shows as 🙋 "awaiting approval" and only counts after you approve it (one tap on "Approve all"). You can switch this off in Parent Dashboard → Extras.
What happens if I forget my PIN?
Tap "Forgot PIN?" on the PIN entry screen and enter the recovery code you saved when you first set your PIN (the 16-character code shown once in the "save this somewhere safe" modal). You can optionally set a new PIN in the same step. The same flow also recovers a lost room link — useful on a fresh device — when accessed from Settings → Sync & Room → "Lost your room? Recover with code".
If you never saved the code and lost your PIN, your options are: (a) restore from a backup JSON if you have one, or (b) clear the app data and start over. We can't recover a PIN without the code — it's hashed (PBKDF2/bcrypt) and never readable on either side.
Can I change a child's formula mid-month?
Yes. The new formula applies immediately to all future calculations. Past marks stay as-is.
Do pending tasks at end of day count as "Not Done"?
Pending tasks do reduce completion % — they count toward the total but not toward "done". The difference from "Not Done" is that pending tasks don't trigger the 20% penalty in the Earned Day formula. Only explicit "Not Done" marks trigger penalties. In practice, leaving a task pending has the same effect on earnings as Not Done in Proportional and All-or-Nothing, but a slightly softer effect in Earned Day.
Can I use Jarro without internet?
Yes. Jarro works offline as a PWA. Without a room, all data stays in your browser — useful for the free single-child setup. With a room, changes sync automatically once you're back online.
What happens to my kids if I cancel Pro?
Your data is never deleted. Extra kids beyond the free limit become read-only — their cards stay visible with a 🔒 indicator, and tapping one prompts you to resubscribe. Marks, history and savings are all preserved. Resubscribing restores full access instantly.
What happens when the period ends?
The current period's stats are automatically archived to the History tab. The new period starts fresh — every day begins with tasks in pending state (marks are per-date, so previous period's marks don't carry over). Streaks carry over if unbroken.
Can different kids have different currencies?
No — currency is a household-level setting. All kids share the same currency symbol.
Can I get Pro for free?
Yes. Share your referral link (found in Parent Dashboard → Settings on Pro). Each family that upgrades through your link earns you one free month of Pro — up to 12 months total. Free months work independently from your subscription: even if you cancel billing, referral bonus time stays active.
Is there an age limit?
No account is created, so no age verification is needed. Jarro works for kids of any age — younger ones enjoy the visual progress and streaks; older ones respond to the formula mechanics and savings goals.