Method v1 · in use since October 2026

How we test AI companion apps

Every app goes through the same fixed protocol. Scripts drive a real browser at a human pace and log every step with timestamps; the results are checked against that log before anything is published. Pages are signed by Val, a pen name (see About); the numbers come from the protocol, not from one person's impressions.

Which version of an app we test

We test what an app gives you for free: its public free plan, or the full product when the company behind it grants us free test access. We never pay for a subscription. A review based on the free plan says so at the top, and paid features are described from the app's own pricing pages, not scored. When a company gives us access, the review says that too. Companies never see a review before it goes live and cannot pay to change it.

What one test run covers

A run takes 14 days. Every step writes to a dated log, and every screenshot is our own.

  1. Onboarding. Sign-up, the type of age check, free-plan limits, and when the first paywall appears.
  2. Pricing. Plan and checkout screens up to the payment step: first payment, renewal price, billing period, token packs and what each action costs in tokens. We never buy.
  3. Conversation. The same ten everyday prompts for every app, in one session. Reply times are measured in the browser, from sending a message until the full reply stands still, with the network log as a cross-check; four prompts have a simple pass/fail check (does it remember what we said a minute ago, can it answer in Spanish, can it do 17 × 23, does it say it is an AI when asked).
  4. Memory. Five harmless facts planted on day 0, asked about on days 1, 7 and 14 (details below).
  5. Media. Where the free plan allows it: one safe-for-work image with the token balance before and after, and the delay of a voice reply.
  6. Adult features. Whether they exist, how they are switched on and what they cost, taken from the app's interface and terms only. We never send suggestive messages and never request explicit images.
  7. Privacy and safety. Whether chats are used for training, how long data is kept, whether you can delete your account in the app, how long a data export takes, and which company runs the app in which country.
  8. Support and cancelling. One support question with the time to the first reply, and the cancel or delete flow, screenshotted up to the final confirmation.

The memory test

On day 0 we mention five facts in normal small talk, one per message: a dog's name, a favorite color, a hometown, an instrument and a birthday. On days 1, 7 and 14, each within 12 hours of the planned time, we ask about each fact in a new message without repeating it. A reply counts as a hit when it contains the fact, as partial when it gets the topic but not the detail, and as a miss otherwise. We publish the hours that actually passed and the reply text behind every result.

How scores work

The score from 0 to 10 is the weighted mean of six category scores. Each category score is computed from the test log with the formula below. Nobody sets a score by feel. If we could not measure a category (for example, no data export was possible), it shows as “not measured” and its weight is shared by the others. A part that is still pending, such as a data export inside its 30 days, is left out and the category is scaled from its other parts until it resolves.

Scoring formula, method v1
CategoryWeightHow the 0–10 score is computed
Memory25 %10 × (hits + ½ × partials) ÷ probes asked within their 12-hour window
Conversation20 %60 % speed (10 at a 2-second median full reply, minus 1.25 per extra second, never below 0) + 40 % share of passed checks
Privacy and safety20 %3 no training on chats or an opt-out · 2 in-app deletion · 2 data export within 30 days · 2 operator name and country in the terms · 1 retention period stated
Free plan15 %Messages per day: unlimited 7, 100+ 6, 50+ 5, 20+ 3, 5+ 1, fewer 0; +1.5 for free images, +1.5 for free voice
Price transparency10 %4 renewal price shown before checkout · 3 first payment vs renewal stated on the plan screen · 3 every token cost listed
Support and cancelling10 %First support reply within 24 h 5, within 72 h 3, later 0 · cancel or delete in ≤ 3 steps 5, ≤ 5 steps 3, more 1, impossible 0

If we change the method, it gets a new version number, every published score is recomputed, and the change is dated on this page.

Screenshots

All screenshots are our own, dated, and taken during the test. Before a screenshot is stored, an automatic step blurs any exposed nudity. Images of characters that look underage in a suggestive context are discarded, and an app that markets such characters is not listed at all.

Limits of this method

  • One account and one run per app. AI replies vary, so a second run could differ.
  • We test from a connection in Germany. Prices are shown as the app displays them, and in US dollars where the app offers that.
  • Reply times depend on the network and the time of day; we report the median of ten prompts, not a lab benchmark.
  • On the free plan we cannot measure paid features. We say so instead of guessing.

Updates and corrections

We re-check prices and plans on review pages every month and change the “Prices checked on” date only when something actually changed. If you spot an error, tell us; corrections are made on the page and noted there. Our editorial policy covers the rest.