← All privacy impact assessments

PIA: intentions, beneficiaries and the motivation layer

Status: Built and live since 8 September 2026, and revised on 10 September 2026 to cover changes made that day, on 29 September 2026 to record a defect in the brief's cache and a planned change to the brief, on 30 September 2026 to record that a member's plan will be encrypted on their own phone (§3, "Sealed on your phone"), and on 18 October 2026 to record that that encryption is withdrawn before it ever reached a phone, and what now keeps a shared goal's reasons from the group instead (§3, "Ordinary text again"). Written: 8 September 2026 · Last revised: 18 October 2026

As built, 18 October 2026. The encryption §3 describes is withdrawn by the third stage of content encryption (the third-stage assessment): from the app update released after 17 October 2026 a member's plan is stored as ordinary text again, and no phone encrypts a new plan item. A plan item written in the window between the two updates stays encrypted until a phone that holds the key opens it, and is written back as ordinary text from then on. The promise the encryption was carrying — "your notes and your reasons stay private" — is now carried by the database's own rules instead, as §3's "Ordinary text again" sets out. Nothing here is legal advice. Children's Code citations are to the exposure draft; section numbers may move on registration (due 10 Dec 2026).

The 10 September 2026 amendment changes three things this assessment asserted, and the changes are marked inline in §4, §5 and §8 rather than appended, so there is one current document and not a document plus a correction.

  1. A model now writes the beneficiary question. §4 said the question bank had no gate because no model was involved. That remains true of the bank; a second surface now asks the same question with a sentence written for one specific task. The model writes prose and nothing else — the app picks the task, the member taps the answer, and a line naming anybody is dropped by code before it renders.
  2. One answer is now visible to the group. A beneficiary answered from the home screen lands on the shared task list, where the household sees it. Every other answer this feature collects stays visible only to the person who gave it. The card says so before the tap.
  3. A goal may be shared with the group, and owns the tasks it generated. Sharing is the member's own act on their own row; a day's or a week's plan can still never be shared, and the database refuses it rather than the app declining to offer it.

The 29 September 2026 amendment records one defect and one planned change, both from our home brief assessment, and marks them inline in §3, §4 and §8.

  1. A defect: the brief's cache is readable by the whole group. §3 said the reader's own intentions in their brief created no new disclosure path, because the brief is cached per reader. The cache is per reader, but every active member of the group can read every row of it, so another member could read a sentence written from somebody else's plan. That is not an accepted risk; the planned fix makes each cached brief readable only by the member it was written for, and it ships with the brief's redesign.
  2. A planned change: the brief stops receiving plans and beneficiaries. The redesigned brief is one paragraph for the whole group, written from group-shared records only. App versions carrying it send no member's plan, intention or beneficiary to our servers for the brief: the reader's own plan is shown as a line composed on their own phone, and the home screen's "who does this help?" card uses the question bank's own wording rather than a model-written line. Older app versions keep today's behaviour until they are updated.

A second 29 September 2026 amendment — a shared plan now follows the plan. When a member has posted their plan to the group chat and later ticks one of those items off, the line for it in that same message is struck through, and un-struck if they un-tick it. No new message is sent and nothing announces the change. Four limits hold it, each enforced by the database rather than by the app: only the member who wrote the message can change it; only while they are a member of the group; only a message one of their own plan items was shared as; and only by sending the new words encrypted under the group key, exactly as a new message is sent, so an edit can never put readable text where encrypted text was. What the database cannot check — because it cannot read the encrypted words — is that only the strike marks changed; the member could in principle rewrite their own shared plan message. It is their own message about their own plan, so that is accepted (§8). Nothing about this reports anybody's response to anything: the strike records the member's own progress, never who read the plan (§6).

This assessment is unusual in one respect and it is worth naming at the top. Every other PIA in this register is about data a household already produces — a feed, a photograph, a message — and asks who can see it. This feature asks people to type something the app has never held before: why they are doing something, and who for. That is a statement about a relationship, and about a child in a large share of cases. The interesting risks here are not access-control risks. They are the risks of holding a motive at all, and of a screen that reads a household's own answers back to it in the wrong voice.


