BDT Product Score methodology
The Product Score answers one question: is this tool actually good? It is a 0–100 number computed from captured data and our own hands-on tests.
The Product Score contains no commission or earnings data of any kind
No commission rate, no payout size, no EPC, no conversion rate and no marketplace gravity feeds this score, at any weight, directly or indirectly. A score shown to someone deciding what to buy must never be moved by what we would earn if they bought it. We publish a separate BDT Opportunity Score for affiliates, at https://bestdigitaltools.co/methodology/opportunity-score, precisely so the two never mix. The dependency runs one way only: the Product Score can feed into the Opportunity Score, never the reverse.
The formula
score = Σ(component value × component weight) ÷ Σ(weights of the components that had data). Components without real data are excluded, remaining weights are renormalised to 100, and the excluded list is stored with the score. Nothing is imputed. Because 65 of the 100 points depend on our own hands-on test, most tracked offers have no Product Score until we have tested them; below 30% active weight we publish no score at all.
- First-party test — weight 40. From our own hands-on test: setup time, time to first useful output, and the tester's output-quality and UX-friction notes.
- Value for price — weight 20. The captured price against the median captured price of tracked offers in the same niche.
- Customer satisfaction — weight 15. The inverse of the most recently captured refund rate, treated as a buyer-regret signal.
- Reliability and support — weight 15. From our own test: measured support response time and how difficult cancelling the account was.
- Pricing transparency — weight 10. From our own test: whether a card is required up front, and whether undisclosed upsells appeared.
Capture cadence
Collectors run daily between 06:00 and 07:00 UTC. Scores are recomputed daily at 08:00 UTC. Snapshots are append-only.
Currently active components
Across 191 scored rows, these components currently have real data behind them: value_for_price, customer_satisfaction.