Privacy Policy
Effective date: October 8, 2026
This policy explains what data PSL Rating (https://pslrating.me, "we", "us") processes when you use the site, why, and what choices you have. We've tried to write it plainly.
PSL Rating is operated by an independent developer under the name "PSL Rating", who is responsible for the processing described in this policy (the data controller). You can reach us at support@pslrating.me.
Summary
- No ads. Rating a photo needs a Google account: your first rating is free, then each rating uses 1 credit.
- Basic face measurements run in your browser.
- When you ask for a rating, a downscaled copy of your photo is sent through our server to a third-party AI provider to produce the rating and an age check. We don't store or log your photo.
- For abuse prevention we keep salted hashes of your IP address and account in daily counters, and a random device ID for the age and side-profile checks. Counters last about 2 to 3 days. To enforce the one free rating per person, we keep salted hashes of your account, device ID and a device cookie for as long as the limit applies.
- Your progress history (scores and measurements, never photos) stays in your browser. We never receive it.
- If you must sign in before rating, your photo waits on your device only (IndexedDB), expires after 30 minutes and is never uploaded. It is deleted when you return, when the rating finishes, or once it has expired: right away if a page of this site is open at that moment, otherwise the next time you open any page of this site.
- After a rating, your photo and any style preview images are saved on your own device only (IndexedDB) for 30 days so you can see them in your report. If you also added a side photo before rating, it is kept the same way (on your device only, for 30 days) and is sent for the side-profile analysis only after you unlock the full report. This copy is never sent to us. You can remove it with one button on the report page; logging out, deleting your account or clearing your browser data also deletes it.
- The text and numbers of each report (never the photo) are saved so you can reopen it. Reports not linked to an account are deleted after 30 days.
- Payments are handled by Waffo, our merchant of record. We never see your card details.
1. Data we process
Photos you upload. You upload a front face photo and, optionally, a side-profile photo.
- In your browser: landmark detection, quality checks and measurements run on your device. To do this, your browser downloads face-landmark model files from Google-hosted and CDN servers (cdn.jsdelivr.net and storage.googleapis.com). Those servers receive standard request information such as your IP address and browser details, like any website you load files from. Your photo is not sent to them.
- When you request a rating: a downscaled copy of your photo is sent to our server (running on Cloudflare Workers) and forwarded to kie.ai, which routes the request to Google Gemini, the model that writes the rating and runs the age check. The photo is used only to produce your rating and the age check. We do not store the photo on our servers and do not log it.
- If you add a side profile: the side photo is handled the same way: sent to our server, forwarded to kie.ai / Gemini for the side-profile estimate and a separate age check, and not stored.
- If you create style previews (full report only): after you tick the confirmation boxes, a copy of your photo is uploaded to kie.ai's temporary file storage, where it is reachable through a long, random link and deleted automatically after 24 hours, and is edited by Google Nano Banana (Gemini's image-editing model) through kie.ai. The photo first goes through the same age check. Each finished image is then sent through kie.ai to Google Gemini for an automated safety check (nudity, graphic violence, a minor, or an image that is not a single adult portrait) before it is shown to you; a failed check discards the image and gives your preview back. Passing images are returned to your browser through our server and are labelled "AI-generated preview". We don't store your photo, the previews or the links to them, and the safety check keeps only a pass flag for previews that passed (stored with the preview record until the report or account is deleted) and a server log entry of the result category, never the image. kie.ai keeps the generated images on its own servers for a period set by kie.ai.
- Measurements: the face measurements computed in your browser (ratios and angles, as text) are sent together with your photo so the AI can explain your rating. They are not stored either.
Face geometry. Measurements of your face (for example distances and angles between landmarks) are computed transiently to generate your result. We don't keep them. See section 7.
Saved reports. When a rating succeeds, we save the report's text and numbers (for example your tier, scores, written comments on facial regions and suggestions) in our database (Cloudflare D1) so you can reopen it and, if you buy it, unlock the full version. The report never contains your photo. Reports are saved to your account; older reports made before sign-in was required may be linked to a random anonymous ID kept in a cookie (psl_anon). Side-profile results are saved the same way, as text only.
Account data. An account is needed to rate a photo and uses Google sign-in. When you sign in, Google shares your Google account ID, email address and name with us. We never receive your Google password. We store these, together with your saved reports, your credit balance and purchase history, and a login session.
Purchases. Payments are processed by Waffo, which acts as the merchant of record and handles your card details, tax and receipts. Before you are sent to pay, we save a short record of what the checkout is for: a random reference, your account ID, the product, the report (if any) and the price. Waffo then tells us the payment ID, amount paid, currency and the email used at checkout, which we match to that record to add credits to your account and handle refunds. We never receive your card number.
Cookies we set. These are strictly necessary for the features you use and are not used for analytics or advertising:
| Cookie | Purpose | Lifetime |
|---|---|---|
psl_session | Keeps you signed in | 30 days |
psl_anon | Links older reports to your browser from before sign-in was required | 30 days |
psl_dev | Random device ID that counts your free rating, so new accounts on one browser do not repeat it | 1 year |
psl_oauth | Protects the Google sign-in flow against forgery | 10 minutes |
Abuse-prevention data. To enforce daily limits, we store:
- a salted hash of your IP address (not the IP address itself);
- for the age calculator and side-profile checks only: a random device ID, generated in your browser and kept in its localStorage, with a daily counter, in Cloudflare KV for about 48 hours;
- for ratings, in Cloudflare D1: daily counters keyed by salted hashes of your IP address and of your account, and a short-lived record (5 minutes at most) that reserves your rating slot while the rating runs. Daily counters are deleted after about 3 days.
To enforce the one free rating per person for life, we store in Cloudflare D1 only salted hashes of your Google account ID, your device ID and your device cookie (psl_dev), each with a count. They contain no photo, email or raw ID, and are kept after account deletion so deleting and re-registering cannot repeat the free rating.
Photo and previews kept on your device after a rating. When a rating succeeds, your browser keeps the same downscaled front photo that was rated (and the side photo, if you added one), and later any style preview images you generate, in IndexedDB on your device for 30 days, keyed to that report, so your report page can show your photo, draw the measurement lines on it and show your previews again without asking you to upload anything. This copy is never sent to us or put in our database, so we can't see it and it is not part of your report. They exist only in the browser on the device where you took the photo: another device or browser will not have them. You can delete them at any time with the "Remove photos from this device" button on the report page, and logging out, deleting your account or clearing your browser's site data also deletes them. Expired copies are deleted the next time you open any page of this site (a browser cannot delete them while closed).
Photo kept on your device before sign-in. If you pick a photo and are asked to sign in, the browser keeps a downscaled copy in IndexedDB on your device so your rating can continue after sign-in, with an expiry time of 30 minutes. It is never uploaded during this step. It is deleted when you return, when the rating finishes, or when it has expired: immediately if a page of this site is open at that time, otherwise the next time you open any page of this site (a browser cannot delete it while closed).
We also keep a site-wide daily spending counter in Cloudflare. It contains no personal data.
Progress history. If you use the progress feature, your scores and measurements (never photos) are saved only in your browser's localStorage. We never receive this data.
Analytics. We use Google Analytics 4 to understand how the site is used (for example page views and coarse event names such as a rating being started). Analytics events contain no photos and no scores. Google Analytics collects standard information such as approximate location, device and browser type.
Cookie consent. When you first visit, a banner asks whether you accept analytics cookies. Until you click Accept, Google Analytics runs in Consent Mode with analytics and advertising storage denied, so it does not set analytics cookies. Advertising storage is always denied. You can change your choice at any time with the "Cookie settings" link in the footer.
Search engine tools. We use Google Search Console and Bing Webmaster Tools to see how the site appears in search results. These tools report aggregated search data to us; they do not add tracking to the pages you visit.
Technical data. Like any website, our hosting provider (Cloudflare) processes request data such as IP addresses and browser details to deliver the site and protect it from attacks.
Cloudflare Workers logs are enabled so we can find errors. They record request metadata such as the page or endpoint, status code and time, and are kept for a limited period set by Cloudflare. Our code does not write request bodies, photos or measurements to these logs.
2. Why we process it
- To produce the rating you ask for (photo, face geometry).
- To save your reports and let you reopen them (report text and numbers, anonymous ID).
- To provide your account, process purchases, add and refund credits, and keep accounting records (account data, purchase data).
- To check that the person in the photo appears to be an adult, and refuse the request if not (photo).
- To prevent abuse and control costs (IP hash, device ID and cookie hashes, free-rating counters, daily counters, site-wide spending counter).
- To understand and improve the site (analytics, if enabled).
- To run and secure the site (technical data).
3. Third parties and subprocessors
| Provider | What it does | Data involved |
|---|---|---|
| Cloudflare | Hosting (Workers), KV storage, Durable Objects, D1 database | Request data, downscaled photo in transit, IP hash, device ID, counters, saved reports, account and purchase records |
| Google (Sign-In) | Lets you sign in with your Google account | Google account ID, email, name |
| Waffo | Payment processing and merchant of record | Checkout details you give Waffo, order and refund records |
| kie.ai | AI API service that receives the rating request; temporary file storage and image editing for style previews | Downscaled photo; for previews, a photo copy (deleted after 24 hours) and generated preview images |
| Google (Gemini and Nano Banana models, via kie.ai) | Gemini produces the rating text, the age check and the safety check of preview images; Nano Banana edits the style previews | Downscaled photo; for previews, the finished image |
| Google-hosted / CDN servers (storage.googleapis.com, cdn.jsdelivr.net) | Serve face-landmark model files to your browser | Standard request data (no photo) |
| Google Analytics 4 (only with your consent for cookies) | Usage analytics | Page views, coarse event names, device and approximate location data |
We cannot guarantee how long the AI providers keep data beyond what their own policies say. Please read them:
To be transparent about what we know: kie.ai's published privacy policy describes how it handles account data, but not how long it keeps the content of API requests. Google's Gemini API terms say that requests made through paid API quota are not used to improve Google's products and are logged for a limited period for abuse detection, while requests made through free quota may be used to improve Google's products. We access Gemini through kie.ai and cannot independently confirm which applies. If this matters to you, please don't upload a photo.
We don't sell your personal data, and we don't share it for advertising.
4. Retention
| Data | How long |
|---|---|
| Photos | Not stored by us. Held in memory only while your request is processed. (A copy you see in your own report stays on your device only, see below.) For style previews, kie.ai deletes the uploaded copy after 24 hours. AI providers: per their own policies. |
| Style preview images | Not stored by us; shown in your browser, which keeps a copy on your device for 30 days (see below). Download the ones you want to keep. kie.ai: per its own policy. |
| Face geometry | Not retained by us. |
| IP hash and device ID counters for age and side checks | About 48 hours in Cloudflare KV |
| Rating daily counters (salted hashes of IP and account) and in-progress rating records | Counters about 3 days; in-progress records 5 minutes at most (Cloudflare D1) |
| Free-rating counters (salted hashes of account, device ID, device cookie) | Kept while the limit applies, including after account deletion; contain no personal data in readable form |
| Photo, optional side photo and style previews of a rating, on your device | Kept for 30 days in your browser (IndexedDB), never sent to us; deleted with the "Remove photos from this device" button, when you log out or delete your account, by clearing your browser data, or when you next open any page of this site after they expire |
| Photo waiting on your device while you sign in | Expires after 30 minutes in your browser (IndexedDB); deleted when you return or finish, or when you next open any page of this site after it expires |
| Site-wide spending counter | One running total per day (UTC), reset the next day; contains no personal data |
| Progress history | In your browser until you delete it |
| Analytics data | 2 months (Google Analytics data retention setting) |
| Reports not linked to an account | Deleted after 30 days |
| Account, reports, credits and sessions | Until you delete your account (sessions expire after 30 days) |
| Purchase records | Kept for tax and accounting purposes after account deletion, with the link to your account and reports removed |
| Checkout references (random reference, product, price) | Deleted after about 60 days |
5. Your choices
- Don't request a rating. In-browser measurements work without uploading your photo to us.
- Remove the photo and previews saved on your device with the "Remove photos from this device" button on the report page, or by clearing your browser's site data.
- Delete or export your progress history on the /progress page at any time.
- Delete your account on the account page. This permanently deletes your saved reports, credits and sessions. Purchase records are kept only in de-identified form for tax and accounting.
- Clear your browser's site data to remove the device ID and any locally stored history. This does not reset your free rating, which is also counted per account.
- Block or decline analytics by clicking Decline on the cookie banner, changing your choice later via "Cookie settings" in the footer, or using your browser settings or an extension.
- Contact us at support@pslrating.me with privacy questions. Depending on where you live, you may have rights to access, correct, delete or object to the processing of your personal data. We never keep photos.
6. Children
PSL Rating is for adults 18 and over only. Every photo goes through an automated age check. If a photo appears to show a minor, or the age can't be confirmed, we refuse it and return no rating. The check is automated and may make mistakes. If you believe a minor's photo has been submitted, contact us at support@pslrating.me.
7. Biometric data
Some laws treat face geometry as biometric data, for example the Illinois Biometric Information Privacy Act (BIPA) and similar US state laws, and the GDPR, where biometric data used to identify a person is a special category of data.
We don't use your photo or face geometry to identify you or to recognize you across visits. Face geometry is computed transiently to generate your result, and we don't retain it. Saved reports contain written comments and scores about your appearance, but no photo, no face template and nothing that can be used to recognize your face. By uploading a photo and requesting a rating, you ask us to process it for that purpose only. We don't sell, lease, trade or otherwise profit from biometric data.
Before you can request a rating you must tick a box confirming that you are 18 or older, that the photo is of you, and that you agree to have it analyzed by AI as described in this policy. Because we do not retain photos or face geometry after your request is processed, there is nothing for us to destroy later; data held by our AI providers is subject to their own policies described above.
8. International transfers
Our providers (Cloudflare, kie.ai, Google, Waffo) may process data in countries other than yours, including the United States. Data protection laws there may differ from those in your country.
9. Security
We use HTTPS, keep a hash of your IP address rather than the address itself, avoid storing photos, store session tokens only in hashed form, and limit the data we keep. No system is perfectly secure, and we can't guarantee absolute security.
10. Changes to this policy
We may update this policy as the site changes. We'll post the new version here and update the effective date above. If a change materially affects how we handle your photos, we'll make it clear on the site.
11. Contact
Questions about this policy or your data: support@pslrating.me.