1. Purpose and scope

What it is for, in one sentence. People do the work when they can see who it is for, so every task can carry a beneficiary and a reason, each member gets a private plan for today and tomorrow, and thanks travels as a message from one person to another.

What it is deliberately not. It is not a scoring system. Nothing in this feature writes a game_ledger row, awards a point, counts a streak, or ranks anybody. That is a design constraint taken from the psychological literature this feature is built on — extrinsic rewards for caring work reduce the caring (the crowding-out finding) — and it is also what keeps the feature clear of the line we draw around feedback features (§6, and our assessment of the ban on feedback features for under-16 accounts, §5.3).

In scope: the beneficiary and reason on a task; the private intentions table; the question bank; the rewritten daily brief; thanks as an addressed message; claiming an unclaimed need; the assistant check-in; the child's own record page; the monthly invisible-work prompt.

Out of scope, covered elsewhere: the child-account model itself (our assessment of child accounts, which gates that model and consumes the record page built here); the planned group privacy levels and Device-only mode (planned — §4 states what this feature owes them); planned Tier 1 encryption of intention text (§3); the games hub, which is a separate optional layer and is untouched.

2. Data involved

Kind Whose Children's? Sensitive? Free text?
group_tasks.beneficiary_kind — member / baby / pet / everyone the group's when the beneficiary is a child, yes no no — a closed CHECK list
group_tasks.beneficiary_user_id / beneficiary_baby_id — real foreign keys, on delete set null the group's yes when it names a child no no
group_tasks.beneficiary_label — a pet's name, or nothing the group's no no yes
notes_meta.why — one line: what will be better once this is done the author's, about the beneficiary yes when it is about a child possibly — "so Ada can get to physio" is health information a parent typed yes
user_intentions.text — a free-text goal, or a copy of a task title the member's own when the author is a child, yes possibly yes
user_intentions.why, .obstacle, .when_text — the question bank's answers the member's own as above possibly yes
user_intentions.day / .week_key — a calendar date or week in the group's zone the member's own as above no no
user_intentions.beneficiary_kind / _id / _label the member's own, about another person yes when it names a child no the label only
user_intentions.status — planned / done / dropped the member's own as above no no
user_intentions.shared_message_id — the chat row, when the member chose to post their plan the member's own as above no no
A thanks — an ordinary group_messages row, from one member, naming the doer the thanker's when a child sends one, yes no yes — the member may edit the canned note

What is deliberately not collected, which is the more useful list:

Strictly necessary (exposure draft s 38(2)(b)), per item. None of this is necessary to provide GroupApp, and the honest answer is that it is optional and inert until a member uses it:

So the strictly-necessary claim is not "we need this to run the service". It is that nothing is collected until the person it belongs to chooses to create it, which is the form of necessity available to an optional feature. Where a child is the subject rather than the author — a task "for Ada" — the data collected about Ada is a name already in the group and a line about what she needs, which is the minimum the feature can work on.

3. Flows and locations

Data Device Supabase (Sydney, ap-southeast-2) Reaches a model? Crosses a group boundary?
Beneficiary kind / id / label rendered as a face on the card stored plaintext on group_tasks yes — via the brief, as a first name or "everyone" no
notes_meta.why typed, rendered under the title stored plaintext in the existing jsonb column yes — via the brief, under the same consent as any task note no
user_intentions rows the member's own plan screen owner-only; from 30 September 2026 the words are encrypted on the member's phone (below) only a goal's line, sent by the member's phone when they ask what it would take (§4) no
Question-bank answers tapped written to the columns above as above no
A thanks composed on the thanker's device an ordinary group_messages row as any chat message does today — which is to say the brief does not read chat no
A claim tapped group_tasks.assigned_user_ids — an ordinary assignment as any assignment does no
The assistant check-in the question is rendered on the asked member's device reads that member's own intentions and the group calendar yes — that member's own plan only no

