Methodology

One formula. No overrides.

Every ranking on this site is the output of the function below, applied to sourced data. The code that computes it is the code published here.

The formula

support = { full: 1.0, partial: 0.5, addon: 0.25, none: 0 }

fit(t,u)   = Σ ( weight[cap] × support[t,cap] ) / Σ weight[cap]

cost(t)    = cheapest monthly-equivalent plan satisfying u.required

value(t,u) = fit(t,u) / log₁₀( cost(t) + 10 )

rank       = value desc → facts_verified_on desc → slug asc

Support values

  • Full support1
  • Partial support0.5
  • Available as an add-on0.25
  • Not supported0

Each use case assigns weights to capabilities. Fit is the weighted share of those capabilities a tool supports. Cost is its cheapest plan expressed per month (annual prices divided by 12, one-time purchases spread over 36 months). A tool missing a required capability is excluded, not ranked low. The log₁₀(cost + 10) denominator gives free and cheap tools a real advantage without letting a free tool with weak coverage beat a strong paid one. Ties go to the most recently verified tool, then alphabetical order.

What keeps a tool off ranked pages

Excluded tools keep their own page, which says why.

1

Unpublished or deprecated

It is not published yet, or it has been marked deprecated.

2

Unreadable pricing

Its pricing page failed to parse 3 times in a row.

3

Stale capabilities

Any capability cell was last verified more than 120 days ago.

Where the data comes from

Every capability cell links the page that evidences it and the date it was checked. Prices are read daily from vendors' pricing pages. A change of more than 1% is held for confirmation and is never published automatically; unconfirmed changes expire after 14 days. Being a day late about a price is better than being wrong about one.

Which pages exist

A comparison page exists only when both tools are published, both have at least 60 days of price history, and they are in the same category, with at most 200 comparisons and 900 pages in total. Every build measures how much of each page is shared with its closest siblings; a page that is mostly shared text is withheld.