Heritage Kids: children’s data risk map for counsel
This is not legal advice. It is the product team’s map of where the design of Heritage Kids touches children’s-data law and vendor terms, written so counsel can confirm, correct or add to it. Every question for counsel needs an answer before the pilot. The residual risk is our own view, not a legal opinion.
Updated 15 November 2026 from the PRD risk map (R-1 to R-12) for the vendor chains of the architecture (FR-13): Spitch, Sarvam, Anthropic, Cloudflare Workers AI and AI Gateway, and the open-source model that Workers AI runs. There is no OpenAI service in the product (no OpenAI API, adapter, key or account), and no Google model (Gemini or Gemma).
What the product does with a child’s data
- A parent signs in with an email code and gives consent before any child profile exists. A child has a nickname, an age band and a picture, never an account, email or password.
- A spoken turn is recorded in the browser (at most 30 seconds), uploaded once, held in memory for one request, sent to a speech-to-text provider through Cloudflare AI Gateway with logging off, and dropped. No database, file store, log, queue or error report holds child audio.
- The transcript (text) is kept for 90 days for the weekly report, then erased. The language model sees the transcript and the place script only, never the nickname, age or any id, and returns ids of reviewed pack lines: the child only ever hears pre-recorded or pre-generated lines.
- The weekly report email is opt-in, off by default, and holds a link only, never the child’s words. There is no share link.
- Parents can export everything, withdraw consent (talking stops at once) and delete a child’s data or the whole account from the Account page.
Legal regimes
| # | Regime | Where it touches the product | Our design mitigation | Question for counsel | Residual risk (our view) |
|---|---|---|---|---|---|
| R-1 | COPPA (US), as amended in 2025, compliance date stated as 22 Apr 2026 (confirm) | The service is child-directed. A child’s voice recording is personal information. Transcripts and the child’s sentences in the report may be too. | Parent consent before any profile; score then delete the clip; minimal profile; transcripts erased after 90 days | Which consent method is enough given that audio goes to Spitch or Sarvam (and Workers AI as a fallback) and text goes to Anthropic or the open-source model? Are these vendors “support for the internal operations” or a disclosure to third parties that needs separate consent? Is a transcript still personal information? | High until answered |
| R-2 | COPPA FTC audio-file enforcement policy (2017) | We delete audio right after use | The clip is dropped when the turn ends, on success and on failure | Does the policy apply at all? Our audio is scored for pronunciation, not used as a stand-in for written words. Our assumption: it does not, so full consent is needed. | Medium |
| R-3 | COPPA amended rule: written retention policy and security programme | Every store (D1, R2, KV, Analytics Engine) | Published retention table (privacy notice and architecture section 4); the retention sweep of the jobs Worker; no child audio at rest, checked in CI | Is our published retention schedule enough? Is “account life plus 3 years” for the consent record right? | Medium |
| R-4 | COPPA amended rule: biometric identifiers | Scoring uses voice features | No voiceprints, speaker ids or embeddings are created or kept | Does transient acoustic scoring by a vendor create a “biometric identifier”? | Medium |
| R-5 | UK GDPR and the Age Appropriate Design Code (children’s code) | The whole service is likely to be accessed by children | DPIA before the pilot; high-privacy defaults (weekly email off); data minimisation; no profiling for ads; no nudge techniques (gentle days in a row, no loss framing); the parent gate | Is the parent-gate design OK under the “parental controls” and “transparency” standards? What legal basis covers each purpose? Is UK Article 8 (13) relevant, given that consent is from the parent? | Medium |
| R-6 | UK children’s code: nudge and detrimental use | Seeds, stars, stickers and days in a row | No loss aversion, no time pressure, no daily limit, nothing to buy, no urgency words | Is the reward loop a nudge “against the child’s best interests”? | Low-medium |
| R-7 | EU GDPR (if offered in the EU) | Article 8 age threshold (13 to 16 by member state); Article 9 if voice were used for unique identification; Article 28 processor terms; Article 35 DPIA; Chapter V transfers (Spitch: Nigeria, Sarvam: India, Anthropic: US) | Parent consent; no identification use; a DPA with every vendor; the vendor chains can move a language to another provider by configuration | Which member states at launch? Which transfer mechanism is needed per vendor? Is any processing Article 9? | Medium |
| R-8 | EU AI Act transparency (chatbot disclosure; confirm the dates in force) | The mascots and the local characters are AI-assisted | The child sees “Lúlú and Ìyá Àdùkẹ́ are computer helpers” in every talk; the parent notice names the vendors | Does the disclosure duty apply, and is the wording right for ages 4 to 12? | Low |
| R-9 | PIPEDA (Canada) and Quebec Law 25 | Canadian families | Meaningful parental consent; purpose limits; export and deletion; a privacy impact assessment | Is the OPC under-13 guidance applied correctly? Does Quebec’s under-14 consent rule change the age bands? Where must data be stored? | Medium |
| R-10 | Vendor terms (all) | Speech-to-text, the language model and text-to-speech | One row per provider below; no Gemini or Gemma (Google’s terms bar under-18 use); no OpenAI service | Do the terms of each provider below allow a child-directed product? | High until each row is confirmed |
| R-11 | Benchmark and reviewer data | Child recordings kept for quality work | Not built in the prototype. Any future benchmark needs separate written research consent, a separate store and a fixed deletion date | What consent and retention does keeping benchmark audio need? This would be the only place child audio is kept. | High (if built) |
| R-12 | Email reports | A child’s sentence could leak by email | Link-only emails, opt-in and off by default, sent only for a real week of practice | None | Low |
Vendors, one row per provider of the chains
The chains are configuration (architecture 2.4): STT_CHAIN_YO and STT_CHAIN_IG are Spitch then Workers AI Whisper; STT_CHAIN_HI is Sarvam then Workers AI Whisper; LLM_CHAIN is Anthropic Claude, then the open-source model on Workers AI, then a scripted keyword matcher that runs in our own Worker; text-to-speech runs only offline, for reviewed pack lines, never during play.
| # | Provider | What it receives | Where and under what terms (to confirm) | Our mitigation | Question for counsel | Residual risk (our view) |
|---|---|---|---|---|---|---|
| V-1 | Cloudflare (Workers, D1, R2, KV, Analytics Engine) | Every request; all stored data | Cloudflare’s customer agreement and DPA (with the EU SCCs and the UK addendum) | Data minimisation; no child audio at rest; hashed ids in Analytics Engine; no third-party scripts | Is the Cloudflare DPA enough for a child-directed service under COPPA, UK GDPR and PIPEDA? | Low |
| V-2 | Cloudflare AI Gateway | Every vendor request passes through it: the clip bytes, the transcript and the model reply | Cloudflare’s terms and DPA; log collection is off on every request (cf-aig-collect-log: false), caching is off for speech and the language model and on only for pack-line text-to-speech |
Logs off per request; one front door so no code path bypasses it (checked in CI) | Does a gateway that holds bytes in memory only count as a separate processing purpose? Is the per-request log switch documented well enough to rely on? | Low |
| V-3 | Cloudflare Workers AI (Whisper speech-to-text and MeloTTS; the open-source language model, row V-7) | The clip (as the fallback speech-to-text step) and the transcript (as the fallback language model step) | Cloudflare’s Workers AI terms: billed to our own account; Cloudflare states that it does not train on customer inputs (confirm). Whisper is open-weights under the MIT licence; MeloTTS under its own licence (confirm) | The fallback runs only when the first provider fails or the spend cap is reached; same in-memory handling | Do the Workers AI terms allow a child-directed use? Does the MIT licence of Whisper or the MeloTTS licence add any duty? | Low-medium |
| V-4 | Spitch (speech-to-text and text-to-speech, Yoruba and Igbo) | The child’s clip, for scoring only; pack-line text for offline text-to-speech | Spitch’s API terms and privacy policy; a company in Nigeria (Nigeria Data Protection Act 2023); retention and training terms to confirm | Called only through AI Gateway with logs off; no ids or names sent; the clip is never stored by us | Do Spitch’s terms allow child-directed use? Does Spitch keep or train on the audio, and can we get a zero-retention, no-training term in writing? Which transfer mechanism covers UK, EU and Canadian families? | High until answered |
| V-5 | Sarvam (speech-to-text and text-to-speech, Hindi) | The child’s clip, for scoring only; pack-line text for offline text-to-speech | Sarvam’s API terms and privacy policy; a company in India (Digital Personal Data Protection Act 2023, which has its own rules for children’s data); retention and training terms to confirm | As for Spitch | Do Sarvam’s terms allow child-directed use? Does it keep or train on audio? Does the Indian DPDP Act’s verifiable-consent rule for children reach a processor for foreign families? Which transfer mechanism applies? | High until answered |
| V-6 | Anthropic (Claude, the first language model step) | The transcript and the place script only, as text; never audio, the nickname, the age or any id | Anthropic’s commercial terms and usage policy (no training on API data by default; a usage policy that lets a business offer a product to minors only with extra safeguards; confirm both, and the data retention period) | Text only; the model returns ids of reviewed lines and never speaks to the child; safety filter and a 25-word limit on every line the child hears | Do Anthropic’s terms and its policy on minors allow this use, and which safeguards must we show? Is a zero-data-retention term needed? | Medium |
| V-7 | The open-source model on Workers AI (default @cf/meta/llama-3.3-70b-instruct-fp8-fast, the second step of LLM_CHAIN) |
The transcript and the place script only, as text | The Llama 3.3 Community License Agreement and the Llama 3.3 Acceptable Use Policy (Meta) for the default; if a deploy config picks a @cf/mistral/ or @cf/qwen/ model instead, its own licence (Apache 2.0 for most Mistral and Qwen open-weights models; confirm the model card). Run by Cloudflare on our account, so no data goes to Meta, Mistral or Alibaba |
Same prompt contract, schema check, safety filter and word limit as Claude; reviewed lines only | Counsel to check for a product for children: does the Llama licence or acceptable use policy (or the licence of a Mistral or Qwen model) restrict use in a child-directed product, require “Built with Llama” attribution, or add duties when the model’s output selects what a child hears? | Medium until checked |
| V-8 | Mailysend (our own sei-mailysend Worker on Cloudflare), with Resend as a configured fallback |
The parent’s email address, the sign-in code, the consent email and the opt-in weekly report email (a link, no child content) | Runs on Cloudflare under V-1; Resend’s terms and DPA only if the fallback is turned on | No child content in any email; the weekly email is off by default | Is the parent’s email in a report email a disclosure about a child? Is a DPA with Resend needed if it is never turned on? | Low |
Each further LLM_CHAIN step that a deploy config adds (a gateway provider, a custom provider or a self-hosted base URL) adds one row here, with its licence and acceptable-use terms, before it is turned on.
Open items for counsel
- The verifiable parental consent method (open decision D-3), given R-1 and the vendors of V-4 to V-7.
- Written zero-retention and no-training terms from Spitch and Sarvam (V-4, V-5), or a decision to move a language to another provider by configuration.
- The licence and acceptable use terms of the open-source model (V-7) for a product for children.
- The transfer mechanism per vendor and per family location (R-7, R-9, V-4 to V-6).
- The DPIA before the pilot (R-5).