One route was added on 2026-09-10, when this screen was released to members. The composer's "Add to the group's list too" switch turns a free-text goal into a group_tasks row as well as an intention — so the words a member typed privately can become something the household sees. Assessed and accepted, because it is the member's own act on their own goal and nothing else changes: the switch is off every time the sheet opens, its own line says what it does before it is used, and with it off the write is exactly one owner-private row. It is not the §9 trigger below ("another member's intentions become readable"): no intention becomes readable by anybody, the member creates an ordinary task. The user_intentions row then points at that task, so there is one title rather than two that can drift.

Three flow facts that carry the weight:

  1. The brief is already a per-user generation. The system that builds it caches a separate copy for each reader, so adding the reader's own intentions to it does not create a new disclosure path — nobody else's copy of the brief can contain them. Adding another member's intentions to any brief would, and nothing does. Corrected 29 September 2026: that is true of writing and not of reading. Every active member can read every cached copy, so the reader's intentions in their own copy were readable by the rest of the group. The planned fix makes each copy readable only by its reader, and the redesigned brief stops sending intentions at all (see the amendment at the top).
  2. The question bank never calls a model. It is a fixed list of questions whose answer buttons are the group's own roster. This is what lets a child, and a group using the planned Device-only mode once it exists, have the whole motivation layer with no inference in it at all.
  3. Nothing here reaches a log. The feature writes no log line naming a member, a beneficiary or an intention — our own rule is that anything written to a log outlives an account deletion meant to erase it, so a log must never name anyone. user_intentions.user_id and group_id are foreign keys that cascade on account and group deletion, so an erasure reaches every row.

A note on the beneficiary's shape, because building it turned up something worth recording. The beneficiary is two foreign-keyed id columns rather than one polymorphic uuid, precisely so an erasure reaches it: a single untyped id could carry no key, and a departed member's id would have sat in group_tasks for ever. The first version then made the natural mistake of also requiring the id ("kind member implies a user id"), which makes on delete set null produce a row that violates its own constraint — so Postgres refuses the deletion, and a constraint written to describe the data blocks the erasure it was meant to enable. The constraint now says which column a kind may use and not that the subject still exists; a named kind with no id is the erased state, and the app renders no face for it. Caught by an automated test rather than by review, and the test that caught it is kept as the assertion.

Sealed on your phone (30 September 2026). Until this date intention text and the why were plaintext at rest. From the app version released after it, a member's phone encrypts the words of their own plan before saving them:

Ordinary text again, and the reasons held by the schema instead (18 October 2026). The encryption above is withdrawn by the third stage of content encryption (the third-stage assessment), which stops encrypting every everyday record on a phone. From the app update released after 17 October 2026 a member's plan is stored as ordinary text in our Australian database. That takes the key out of the sentence the bullet above rests on, so the sentence needed something else to rest on, and this is it.

4. What reaches a model, and when

The gate is the one that already exists. This feature adds no new consent purpose and no new switch.

