Plain-language policy

Your practice belongs to you.

PLUed does not require an account, does not put advertising or tracking code in the app, and does not upload your learning history.

Fresh dill
Privacy contents

The short version

  • No PLUed account is required.
  • Your answers, mastery, stars, settings, streaks, and imported packs stay on your device.
  • The app has no advertising or tracking SDK, and PLUed adds no analytics of its own. The sticker scanner reads stickers on your device with Google's ML Kit, which sends Google basic technical diagnostics; the picture never leaves your phone (see Sticker scanner).
  • The optional full-access purchase is processed by the app store you installed from (Apple App Store, Google Play, or Amazon Appstore).
  • Store Packs share as a link and QR code hosted by PLUed. When a builder reaches the share step, the pack (store name, code names, practice lists) is sent to PLUed for automated content checks, including checks by OpenAI's services, and for catalog curation; the link appears only after the pack passes. Packs never contain cashier data or learning history.
  • If your store gives you a store code, entering it in the app sends PLUed the code and a random install ID so your seat can be counted. No name, email, or account is involved (see Store codes).
  • Finishing the daily PLUzzle sends one anonymous result (puzzle number and guess count, no identifiers) to power the everyone's-guesses chart.
  • A store manager who buys a Store Plan on our website gives PLUed a store name and an email address. Stripe handles the payment (see Store Plans).

Learning data stays on your device

PLUed stores your study history locally so it can schedule reviews and show progress. That includes answer history, mastery, stars, streaks, streak freezes, region, appearance, and Store Packs you import.

PLUed does not require a name, email address, password, or profile. There is no PLUed cloud account to sync your practice between devices.

Deleting the app may also delete its local learning data, subject to how your device handles backups and app restoration.

The optional purchase

PLUed offers one optional, non-consumable in-app purchase for full training access. The transaction is processed by the app store you installed PLUed from: the Apple App Store, Google Play, or the Amazon Appstore. PLUed receives the purchase result needed to unlock or restore access; PLUed does not receive your payment card details.

Store Packs and publishing

A Store Pack shares as a link and QR code hosted by PLUed, and can also be saved as a .plupack file. Its item graphics are references to PLUed's own built-in catalog images. When a pack is shared from the builder, it is sent to PLUed, where its text passes automated content checks (see Hosted share links); the share link and QR code appear only after the pack passes. The builder does not make an offline link. A phone needs a connection the first time it opens a pack link; a .plupack file imports without one. The PLUed team can review hosted packs and remove any pack. A pack contains only what the builder typed: a store name, code names, and practice lists. It never contains anything about the cashiers who import it.

Separately, the builder has an unchecked submission box. Ticking it flags the pack for the PLUed team to consider for the built-in catalog, with an optional "who is this from?" note. Nothing is flagged for the team unless that box is ticked.

Do not include employee names, schedules, customer information, or other personal information in a Store Pack.

Hosted share links

Every shared pack is stored on PLUed's server so a short link and QR code can deliver it. Anyone with a hosted link can view the pack's import page and use the link to import it. Hosted links should be treated as shareable, not private.

Automated content checks. Before a pack is hosted, its text (the store name, code names, practice-list and section names, any graphic or logo request, and the optional note to the PLUed team) is checked three ways: against a built-in word list, by OpenAI's moderation API, and by a short automated review from an OpenAI language model (gpt-4o-mini) that flags inappropriate names in any language. Photos, which only older packs contain, are checked by OpenAI's moderation API. A pack may also carry a small copy of one of PLUed's own pictures so older versions of the app can show it; those are PLUed's pictures, recognized by their fingerprint, and are not sent to OpenAI. A pack with flagged text or photos is not hosted. Hosted content is additionally screened for child-safety material.

What OpenAI receives. Pack text and photos are sent to OpenAI only for these checks and, when a builder asks for them, translation suggestions (below). Under OpenAI's API policies, data sent through its API is not used to train OpenAI's models by default. OpenAI may keep API data for a limited period under OpenAI's policies to monitor for abuse.

What PLUed keeps from the checks. PLUed may keep a one-way fingerprint of a checked name (a code computed from the name, not the name itself) so the same name is not checked twice. If the automated review flags a name, PLUed may keep that name for up to 30 days so the PLUed team can review it and improve the word list. If the team decides a flagged name is fine, PLUed keeps that name on an allow list so it is not flagged again. The allow list holds only names the team approved, and the team can remove a name from it at any time.

