Fx

Know what you’re actually buying.

Find hidden revenue, traffic, technical and operational risks in an online business before you make an offer.

Fx

See what the listing doesn’t tell you.

  1. Paste the URL

    No account, no card.

  2. Read the report

    21 of 35 checks, each one priced.

  3. Ask the seller

    Read-only. Only what they grant.

  4. See the real numbers

    Revenue checked against their own records.

Three patterns make real revenue fall after the sale.

F(x) reads the seller’s payment and analytics records for all three, then restates the monthly revenue without them.

  • Revenue standing on a discountHow much of it comes from customers on a coupon that runs out after you own them.
  • Visitors that were paid forHow much of the traffic arrives through ads the seller stops paying for at close.
  • People who pay but never log inHow many accounts pay every month without anyone ever logging in to use it.
F(x)Finding 03
critical

41% of the monthly revenue sits on a discount that runs out in 90 days

Stripe shows 218 of 531 paying customers on a 50%-off coupon that runs for twelve months. Once it ends the real monthly revenue is $8,900, not the $11,280 the listing claims.

“Pricing is stable across the customer base.”

seller’s listing, section 2
Adjustment−$31,000
sample scan · stripe subscriptions · retrieved 2026-08-09
F(x)Finding 11
high

61% of visitors come from ads, and the ads stop the day you buy

Google Analytics shows 61.4% of visits came from paid ads over twelve months. The ad account is not included in the sale, so those visitors leave with the seller unless you keep paying $4,100 a month.

“Traffic is overwhelmingly organic.”

seller’s listing, section 4
Adjustment−$49,200
sample scan · google analytics 2025-08 → 2026-07
F(x)Finding 19
high

At least 180 customers pay and have not opened the product in a month

500 paying customers, and only 320 people visited in the best of the last three months. The other 180 are billed every month and have not opened the product.

“Engagement is strong and growing.”

seller’s listing, section 1
Adjustment−$9,600
sample scan · stripe + google analytics · retrieved 2026-08-09

35 checks across the business

That was three of 35 checks. The rest are grouped below, with what each group reads and what one finding takes off the price.

Free groups need only the web address; Seller data groups need the seller’s read-only access, and are the paid half.

Secrets and source exposureMixed8 of 35

What the site hands to anyone who asks for it, including things nobody meant to publish.

  • Environment files and .git directories
  • API keys shipped inside the browser bundle
  • Secrets still live in archived copies, and in the commit history

64%of the credentials found leaked in 2022 were still live when they were re-checked in January 2026. A key does not stop working because the site was rebuilt.GitGuardian · State of Secrets Sprawl 2026

Open data and endpointsMixed5 of 35

What the application returns to a request carrying no session at all.

  • Databases readable with the public key
  • Data endpoints open without an account
  • Admin pages still on their defaults

170+live apps built on Lovable had a customer database that anyone at all could read, change or delete. The platform shipped the setting that prevents it switched off.CVE-2025-48757 · Lovable · disclosed 2025

Transport and browser hardeningFree5 of 35

The protections a browser relies on the site to set, and whether this one sets them.

  • Certificate and HTTPS behaviour
  • Session cookie protection
  • Which other origins may read from it

79%of the world’s top million websites are missing the one setting that stops a stranger rewriting the page inside a customer’s browser.Scott Helme · top-1M crawl, 13 June 2026

Dependencies and dead infrastructureFree4 of 35

What the build pulls in from strangers, and what was left running and forgotten.

  • Hallucinated and typosquatted packages
  • Forgotten staging and preview deployments
  • Unmetered AI endpoints anyone can bill

19.7%of the ready-made parts an AI assistant recommends do not exist. Attackers register the made-up names and wait for the next person to install one.USENIX Security 2025 · 576,000 generated samples

Who actually controls the assetFree1 of 35

The registrations the business runs on, who holds them, and when they lapse. None of it appears in a listing, and all of it is readable without asking the seller for anything.

  • Registrar, registration date and expiry
  • DNS, hosting and email providers
  • Certificate issuer and expiry

35days is all there is once a registration is deleted - a 30-day redemption window, then five days pending deletion, and then anyone at all may register the name.ICANN · Expired Registration Recovery Policy

Revenue qualitySeller data7 of 35

Whether the reported revenue matches the ledger behind it - the subscription ledger for a SaaS, the order history for a store.

  • Committed revenue against the reported figure
  • Churn, or whether store customers ever buy twice
  • What rests on one customer, a discount, or a refund

AdjustmentMeasured at scan time. The gap between reported and committed revenue comes out of the seller’s own subscription history, so there is no figure to print until there is a seller.

3%of the 200 Flippa listings we sampled showed revenue Flippa itself had verified. The other 194 are asking you to take the screenshot on trust.F(x) · 200 listings, July 2026

Founder dependencySeller data2 of 35

Whether the business can be run by someone who did not build it.

  • Commit-author concentration
  • How many people it takes to reach half the work
  • Who else can still push to the code, and who holds admin

AdjustmentCounted from the repository the seller granted, and it changes the structure of the deal instead of the figure: a discount cannot hold a founder in place, and a holdback can.

