How Which Language App collects and compares its data

Every figure on this site is a reading of a vendor's own public page, written down with the URL and the date. This page explains what is read, how it is normalised so apps can sit in one table, and where the method stops.

Last materially reviewed:

What is compared

The dataset covers consumer language-learning products a person can buy for themselves: course apps such as Babbel or Busuu, flashcard and vocabulary apps such as Memrise or Drops, audio courses such as Pimsleur, immersion apps such as Lingopie or LingQ, tutor marketplaces such as Preply or italki, and language-exchange apps with a paid tier such as HelloTalk or Tandem.

Each app is one entity with one record: languages offered, free tier, platforms, offline mode, speech recognition, live tutoring, placement test, refund or trial policy, company, country and founding year. Each published consumer plan is one row: plan name, tier, billing period, price, currency, price per month at that billing period, and what the plan covers.

Business, school and enterprise plans are excluded. Regional prices other than the United States are excluded. In-app purchases that are not a subscription tier, such as gem packs, are excluded.

Where the facts come from

Prices are read from the vendor's own pricing page, or from the vendor's help centre where the pricing page does not list a figure, as shown to a visitor in the United States. App-store listings are used for platform facts and for in-app subscription prices where the vendor publishes them only there.

Features are recorded as present only when the vendor states them on a page it controls: its own site, help centre or app-store listing. Reviews, comparison articles, forum posts and this site's own memory are not sources.

Affiliate programme facts (network, commission rate, cookie length) are read from the vendor's own affiliate page or the network's public programme listing. Where the programme exists but the rate is shown only after approval, the rate is recorded as not published.

How prices are made comparable

Price per month is the plan price divided by its term in months. Babbel's $107.40 12-month plan is $8.95 per month; its $17.99 1-month plan is $17.99 per month. Tables sort by price per month at annual billing by default because that is the figure most people end up paying; the monthly price is shown beside it.

Where a page shows a promotional price next to a regular price, the regular price is recorded as the price and the promotion is kept in the notes with its own evidence. Where only a promotional price is visible, that price is recorded and the row says so.

Tutor marketplaces do not sell subscriptions. For those the published per-lesson price range is recorded, low and high, and they are shown in a separate band of the table rather than ranked against subscription apps by a number that would mean something different.

Prices in a currency other than US dollars are recorded in that currency and never converted, because a converted number would carry a date and a rate this site cannot stand behind.

Read dates and "not published"

Every price and feature carries the date it was read. The homepage and every comparison table state the newest and oldest read date in the dataset. Prices are re-read by hand; the site's data status turns to stale when the newest read is more than ninety days old, and the health endpoint at /api/health.json reports that state to anyone who checks.

"Not published" means exactly that: on the read date, the vendor's own page did not show the figure to a visitor in the United States, or the page renders its prices only after sign-in. Such a row is shown with a dash and its reason, and it is sorted to the end of any price-ordered table. Nothing is estimated from memory, from a third-party article, or from an older price.

What is deliberately not done

No testing of the apps, lesson scoring or star ratings. This site reads and organises what vendors publish; it does not claim to have used each app for weeks, because it has not, and a comparison built on invented experience would be worth less than the table you can check yourself.

No ranking by the site's own opinion. Verdicts on comparison pages are written per use case and point at the rows in the table that support them; they never award an overall winner.

No display advertising, no paid placement, and no ranking influence from affiliate relationships. The functions that sort and filter the tables read price and feature fields only; referral status is stored separately and is not readable by them.

Affiliate links and revisions

Outbound links to vendors are plain links marked with rel="sponsored" wherever the vendor runs an affiliate programme this site could join. When a programme is joined, the link becomes a tracked referral link and the affiliate disclosure page lists the vendor, the network and the rate. As of 2026-09-06 no programme has been joined and no link is tracked.

Every row can be traced: the source URL and read date are shown on the app's page and are included in the CSV and JSON downloads. Corrections sent to hello@whichlanguageapp.com are checked against the vendor page and applied with a new read date. This method was last reviewed on 2026-09-06.