Translation suggestions. In the builder, Translate names can suggest an English or Spanish version of names the builder typed. To make a suggestion, those names are sent to an OpenAI language model (gpt-4o-mini). PLUed does not keep the names sent or the suggestions returned, and a suggestion goes into a pack only if the builder confirms it.

Keeping a store's logo current. If you imported a Store Pack from a hosted link, the app asks PLUed's server for that pack again from time to time (at most about once a day while you use the app, and after an app update) so your store's logo stays current. The request names the pack and nothing about you or your device: no account, no install ID, no learning history. It changes only the logo shown for that store.

Store logos. A store can type its website in the builder's logo field. PLUed then reads that public website to find the store's logo, and a person at PLUed checks it before it is added to the store's pack. The website address is kept with the pack's request.

A .plupack file stays wherever its builder saves or sends it.

To request removal of a hosted pack, email us with the store name and any link or pack details you have.

Store codes

Some stores buy a Store Plan for their team and give cashiers a store code. Entering a store code is optional; the app works without one.

What the app sends. If your store gives you a store code, entering it in the app sends PLUed two things: the store code and an install ID, a random number the app creates once on your phone. PLUed uses them only to check that the code is valid and to count seats, so entering the code again on the same phone does not use a second seat. The install ID is not your name, email, phone number, or your device's advertising or hardware ID, and it is not used for advertising or to follow you across other apps.

What PLUed keeps. PLUed keeps the install ID in that store code's seat list. It is not deleted automatically, including after the store's plan renews or ends. The store's manager sees how many seats are in use, never which phones. On iPhone, a seat is held while Apple's offer-code sheet is open; if Apple's unlock never arrives, the hold stops counting after 24 hours. Apple handles the iPhone redemption itself under Apple's privacy policy.

To have your install ID removed from a store's seat list, email us with the store code.

Sticker scanner

Scan a sticker reads the PLU on a produce sticker on your phone. The picture is not sent anywhere and is not saved to your photo library.

The sticker reader, and on Android phones and Fire tablets the QR code reader, come from Google's ML Kit, which runs on your device. ML Kit sends Google technical diagnostics about how the reader ran (such as device model, operating system and app version, speed, and error codes) with an ID for that app install that is not meant to identify you or your device. PLUed does not receive this data. Google describes it on its ML Kit data disclosure page.

Anonymous daily-puzzle stats

When you finish the daily PLUzzle, the app sends one anonymous result (the puzzle number and how many guesses you used) so the result screen can show how everyone did. PLUed keeps only each puzzle's running totals (how many players finished in each number of guesses) and nothing else about you. No account, device identifier, or location is sent or stored. At most one result is sent per puzzle per device, and the app works normally if the submission fails or is unavailable.

Store Plans

A store manager who buys a Store Plan on plued.app/store gives PLUed the store's name and an email address. Payment is handled by Stripe in a checkout form on that page, under Stripe's privacy policy; PLUed never sees card details. PLUed uses the email to send the store code and the store's private status link, and to tell the store when its seats are nearly all in use or when a cashier could not join because no seat was left. It sends these emails through its Google email account. The store code is also set up with Apple as an offer code so iPhones can redeem it.

PLUed keeps the store's record (store name, email, plan and dates, store code, seat count, and Stripe's reference numbers for the customer and subscription) to run the plan. When a phone is turned away because no seat is left, PLUed keeps a count and the time for that store code, and nothing about the phone. The record is kept after a plan ends as a business record; it is not deleted automatically.

Anything a store sends through its private status page (such as a request, a spreadsheet, or a logo file) is kept with the store's record so we can act on it. The form for buying for several stores collects a company name, a contact name, an email address, a phone number, the number of stores, and an optional note; it is kept so we can reply. Before it is saved, the text of a request and the names, phone number, and note in the several-stores form are checked by OpenAI's moderation API. Neither is deleted automatically; email us to ask for removal.

Questions or removal requests

Email [email protected]. We may update this policy when the app, the hosted pack service, or Store Plans change. The effective date at the top shows the current version.