Surface Gate Fails to
The daily brief (now including the reader's own intentions and beneficiaries) — planned to change, 29 September 2026: the redesigned brief receives neither; the reader's plan becomes a line composed on their phone user_tool_settings.dashboard_insight — the existing per-user tool setting, treated in our code as requiring consent; the ledger's assistant purpose exists but switching the setting records no act in it (checked 29 September 2026) the deterministic fallback brief, which is written in the same voice and needs no network
The on-device brief user_tool_settings.dashboard_insight_on_device, purpose on_device_brief the server brief, then the fallback
A baby named as a beneficiary, in the brief group_babies.show_recent_summary as well, read the same way everywhere it is checked, which fails closed on an absent value the baby's name is replaced by nothing — the item is described without the beneficiary
The assistant check-in user_tool_settings.dashboard_insight (it is the same reader, the same consent, the same brief pipeline) no check-in; the need still appears on the shared list, which is deterministic
The question bank no gate, because no model is involved n/a
The beneficiary ask's line (the 10 September 2026 amendment) — one question about one task, on the home screen user_tool_settings.dashboard_insight — it rides on the brief's own generation, the same reader, the same consent, the same billing. Planned to change, 29 September 2026: app versions carrying the redesigned brief always use the fixed wording, so no model writes this line the deterministic question bank's own fixed wording. The card is the same card with a less specific sentence
The goal breakdown (the 10 September 2026 amendment) — "what would it take?", asked of one goal the member wrote a separate request to our assistant, using the reader's own weekly allowance, refused outright for a child account and a group using Device-only mode. From 30 September 2026 the member's phone sends the goal's line in the request, because the stored copy is encrypted under a key our server does not hold; our server still checks the goal is the member's own before answering. An older app version that sends no line is answered from the stored copy while it is unencrypted, and with no suggestions once it is encrypted no suggestions; the member writes their own tasks, which is the path everybody has
Thanks, claims, sharing a plan no model at all — they are chat rows and assignments n/a

Two absolute rules, both of which are the reason this section is short:

The 10 September 2026 amendment: how "never proposes a motive" survives a model writing the question. A question that names somebody has proposed the answer, whatever the question mark at the end says — "Ada's swim bag, who does this help?" is a suggestion wearing an interrogative. Three mechanisms, in order of how much they are relied on:

Mechanism Structural or conventional?
The model is never told who is in the household. The ask's prompt carries one task title and one timing phrase. There is no roster in it, so there is no name available to propose Structural — an automated check scans every assembled prompt for a roster word, and it caught a real instance: our own drafting rules used to contain a first name in an example, which the check refused
A line containing any household name is dropped, on the server and again on the device against that device's own roster Structural — enforced independently on both sides, and pinned by automated tests
The model is never shown a list of tasks to choose between. The app nominates one, deterministically, from the list already on screen; no task id appears in any prompt Structural — the task chosen is pinned by an automated test, which also checks that the task's id never appears in the prompt

Children and Device-only groups still see no model, and still lose nothing. The ask falls back to the bank's own words; the goal, its tasks and its progress line involve no model at any point; the breakdown answers with no steps and a reason, for both, which the sheet renders as "add your own". The destination was built first here too.

Children and Device-only groups see no model. Today the first half is a property of child accounts, which do not yet exist, and the second is a property of the planned group privacy levels, which do not yet exist either (there is no group privacy level yet). What this feature owes them, and builds now, is the deterministic half: the question bank, the fallback brief in the same voice, the deterministic needs list and a deterministic check-in card. When child accounts and group privacy levels land, routing a child or a locked group to those paths is a routing decision with the destination already built. This document is the record that the destination was built first; if child accounts ship with a home screen that calls the model brief, that is this rule being broken.

5. Risks and mitigations

The first two rows are the ones this feature exists to be careful about. They are harms to a person's motivation and to their relationships, not to their data, and the Code asks about emotional and developmental impact (s 38(2)(f)) in exactly those terms.

Risk Who is harmed Mitigation Structural or conventional? Residual
Crowding out. The app attaches a reward to caring work, and the caring becomes about the reward — the finding this feature is built to avoid reproducing every member, and the children who are the beneficiaries of the work Nothing in this feature is scored: no game_ledger write, no points, no streak, no count of any kind. Thanks is a message, not a tally Structural for the ledger (a game_ledger row needs a kind in the game_ledger_delta_scope CHECK, and this feature adds none) and test-pinned for the rest — an automated scan rejects a thanks count, a streak, and anything like them A later feature adds a counter in good faith. The scan is what fails
Guilt. A member opens the app and is told what they failed to do. A carry-over is the sharp case: the app knows they planned it and did not do it every member; most acutely a parent already short of sleep, and a child who is learning what the adults around them think of effort A carry-over shows once, worded "still on your list", with a one-tap "not this time" that asks no question and records nothing. An automated test rejects the words should have, failed, didn't, again, only and comparatives, in the model prompt and in the deterministic fallback both The vocabulary is test-pinned (a scan, mutation-tested); "shows once" is structural (it is date arithmetic on the row, not a counter) A sentence that shames without using any of the banned words. Accepted — §8
A member's private plan becomes visible to the household the member Only the member who wrote the row can read user_intentions; sharing is an explicit act that posts an ordinary message the member composed Structural, and proven with a second member of the same group rather than a stranger —
The household learns who was asked to cover a need and declined the person who declined A decline writes nothing. The round-robin cursor is a position, not a log. The household sees only "claimed by Sam" Structural — there is no column Somebody infers a decline from a silence. Accepted; it is the same inference an unanswered text message carries
A why about a child records health information that child Nothing filters it, and nothing should — "so Ada can get to physio" is what the parent needs to write Conventional: the field's copy asks what will be better, not what is wrong Accepted and disclosed. Same shape as the cross-group RSVP note
A child's own record page becomes a performance review that child Own record only, no comparison, no streak, no points, no total. Faces and what was done, for whom Conventional — the screen's contents, pinned by a copy scan A guardian reads it as one anyway. Accepted; §7
The beneficiary face turns a task list into a picture of who does most for whom every member; the person doing least Per-person counts are never shown. Coverage is stated ("Thursday: covered"), the number of people is not Test-pinned by the copy scan; The Deal's balance view remains the only surface where load is compared, and it compares from the last deal Accepted — the app deliberately keeps exactly one such surface
An intention naming a child reaches a model in the reader's brief that child The assistant consent gates it; a baby beneficiary additionally needs show_recent_summary, failing closed; the digest carries a first name, never a note about the child Gate is structural; what the digest carries is conventional, pinned by the prompt test Region is wherever the assistant runs today; that is expected to change once the planned group privacy levels ship. Must be stated in copy
Intention text is plaintext at rest the member None today. It is in scope for planned encryption — Accepted and disclosed — §3, §8. 18 October 2026: the encryption shipped and was then withdrawn; this row is the standing position again, and the reasons behind a shared goal are held off the household by the schema rather than by a key (§3, "Ordinary text again")
A thanks becomes a way to nag: "thanks for finally doing it" the doer Canned notes only, scanned for shaming grammar; the member may edit, and then it is an ordinary message they wrote and own The canned set is test-pinned; an edited one is conventional — it is a person's own speech in a chat, which the app does not police Accepted
A thanks is read by the whole group, not only by the person thanked the doer, who may not want the attention The app has no direct message, so the group chat is the only channel a message can travel on. The sheet says so before it is sent, in those words Structural that it is an ordinary chat row; the disclosure is test-pinned Accepted and disclosed. Building a private channel is a much larger change than a sentence, and inventing one for this would be a new messaging surface with its own assessment
A child is thanked for work an adult assigned them, teaching that care is transactional that child Thanks names the act and the person, never a count; nothing accumulates Structural — nothing accumulates Accepted; §7
The 10 September 2026 amendment — a member answers "who does this help?" believing it is private, and the household sees the face the member, and the person named The card carries a fixed sentence ("Your group sees this on the task."), rendered unconditionally above the skip, in the same slot the check-in's reason line occupies. The ask is only ever offered for a task the member is already assigned to or created, so it is never a claim about somebody else's work Conventional for the sentence (an automated check confirms it says the group sees it); structural for whose tasks are offered A member taps a face without reading the line. Accepted — the alternative is a confirmation step on a one-tap question, which is how an optional question becomes a form
The 10 September 2026 amendment — the model's question leads the answer, by naming somebody or by implying who it is for the member, and the person named Three mechanisms in §4 above: no roster in the prompt, no task list in the prompt, and a name-bearing line dropped by two independent checks Structural, checked on both sides and in the assembled prompt A line that leads without using a name ("who does this help — think about who has swimming?"). Accepted, and the same shape as the residual on the vocabulary scan: a floor, not a proof
The 10 September 2026 amendment — a shared goal becomes something the household has an opinion about: a member shares a goal, and its unfinished tasks become visible evidence the member who shared Sharing is the member's own act on their own row, one tap in each direction, and taking it back is real (the database stops matching it to the household view). The progress line is a fraction of what exists — no percentage, no bar, no elapsed time, no comparison between goals or between members. Nothing notifies anybody that a goal was shared, or that one was taken back Structural for the visibility and its reversal (a database constraint that limits sharing to a goal, plus — from 18 October 2026 — the view public.shared_goals, which is what the household reads and which has no reason column in it, over an owner-only table); test-pinned for the fraction's shape What the household already saw cannot be unseen. Accepted and disclosed — the sharing screen's own fixed wording says what travels before the switch is touched
The 10 September 2026 amendment — a private goal's shape leaks: the household cannot read a goal but can see which tasks belong to one the member The link lives in intention_tasks, owner-only, rather than as a source_intention_id column on the group-readable group_tasks. A member sees the tasks as ordinary tasks and nothing that groups them Structural — proven with an active second member of the same group —

6. The features-step rule, re-run for this feature

The app's position under the under-16 rule is settled at the features step: it has no recommender feature and no logged-in feature (Rules s 4A), so its purpose is never argued. This is the first feature since we removed read receipts, likes and reactions that plausibly touches 4A(5)(a) — displaying to a member information about the extent to which other end-users have engaged with material posted by them — so the test is re-run rather than assumed.

Candidate Is it a feedback feature? Why
A thanks No — and this is the sharp one It is a message from one person to another, rendered as an ordinary message and nowhere else. It is not displayed on the task, it is not counted, and there is no "most thanked". A member never learns how many people responded to anything they did. A private message of thanks is the same object as any other chat message, which the assessment already treats as content rather than feedback
The beneficiary face on a card No It says who the work is for. It reports nobody's response to anything
A claim No It is an assignment — a coordination fact, the same class as an RSVP, which §5.3 of the assessment already keeps
Coverage ("Thursday: covered") No It is a fact about the week, not about a person, and it carries no number of people
The child's own record No It is that child's own record of their own acts, shown to them. Nobody else's response to it appears
A carry-over No It is the member's own plan, shown to themselves
The 10 September 2026 amendment — a goal's progress line ("2 of 4 done") No It counts TASKS, not people and not responses. It is the member's own goal shown to themselves, and to a household only if they shared it; nobody's engagement with anything is reported, and there is no total across goals, no rate and no history of what the number was
The 10 September 2026 amendment — a shared goal seen by the household No It is content the member published, the same class as the plan they choose to post into the chat. Nothing reports back who read it: there is no viewer list, no acknowledgement, no reaction, and no notification that it was shared
The 10 September 2026 amendment — the model-written question No It is a prompt to the reader about their own task. It displays nothing about anybody's engagement with anything
The second 29 September 2026 amendment — a shared plan's line struck through as items are ticked No It is the member's own progress on their own items, shown in a message they chose to post. It says nothing about how anybody else responded to it: there is no viewer list, no acknowledgement, no "edited" marker and no notification

What would make one. A thanks count on a task; "you've been thanked 4 times this week"; a "most helpful" list; a reaction on a thanks; a viewer list on a shared plan; a streak of kept intentions. Each is a natural product idea and each changes what the app is in law. That is a conversation we would have openly, and a revision of our assessment of the feedback-feature ban, not a change we would make quietly — and an automated test is set to fail the moment a thanks count, a streak, or anything like them appears in the chat code.

The endless-feed and ranking limbs (s 4A(4), and the recommender limb) are untouched. The dashboard's intentions section is the member's own list, bounded by the horizon and ordered by time; the needs list is the group's own unclaimed tasks, ordered by when they are due. Nothing is ordered by predicted interest or by anything inferred about the reader.

The 10 September 2026 amendment and the recommender limb, which is the one worth being careful about. The goal breakdown is the closest thing this feature has to a recommender, and the argument is the one already made for the brief's quick-add suggestions (our assessment of the feedback-feature ban §5.1): what is proposed is derived from one line the member wrote about themselves, in that moment, at their own request — nothing is inferred about their preferences, nothing is ranked, nothing is retained, and the same goal asked twice is not refined by anything the app learned in between. The model is given the goal text and no other household data at all: no roster, no tasks, no calendar, no history. The task selection for the beneficiary ask is likewise not a ranking — it is the first task in the order already on screen that the reader is part of and that has an empty field, chosen deterministically by construction. If either of those stops being true, the features step is re-run, not patched.

7. Best interests of the child (exposure draft s 10)

Children appear here in two roles and they carry different arguments.

As beneficiaries — the common case. A task says it is for Ada. Ada's name and face are already in the group; what is new is a line about what she needs, written by a parent. What the child gets: work that is more likely to be done, by a household that can see who it is for. What it costs: a durable record, in a family app, of a child as the object of other people's effort — including during a period the child has no view about. The safer design was a beneficiary that is a role ("the youngest") rather than a person. It was not chosen because a role does not do the thing the feature is for: contact with a specific person is what raises effort, and a household that has to translate "the youngest" back into Ada every time gets neither the effect nor a clean record.

As authors — the case that arrives with child accounts. A child can set an intention, answer the question bank, claim a need and send a thanks. All four are good for a child: a plan they made themselves, a reason in their own words, a choice to help rather than an assignment, and an act of gratitude addressed to a person. Three properties protect them, and they are the reason the deterministic half of every surface exists:

  1. No model touches a child's words. The question bank has no inference in it, the fallback brief is deterministic, and the check-in card for a child account is deterministic. Under the privacy ladder no under-16 account talks to a model at all; this feature's job was to make sure that costs the child nothing, and it does not — they get the same questions and the same plan.
  2. Nothing a child does is scored. No points, no streak, no comparison with a sibling. A child learning that care is what you do for people you love is the entire design goal; a child learning that care is what earns points is the failure mode the crowding-out finding predicts.
  3. The record page is the child's own. Own acts, own beneficiaries, no ranking. A guardian can see it, because a guardian can see the group's tasks; what a guardian cannot get anywhere is a number to compare one child with another.

Where the child's interest and the parent's diverge. A parent would find a "who is pulling their weight" view useful, and several of the components here are two lines from producing one. The child's interest won: per-person counts do not exist, and The Deal's balance view — which compares load between adults, from the last deal, never all time — stays the only comparison surface in the app.

What the child is told (the s 33 posture). On the intentions screen, in plain words: your plan is yours, the others in your group cannot see it unless you share it, and thanks is a message you send. On the record page: this is what you did, and only you and the grown-ups in your group can see it. The child-account work owns the wording of the child-facing variant; this document owns the requirement.

8. Residual risk we accept

8A. A household streak on a chore tally, and why it is outside this document's ban (2026-09-10)

Status: a decision we took with the conflict in front of us. This section exists because the feature it describes trips a rule this document is the source of — our rule that nothing in the motivation layer is counted — and the rule says plainly that tripping it is a decision to be made and written down, not a rename.

What was built. A repetitive task — a tally, the thing the home screen counts "+1"s against — may now carry an optional target: three a day, or five a week. Its tile shows progress toward that target, and a badge showing how many periods in a row the target has been met. Meeting it drops a handful of mascots under parachutes across the screen.

Why it is not a feedback feature under Rules s 4A(5)(a). That limb asks whether the service can display to an end-user information about the extent to which OTHER end-users have engaged with material posted by that end-user. Three properties, each structural rather than conventional:

Property Held by
The run is the household's, combined The calculation takes no user id anywhere. There is no parameter through which a per-person answer could be requested
Nothing is ranked, and no member is named The tile draws one number about one tally. There is no list of members, and no ordering of anything
It counts a chore, not a response to somebody's work The input is task_completions rows for one task. Nothing about who reacted, viewed, thanked or claimed enters the calculation

Why the crowding-out argument in §5 does not reach it either, and where the honest doubt is. §5's finding is that attaching a reward to CARING WORK reduces the caring, and it is the reason nothing in this feature is scored. A repetitive tally is a different object: it is the household counting nappies, dishes and dog walks, and the target is a number a member typed in themselves because they wanted to aim at it. The app already prices this trade in a bounded, opt-in place — the Games hub has points, ranks and celebrations over exactly this work.

The doubt is real and is recorded rather than argued away: the crowding-out finding is about the psychology, not about the schema, and a household that starts feeling watched by a flame badge on its nappy tally has been harmed whether or not the number is per-person. Two things bound it. The badge appears only from two periods up, so a single met day says nothing. And a target is off by default on every tally that exists and every tally created from here — a member has to choose it, which is the same consent shape §5 relies on everywhere else.

Residual risk we accept (10 September 2026): that a household experiences the run of met periods as pressure rather than as acknowledgement, and that the way out — turning the target off — is discoverable only by editing the task. Accepted on the basis that the target is opt-in, that nothing is comparative, and that the app carries no notification about a broken run: a run that ends is simply a badge that is no longer drawn, and nothing anywhere tells anybody it ended.

What would put it back inside this document's ban, and what the allowance in the test that pins the no-feedback-features rule deliberately does NOT cover:

Each of those is a change of what the feature is, and re-opens both arguments above.

Extended to routines, 14 October 2026. A routine's household run is now celebrated at milestones, on by default rather than chosen. It keeps all three properties above and none of the four things listed, and adds limits of its own: nothing shows the run between milestones, and each member has an off switch. The assessment and the accepted risk are in the Routines assessment, under "A household's run".

9. Review trigger

10. Checklist against exposure draft s 38(2) (verified 2026-09-08)

s 38(2) Requires Answered in
(a) nature, scope, context, flow and purposes §§1–4
(b) why collection is strictly necessary §2, per item — the honest answer is that it is optional and inert until used
(c) lawful and fair means §4 — the existing consents, no new bundled ask, no dark pattern; every question skippable with no record
(d) consistent with the best interests of the child, with reasoning §7
(e) how the entity complies with the Code and the Act §4 and the structural/conventional column throughout §5
(f) risk of harm — physical, emotional, developmental, material §5, first two rows especially: crowding out is a developmental harm and guilt is an emotional one

s 38(3): conducted before the feature is made available — this document was written before any of the feature's code. s 39: listed on our published register, live since 9 September 2026.

11. Sources

Primary: Children's Online Privacy Code exposure draft ss 10, 13, 14–17, 33, 38, 39 — via docs/privacy_posture.md §4.2; not independently re-read for this document, which is recorded here rather than left to be assumed. Online Safety (Age-Restricted Social Media Platforms) Rules 2025 s 4A — quoted and verified in 2026-09-ban-self-assessment.md §14.

The psychology this feature is built on is summarised in the specification for this feature (implementation intentions; the fresh-start effect; beneficiary contact; gratitude expressed from one person to another; autonomy over assignment; and the crowding-out finding). The individual studies were not retrieved or verified for this document. They are cited here as the design's stated rationale, not as established fact, and no user-facing copy anywhere in this feature makes a claim about them.

Also drawn from our own internal rules and code: our rule that The Deal may count contributions but must never characterise them or rank people by them (the no-comparison rule this feature inherits, and the copy-scan pattern it reuses); our rule that the app never shows anyone how others engaged with what they posted (§6); our internal rules governing what data the home brief and its model input may include (§4); our rule that a stored item's payload must always match its declared shape (why why goes in notes_meta and never into a new notes marker); our rule that row-level security must be switched on before we write access policies for it; our rule that background code must refuse to save data for a group the member has since switched away from; our rule that switching between groups happens as a single database write; lib/settingsScope.ts; lib/consents.ts; our assessment of child accounts; our assessment of the feedback-feature ban §5.3.

Planned, not built at the time of writing: everything in §§1–8 that this document assesses; child accounts; group privacy levels and Device-only mode; Tier 1 encryption of intention text; the consent ledger's use for a new purpose — this feature adds none.