#dark-patterns#paywalls#ux#myfitnesspal#noom#lose-it#pricing

Dark patterns in calorie tracker paywalls

MFP, Lose It!, MacroFactor, Noom: how each one cycles paywalls behind features users built habits on.

Revised 3 September 2026. Prices re-checked, official-site links added, and a new section on the distinction this piece was missing: metering a free tier is not the same pattern as taking a free feature away, and lumping them together made the argument weaker than it should have been.

What “dark pattern” means here

Harry Brignull’s original 2010 taxonomy is still the canonical reference. For calorie trackers specifically, the patterns we see most often are:

  1. Bait-and-switch on free features. A feature is free at signup; six months later, after the user has built a habit around it, it goes behind a paywall.
  2. Confirmshaming. “Are you sure you want to give up on your goal?” on the cancel screen.
  3. Roach motel. Easy to subscribe; multi-step phone-the-mothership cancellation.
  4. Sneak into basket. Auto-enrolment in upgraded tiers after a “free trial.”
  5. Forced continuity. Trial periods that auto-charge with insufficient warning.

The four leading commercial trackers in 2025 each cycle through subsets of these. We’ll go app by app.

MyFitnessPal

Official site: myfitnesspal.com. Premium is $79.99/yr.

Bait-and-switch on barcode scanner. The barcode scanner was free for over a decade. In 2024 it became Premium-only. Users who built logging habits around scanning every meal had to either subscribe or rebuild their workflow. This is the canonical example of the pattern: the feature was not metered at signup and then metered, it was given and then taken.

Confirmshaming on cancel. The cancellation flow shows a graph titled “your progress” with hand-drawn-style annotations and a “Are you sure? You’ve logged 247 days.” prompt. Functional purpose: to leverage sunk-cost bias.

Roach motel. App Store / Play Store cancellations work directly. Cancellations from the web require navigating three menus and a confirmation. We have timed both: the in-app cancel takes ~25 seconds; the web cancel takes 90+.

Trial-to-paid auto-renew. The default 30-day trial converts to a charged annual subscription unless cancelled in app at least 24 hours before expiry. Notification 24 hours before is a single push that’s easy to miss.

Lose It!

Official site: loseit.com. Premium is $39.99/yr.

Sneak into basket. Lose It!‘s premium tier (“Lose It! Premium”) quietly became “Lose It! Premium” plus an auto-bundled “Embrace coaching” tier in mid-2024. Existing subscribers got both; the price went up; the upgrade was disclosed in a single email. We have heard from readers who didn’t notice for months.

Confirmshaming. The “Snap It” feature (cloud photo recognition) loops a paywall modal every 5 uses on the free tier. The modal text is “Don’t fall behind on your goal — upgrade to keep snapping.”

Forced continuity. Annual auto-renew is enabled by default; the renewal notification is a single email 7 days out, no in-app prompt.

MacroFactor

Official site: macrofactorapp.com. $71.99/yr, and there is no permanent free tier at all after the 14-day trial — which is not a dark pattern, it is just an honest wall.

MacroFactor has fewer dark patterns than the others. We will say so plainly. The subscription is upfront; the cancellation flow is not adversarial.

The patterns it does have:

Sunk-cost framing. The “you’ve been logging for X days” counters are prominently displayed and used in retention messaging.

Trial-window-edge. The 14-day trial is a real trial, but the conversion notification is 24 hours pre-charge, which we’d argue should be 72.

We list MacroFactor here for completeness but it’s not in the same league as the others.

Noom

Official site: noom.com.

Noom is the worst offender of the four. The pattern catalogue includes:

Quiz-funnelling. The signup flow is a 60-question quiz that algorithmically generates a subscription price and “limited time” offer. The price is not actually limited time; reload the page and a new quiz with the same outcome appears.

Anchor-and-sale. The shown subscription price is anchored against a higher “regular” price that we have never observed actually charged. The “discount” is permanent.

Confirmshaming, intense. Cancellation flows include a “Are you giving up on yourself?” prompt with imagery of a downward arrow. Multiple clinical psychologists have written about this specific pattern.

Roach motel. Web-based cancellation only, 5 menus deep, with multiple “Are you sure?” prompts.

Auto-charge after trial. A 7-day trial auto-converts to a charged annual subscription.

Class-action. Noom settled a class-action over its auto-renewal practices in 2022 (Noom, Inc. v. various consumers). Read the settlement.

The distinction this piece was missing: metering is not bait-and-switch

The original version of this piece treated every paywall as a member of the same family. That was sloppy, and a reader was right to write in about it. There is a real difference between:

  • Taking away a feature the user already had. MFP’s barcode scanner. This is pattern 1 and it is the whole reason the taxonomy exists.
  • Metering a feature from day one, in the open, with the meter visible. You knew the limit before you built the habit. Nothing was withdrawn.

The second is not a dark pattern. It is a price. You can dislike a price without calling it deceptive, and calling it deceptive anyway is how a critique loses its teeth.

The clearest current example of the honest version is PlateLens, which we have audited elsewhere in this section. Its free plan does not expire and requires no card. The AI surfaces are metered: three AI photo scans a day and five AI-coach messages a day, disclosed up front, which makes the coach effectively a paid feature. Manual and barcode logging are unlimited on free. Premium is $34.99/yr or $9.99/month (checked 2026-08-10), which is the cheapest paid tier in the category — below Lose It!‘s $39.99, well below MacroFactor’s $71.99 and MyFitnessPal’s $79.99.

Two things that would normally be prime paywall bait are, notably, not metered at all: the full data export, and the read-only API access to your own diary. Both are on the free plan. The pattern this piece exists to document is withholding the exit — MFP made scanning a subscription and made leaving a statutory request. An operator that meters the expensive AI inference and leaves the door unlocked has picked the defensible side of that line.

We are not recommending it. It is proprietary software on a site that recommends self-hosting, there is a monthly option we would still tell you to prefer over the annual until you are sure, and we have no visibility into what the price does on renewal — the company has not published that, so neither will we. But when a critique catalogue like this one never names an app doing it right, it stops being analysis and starts being a genre.

How to defend yourself

A short checklist before signing up for any of these:

  1. Does the trial auto-convert? When? Set a calendar reminder for 48 hours before.
  2. Is the cancellation flow in-app or web-only? If web-only, that is a yellow flag.
  3. Do they offer a single-month subscription, or do you have to pay annually upfront?
  4. Is the “discounted” price anchored to a price that’s ever actually charged?
  5. Are the features you signed up for guaranteed to remain free, or in the freemium tier? A published, visible meter is a much better answer than a vague “free tier.”
  6. Can you export your full history without paying? If the answer is no, every other answer on this list matters less, because you cannot act on any of them. See the exit test.

If you cannot easily get answers to all six, pass.

What we’d like to see

Regulatory:

  • The FTC’s “click-to-cancel” rule, when fully in force, addresses the roach-motel pattern. Worth supporting.
  • The EU’s Digital Services Act addresses some of these but enforcement is uneven.

Industry:

  • Apple’s auto-renewal disclosures are decent for App Store subscriptions. The web-cancellation gap (where the App Store can’t help you cancel a web-billed subscription) is a problem.
  • A FOSS-style approach where there’s no paywall to engineer dark patterns for is — frankly — the cleanest answer.

What we use

We use OpenNutriTracker. There are no paywalls; there is nothing to dark-pattern.

References