74%of popular open-source projects stop dead if one or two people walk away. Those projects had other contributors; a codebase one founder wrote alone has none.Avelino, Valente & Hora · 133 GitHub projects

fx-scan - worker/3 - bash - 92×24
worker/3worker/4+
[17:04:19] probing surface · 7 checks queued
➜ ~/scan curl -sI https://mealprepplanner.io/.env
HTTP/2 200
content-type: text/plain0.31s
➜ ~/scan curl -s https://mealprepplanner.io/.env | head -n 6
NODE_ENV=production
STRIPE_SECRET_KEY=sk_live_51H████████████████
SUPABASE_SERVICE_ROLE=eyJhbGciOi███████████
OPENAI_API_KEY=sk-proj-████████████████
SMTP_HOST=smtp.postmarkapp.com
SMTP_PASSWORD=██████████████████████0.44s
➜ ~/scan curl -sI https://mealprepplanner.io/.git/HEAD
HTTP/2 200 git directory served
✗ 4 live credentials reachable without authentication
exit 1 · 3 requests · no rate limit encountered
➜ ~/scan

Adjustment−$5,220 to −$75,000

GET/rest/v1/customers?select=*200 OK
time 412 mssize 1.9 MBrows 4,918auth none sent
BodyHeadersCookiesTiming
1[
2 {
3 "id": 1,
4 "email": "████████████@gmail.com",
5 "full_name": "██████████████",
6 "stripe_customer_id": "cus_██████████",
7 "phone": "+1██████████",
8 "is_admin": false,
9 "created_at": "2024-02-19T11:04:55Z"
10 },
11 { "id": 2, "email": "█████████@icloud.com", …
4,906 further rows not shown · no session, no cookie, no bearer token

Adjustment−$15,000 to −$75,000

Meal Prep Planner - BillingNew tab
⚠ Not securemealprepplanner.io/account/billing
InboxStripeAnalytics
Response headers · security
strict-transport-security-MISSING
content-security-policy-MISSING
x-frame-options-MISSING
set-cookiesb-token=… no HttpOnly, no SecureWEAK
x-content-type-optionsnosniffPRESENT
Login form on this page submits over HTTP. Anything typed into it is readable in transit.

Adjustment−$209 to −$11,808

react-meal-calendar
2.1.4 · published 4 years ago · MIT
Drag-and-drop weekly meal calendar. Bundled into the checkout and account pages.
⚠ Unmaintained. Two advisories filed since the last release, neither patched.
Last publish
4 yr ago
Maintainers
1
Advisories
2
Weekly dl
312
██
Sole maintainer · account inactive since Mar 2022
No organisation, no successor. Publish rights on one account.
Releases per quarter

Adjustment−$150 to −$30,000

Registry record · retrieved via RDAP17:04:26 UTC
mealprepplanner.io
RegistrarNamecheap, Inc.
Registered11 April 2023
Expires13 September 2026
Transfer locknot set
Auto-renewoff
Nameserversns1 / ns2 · cloudflare.com
MXgoogle workspace · seller’s tenant
24days until the registration
lapses · no auto-renew set
Public record · seller cannot alterSource: RDAP / IANA

Adjustment−$75 to −$4,200

Active subscriptionssorted by discount end date
CustomerPlanMRRDiscount
██████████████Pro monthly$14.50−50% · ends 9 d
████████████Pro monthly$14.50−50% · ends 9 d
███████████████Pro annual$9.90−66% · ends 21 d
█████████████Pro monthly$14.50−50% · ends 48 d
██████████Starter$29.00list price

AdjustmentThe price, recalculated on the real revenue

joshua @joshua-mp
Sole contributor · mealprepplanner.io
joined 2019 · 1 org · 3 public repos
Every deploy in the last 18 months was authored, reviewed and merged by this account.
Share of the work
Commits1,412
Pull requests merged318
Deploys triggered241
Support replies sent1,904
Second contributor: 91 commits, none since Nov 2023.

AdjustmentPart of the price held back against the founder staying

Before you connect anything

Read-only access to the seller’s accounts, discarded when the scan ends.

No write, refund or admin scope is ever requested. The Stripe, Shopify and Google Analytics connectors were verified by the platforms themselves.

Scopeshover a mark for its exact scopes
  • Stripe · read-onlysubscription_read, customer_read, charge_read, invoice_read, balance_read, balance_transaction_source_read, coupon_read, promotion_code_read
  • GitHub · read-onlycontents:read, metadata:read, members:read
  • Google Analytics · read-onlyanalytics.readonly

I’ve been building this project for about a year, actively engaging with small scale buyers and noting their pain-points with acquisitions. What started as an in-house GitHub scanner has now become a preventive tool that helps secure successful and accurately priced deals for clients.

Ignas PaškauskasFounder · Vilnius

The seller’s token is encrypted, read once to price the findings, and discarded when the scan finishes - whether it succeeded or not. The raw evidence behind a finding is deleted after 30 days, which is what the privacy policy commits to. Your report and its findings stay.

Retentiontoken gone at the end of the scan30 days

Each tool is granted separately, on a page that names exactly what it reads before anything is connected. A seller can refuse any of them and say why, and your report prints that answer in their own words.

The seller decidesgranted one tool at a time