ConsequenceWheel
Menu

Privacy policy

Effective November 3, 2026. This policy covers the marketing site at https://consequencewheel.com. The operator is [LEGAL NAME]. A mailing address will replace [MAILING ADDRESS] when one is published. Privacy questions go to hello@consequencewheel.com.

Who this site is for

ConsequenceWheel is for parents and caregivers. It is not directed to children under 13. That is how we approach the Children’s Online Privacy Protection Act (COPPA): we do not design the site for children, and we do not knowingly collect personal information from children under 13.

A parent may type a child’s name and age into the free wheel. Those details stay on that device. They are not an account, and this site does not receive them. Please do not ask a child to join the waitlist or to email us.

The wheel on this device

The free wheel stores data only in the browser’s localStorage. Spinning, editing, and reloading do not send that data to us.

  • consequencewheel.v1 holds one snapshot. The schema is consequencewheel.wheel, version 1. It includes the profile (name and age), the consequence list (wording, which slices are on, and any amount range), recent spin results (kept to the latest 40), and an updated-at time.
  • consequencewheel.sound is written only if you mute or unmute. The value is the word on or off.

That storage stays in the browser until you clear site data for this origin. It does not sync to other devices. It does not cross to https://app.consequencewheel.com, because localStorage does not cross origins. We cannot see it, delete it, or restore it. Clearing site data, or removing those keys, deletes it.

Waitlist

The waitlist form is optional. If you submit it, the server stores:

  • email, required, saved in lowercase
  • childAge, optional, the age you type, kept to 8 characters, not the child’s name
  • source, the page the form was on, kept to 80 characters
  • createdAt, the time the server recorded the submission

A hidden company field is a spam trap. If it is filled in, the request is ignored and nothing is stored.

Where those four fields go depends on configuration. If WAITLIST_WEBHOOK_URL is set, they are forwarded as JSON to that address. The operator chooses that service. If the webhook is not set, the same fields are appended to a private newline-delimited file: data/waitlist.ndjson when the server can write it, otherwise consequencewheel-waitlist.ndjson in the system temp directory. On a host such as Vercel, a temp file does not last across new instances. A webhook is what makes the list durable.

The email is used to tell you when the family app opens. It is not sold and it is not used for advertising. Do not put medical details, a child’s full name, or someone else’s email in the form.

The server reads the request IP, from the forwarding header when one is present, only to rate-limit the form in memory (8 submissions an hour from one network). That IP is not written into the waitlist record. The count disappears when the server process restarts.

Cookies, analytics, and ads

The public site at https://consequencewheel.com does not set cookies. It does not run advertising pixels or an ad network. There is no cookie banner.

Vercel Web Analytics and Speed Insights run on the public pages. They do not use cookies. A page view can include the path, referrer, country, and device type. The free wheel also sends three event names when a parent spins a consequence, spins an amount, or types a profile name for the first time: wheel_spin, amount_spin, and profile_created. Those events do not include the child’s name, age, or the consequence text. The wheel snapshot stays in localStorage.

admin.consequencewheel.com is the same app, for the operator. After a password sign-in it sets one httpOnly session cookie on that host only. That cookie is not sent to https://consequencewheel.com.

localStorage is not a cookie. It stays on your device and is not attached to ordinary page requests. Fonts are included with Next.js at build time and served from this site. Pages do not call Google Fonts or an ad host. The analytics scripts load from Vercel.

The host (the live site runs on Vercel) may keep ordinary request logs, such as IP address, browser, and the URL requested, to operate and protect the service. Those logs are not the wheel and they are not a discipline history.

Future accounts

A family app is planned at https://app.consequencewheel.com. It is not available. This site does not create accounts, passwords, or payments. When accounts exist, they are intended to be private to that family and to an admin who operates the service. A parent would have to choose to move the on-device wheel into an account. Nothing on this site sends that snapshot unless that choice exists later. This policy will be updated before an account collects information.

Children

We do not knowingly collect personal information from a child under 13. Names and ages a parent enters on the wheel stay on the device. The waitlist asks a parent for an email and an optional child age, not the child’s name. If you believe a waitlist record came from a child under 13, email hello@consequencewheel.com and we will delete the copy we control.

Sharing

We do not sell personal information and we do not share it for advertising. The disclosures are the waitlist webhook you trigger by submitting the form, if one is configured, Vercel as the host of the site and of Web Analytics and Speed Insights, and the hosting provider’s ordinary request logs.

Your choices

Clear this site’s data in the browser to remove the wheel and the sound setting. Email hello@consequencewheel.com to ask us to delete or correct a waitlist address. We will delete the copy in a file we control. The site has no automatic delete call for a webhook. If one was configured, we will forward your request to that service when we can, and we will tell you if we cannot.

Changes

If this policy changes, the effective date at the top will change. The current date is November 3, 2026.

Contact

[LEGAL NAME]
[MAILING ADDRESS]
hello@consequencewheel.com

See also the contact page, terms of service, and disclaimer.