This policy describes exactly what RecallAlert stores. It is written from the application's database schema rather than from a template.
| Data | Why | When |
|---|---|---|
| Email address | Identifies your account, lets you sign in and recover access, and delivers optional product tips if you explicitly enable them | At sign-up; optional tips only after opt-in |
| Password hash | Authentication. Hashed with bcrypt; the password itself is never stored or logged | At sign-up |
| Alert preferences | Selected recall categories, nationwide/ZIP/state coverage, alert level, daily brief, quiet hours, and device time-zone offset | When you save alert settings |
| Email consent and delivery state | Remembers whether optional tips are enabled and prevents a sequence step from being sent twice | When you opt in or out and when a sequence step is attempted |
| Saved product details | Checks your watchlist against recalls. May include a name, brand, model, serial or lot number, barcode, VIN, and notes that you choose to enter | When you save a product while signed in |
| Recall review state | Remembers alerts you save, review, or dismiss | When you take one of those actions |
| Community messages | Shown to other signed-in members | When you post |
| Optional rating and coarse area | Context on a community message | Only if you provide it |
| Product feedback and votes | Shows requested improvements and ranks the ideas members support most | When you post, vote, or report on the feedback board |
| Aggregate app analytics | Daily counts of approved feature events by platform, used to improve RecallAlert. No account, device, session, location, search, scan, product, or free-text value is included | Only if you turn on anonymous app analytics |
| Device notification token | Delivers recall alerts to your device | Only if you allow notifications |
| Subscription status | Unlocks Premium across devices and restores purchases | When you subscribe or restore through Apple or Google |
| Reports and blocks you create | Community safety and moderation | When you report or block |
Recall information comes from the U.S. Food and Drug Administration, the Consumer Product Safety Commission, and the National Highway Traffic Safety Administration. Routine recall-feed requests are made by our server and contain no information about you. Searches, barcode lookups, and vehicle lookups send the query needed to answer the request. A VIN lookup sends the VIN to the RecallAlert API and NHTSA; it is not retained as search history. A VIN saved to a signed-in watchlist remains stored until you remove it or delete the account.
Your data is not sold, rented, or shared for advertising.
Account data is kept until you delete your account. Deletion is immediate and cascades to everything linked to the account. Moderation reports are retained while the report is open so that safety decisions remain reviewable. Password-reset token digests expire after 30 minutes and are removed after use. Anonymous daily analytics aggregates are automatically removed after 13 months.
Lifecycle email delivery records contain step names, status, attempt counts, and timestamps. They do not duplicate message bodies or addresses and are removed when the account is deleted.
Traffic is served over HTTPS. Passwords are hashed with bcrypt. Sessions use short-lived signed tokens. Device tokens are never returned by the API and are never written to logs in full.
RecallAlert is not directed at children under 13 and we do not knowingly collect their information. Contact us if you believe a child has created an account and we will remove it.
J&A Appworks LLC
jacobkhalil@gmail.com