Skip to main content

Privacy Policy

Last updated: 9 October 2026

1. Introduction

AimRank ("we", "us", "our") is committed to protecting your personal data. This privacy policy explains how we collect, use, store, and share your information when you use the AimRank platform (the "Service").

We comply with the EU General Data Protection Regulation (GDPR) and applicable Lithuanian data protection laws.

2. Data We Collect

Account Data

  • Email address
  • Username and display name
  • Password (stored as a bcrypt hash; we never store plaintext passwords)
  • OAuth provider and ID, if you sign in with Google or GitHub. Social sign-in is not currently offered, so today we hold none.
  • Profile information you choose to provide (bio, avatar)

Usage Data

  • Rankings you create and their settings
  • Votes you cast (entity selections, timestamps, decision time)
  • Gamification data (achievements, streaks, points)

Technical Data

  • IP address (for rate limiting and fraud detection)
  • Browser user agent
  • Authentication tokens, held in HttpOnly cookies (see §8). Your browser's localStorage keeps only non-secret state (a signed-in flag, your cookie choice, your optional voter-segment answers and an unsaved ranking draft), never a token.

3. How We Use Your Data

  • Provide and operate the Service
  • Authenticate your identity and secure your account
  • Calculate rankings using our six rating engines (Glicko-2, Bradley-Terry, Elo, TrueSkill, OpenSkill, Elo-MMR)
  • Generate personalized recommendations
  • Detect and prevent fraud and abuse
  • Send service notifications (ranking updates, achievements)
  • Improve the Service based on aggregate usage patterns

4. Legal Basis for Processing

  • Contract: Processing necessary to provide the Service you signed up for
  • Legitimate interest: Fraud prevention, security, service improvement
  • Consent: Optional analytics cookies (if enabled), and marketing email when you ask to be told that paid plans have opened

5. Data Retention

We retain your data for as long as your account is active. If you delete your account, we anonymize your personal data immediately. Anonymized vote data may be retained for ranking integrity.

6. Data Sharing (Subprocessors)

We do not sell your personal data. The full canonical list of subprocessors, with purpose, data categories, region, and transfer mechanism for each, is at /legal/subprocessors. Summary:

  • OVHcloud (OVH SAS, France): compute, Managed PostgreSQL, S3-compatible Object Storage and AI Endpoints inference, all in the DE1 region (Germany). Error reports go to GlitchTip, which we run ourselves on this same OVHcloud infrastructure (errors.aimrank.io); no third-party error-tracking service receives them
  • OVH AI Endpoints: the Qwen3.5-397B-A17B model used as an LLM judge when a ranking owner enables it. Article 50 disclosed, inference in the EU
  • Brevo (Sendinblue SAS, France): transactional email — verification and password reset
  • Omnisend (Lithuania): our marketing email list. If you ask to be told when paid plans open, your address and the interest you picked are added to it, marked as subscribed, and may receive product announcements; you can unsubscribe from any of those emails. [VERIFY: confirm whether OMNISEND_API_KEY is set in production; if it is not, no address reaches Omnisend and this row should say so. Confirm Omnisend's contracting entity and hosting region.]
  • Stripe Payments Europe Limited (Ireland): subscription billing, VAT-OSS invoicing, once paid plans open. They are not open yet, so no payment data is collected today
  • PostHog EU: opt-in product analytics only (gated on your Cookie Banner consent)
  • SaleSnail: the chat assistant on our landing page, hosted in the EU (Microsoft Azure, Sweden). It receives whatever you type into the chat, and loads on that page whether or not you accept analytics
  • OAuth identity providers (Google Ireland, GitHub): not currently offered. Social sign-in is switched off, so no data goes to either
  • Law enforcement: only when required by law and only the minimum data required

We notify business customers under signed DPAs at least 30 days before adding a new subprocessor. To object on data-protection grounds: privacy@aimrank.io.

7. Your Rights (GDPR)

You have the right to:

  • Access: View all personal data we hold about you
  • Portability: Export your data in machine-readable JSON format (Settings → Privacy)
  • Erasure: Delete your account and personal data (Settings → Privacy)
  • Rectification: Update your personal information (Settings → Profile)
  • Restriction: Request we limit processing of your data
  • Objection: Object to processing based on legitimate interest

To exercise any of these rights, use the self-service options in Settings or contact us at privacy@aimrank.io.

8. Cookies

We use essential cookies for authentication (HttpOnly access + refresh tokens). If you accept analytics via the Cookie Banner, we also set a PostHog cookie + localStorage entry (EU-hosted at eu.i.posthog.com) to record anonymous pageviews and clicks. You can choose "Essential only" on the banner; PostHog will not initialise. We do not use third-party advertising or cross-site tracking cookies.

Separately, the chat assistant on our landing page writes one localStorage entry when that page loads, so it does not repeat its install ping on your next visit. If you open the chat panel it also starts a conversation, which sets an HttpOnly cookie scoped to the chat API (partitioned, so it cannot follow you to another site) plus conversation identifiers in your browser, so a return visit keeps your thread. It is not gated on the analytics choice above: it is support, not analytics, and it sets no advertising or cross-site tracking identifier. It appears only on the landing page.

9. Security

We protect your data with: HTTPS encryption in transit, bcrypt password hashing, JWT token-based authentication with blacklisting, rate limiting, account lockout, and structured security audit logging.

10. AI involvement (EU AI Act Article 50)

AimRank is itself an AI-assisted product. Three surfaces involve automated processing by large language models, and we disclose them here so you are never confused about whether a vote or a label was cast by a human or by a machine.

LLM judges as a vote source. The owner of a ranking may optionally invoke an LLM judge (currently Qwen3.5-397B-A17B running on OVH AI Endpoints in the EU) to cast preference votes alongside human voters. These AI-cast votes are recorded with source="judge:<model>"and excluded from the per-annotator quality metrics in Layer 4 of our methodology. Any ranking containing AI votes shows an "AI-assisted ranking" badge near its title, and the count of AI votes (plus the specific model IDs invoked) is reported in §2.1 of every exported data card. Only the ranking owner can trigger AI votes. They cannot be cast by other users on someone else's ranking.

LLM-assisted post-ranking analysis. When a ranking has an ends_at deadline and a declared goal, an LLM is used to auto-generate a written summary of the ranking's outcome after the ranking closes. These reports are clearly labelled as machine-generated.

The landing-page chat assistant. The chat bubble on our landing page is an AI assistant, not a person. Whenever it is answering with a model, it says so in its own panel header for as long as the panel is open; there is no setting that hides that line while leaving the AI on. It is operated for us by SaleSnail on EU infrastructure, it answers questions about the product, and it has no access to your account, your rankings or your votes. If you would rather reach a human, email privacy@aimrank.io. It is the only AI surface here that is on by default rather than invoked by a ranking owner.

No part of AimRank's safety-critical voting flow (qualification, vote ingestion, fraud detection, payment) is mediated by an LLM. Bradley-Terry, Glicko-2, and the other rating engines are deterministic and their methods are documented on our Help page. Inside the ranking product itself, AI use is opt-in by the ranking owner; the landing-page chat assistant is the one exception, and it identifies itself as an AI before you type a word. Every AI surface is disclosed at the layer where it appears.

11. Contact

If you have questions about this policy or wish to file a complaint, contact us at: privacy@aimrank.io

You also have the right to lodge a complaint with the Lithuanian State Data Protection Inspectorate (VDAI) at vdai.lrv.lt.