Skip to main content
Plio Academy

Plio Academy

No Dark Patterns Policy

Last verified against the code: September 5, 2026 · commit 61f2b57f3

A plain-English statement of what we do not do to keep a child engaged, and how you — a guardian, not an engineer — can check each claim yourself. Every claim here was verified against our own source code on the date above; it is not a substitute for an independent audit. See §4 below for what this policy does not claim.

1. What we mean by "dark patterns"

A dark pattern is an interface designed to make someone act against their own interest — the taxonomy was named by researcher Harry Brignull in 2010, and the same category of manipulative design was the subject of the FTC's September 2022 staff report, "Bringing Dark Patterns to Light." Plio Academy teaches children ages 5–17, self-paced, often with no adult watching every screen — a manipulative pattern aimed at an adult is already a harm, and aimed at a child with no purchasing power and no "unsubscribe" literacy, it's one this platform has no excuse to ship.

2. We do not … / How you can check

We do not: Enroll a child in a public leaderboard or league without a guardian turning it on

How to check: Open a child's dashboard before any guardian setting is touched — there is no league widget, no rank, no "you're #4" banner. It only appears after a guardian opts the child in from settings.

We do not: Push guilt-driven "you lost your streak" notifications to a child

How to check: A child never receives a push notification of any kind on this platform — check your device's notification settings; nothing arrives there addressed to the child. Streak milestones ("7-day streak!") appear only inside the dashboard the child is already using, never as an outside interruption.

We do not: Send re-engagement nudges to the child at all

How to check: Nudges about a quiet learner go to the guardian's email, at most once every 30 days, and name the child only by their display name — never to the child, never as a push, never more than monthly.

We do not: Let a child raise their own screen-time limit

How to check: Try it from a learner session: the control to change daily limits or quiet hours lives only in the guardian's own settings area, and a learner view cannot reach it.

We do not: Use countdown timers or "hurry up" language to pressure a child during a lesson

How to check: The one on-screen timer in the curriculum (a scavenger-hunt activity timer for young learners) never auto-submits, never docks points, and never advances the lesson at zero — it waits for the child to confirm they're done, or reset it. No lesson instructions say "hurry" or "seconds left."

We do not: Charge children money, or show a child a purchase prompt inside a lesson

How to check: There is no paid tier a child can be on. The only payment surface anywhere on the platform is the guardian-facing donation page, and it does not appear inside the learning product a child uses.

We do not: Auto-advance to the next lesson, or auto-play the next video, without the learner choosing to continue

How to check: Finish a lesson and watch what happens: nothing loads automatically. The next step is a screen the learner actively chooses.

We do not: Load third-party advertising or behavioral-tracking scripts on any page a child uses

How to check: Open your browser's network inspector on a lesson page — you will not see an ad network or analytics pixel loading. The one analytics tool the org uses anywhere runs only on guardian- and staff-facing surfaces, never inside a child's learning session.

We do not: Collect anything about a child beyond a display name and a chosen cartoon avatar

How to check: There is no field anywhere in sign-up or in a child's profile for a last name, birthdate beyond an age band, photo, address, or any other identifier — just the name the guardian gives the profile and an emoji avatar.

We do not: Show fake progress, or hide the fact that something isn't being measured

How to check: Where a guardian hasn't turned a feature on (for example, detailed mastery tracking), the dashboard says "Not tracked" in plain text — it does not invent a number to look complete.

3. What we do instead

  • League participation defaults to off, and only shows a display name plus a chosen avatar — never anything more identifying.
  • The four remaining child-facing re-engagement push notifications were deleted from the codebase entirely on 2026-09-05, because — in the engineering team's own words — "COPPA forecloses push-to-child re-engagement crons." The push channels that remain (advisor updates, class updates, league results) all go to the guardian.
  • The learner-facing streak is calculated fresh from lesson-completion history each time it's shown — it isn't a number that quietly resets and then gets dramatized to guilt a child back in. A separate "streak freeze" mechanic (up to 2 tokens, earned every 7 days) protects a missed day instead of punishing it.
  • The one remaining re-engagement channel is a guardian email, capped at once per 30 days, naming the child only by display name.
  • Screen-time limits are guardian-set and re-checked server-side against the child's own session — a child session cannot use the same control to raise its own limit.
  • The one on-screen lesson timer is a step-away timer for an offline activity, not a pressure timer: no auto-submit, no point loss, no forced advance.
  • There is no paid tier for a child to hit. The only payment feature anywhere on the platform is a guardian-facing donation page, kept outside the learning product.
  • Finishing a lesson never triggers automatic navigation to another lesson — the learner chooses what's next every time.
  • No analytics or advertising SDK ships to any child-facing page. See §4 for one caveat about an unused allowlist entry.
  • Data minimization is enforced at the database level, not just promised in a policy: a child profile's only identity fields are a display name and an emoji avatar.
  • Where a feature genuinely isn't tracked yet, the dashboard says so in plain text instead of manufacturing a number.

4. What this policy does not claim

  • No third-party audit has verified any of this. Every check above was verified by our own team against our own source code on the date at the top of this page — not by an independent security or privacy auditor. Treat it as a starting point for your own verification, not a certification.
  • Motivation mechanics — XP, streaks, streak-freeze tokens, and leagues — genuinely exist. This policy does not claim Plio has no game mechanics. It claims the mechanics that exist are bounded: leagues are opt-in and use only a display name and avatar, streaks are protected rather than punished, and none of it is reachable without a guardian turning it on first.
  • A tag-manager script is allowlisted in the platform's security policy even though our review did not find it actually loading anywhere on the learning product today. An allowlisted-but-unused entry is a smaller finding than an active tracker, but it isn't nothing, and it's worth re-checking over time.
  • This policy covers the learning platform a child uses. It does not make claims about internal admin tools or the marketing website's own visitor analytics, which a child does not use.
  • This is a living document, not a permanent certificate. Re-check the claims in section 2 against the current product before relying on this page for a grant application, a school partnership review, or any other outside use — a verified-on-date claim can go stale.

Questions about this policy? Email privacy@plio.academy. See also our Privacy Policy and Privacy Summary.