getting started

How scoring works

Botardo assigns every form session a score from 0 to 100. Learn what drives that number.


Every form submission gets a score from 0 (definitely human) to 100 (definitely a bot). Here's how Botardo arrives at that number.

Signal layers

Botardo evaluates sessions across three independent signal layers. Each layer produces a sub-score; the final score is a weighted combination.

Behavioral baseline

Mouse movement, keystroke cadence, scroll patterns, and focus timing are compared against a per-device behavioral model. Deviations from natural human interaction push the score up.

Network signals

IP reputation, data-center ranges, known proxy exits, Tor relays, and hosting ASNs. Most legitimate users submit from residential or mobile addresses.

Environment fingerprint

Browser feature availability, canvas rendering, WebGL renderer strings, and font enumeration. Headless browsers leave a distinct fingerprint even when they spoof common user-agent strings.

Score thresholds

Botardo doesn't make the block/allow decision for you — that's your call based on your risk tolerance. These are the defaults most customers use:

Score rangeSuggested actionTypical use
0–40AllowNo friction
41–70ChallengeCAPTCHA or honeypot
71–100BlockSilently drop the submission
**Tip:** Start with logging-only mode (`data-mode="passive"`) for a week before enabling blocking. You'll learn your baseline false-positive rate before it affects real users.

Confidence levels

Alongside the score, Botardo returns a confidence field: "high", "medium", or "low". Confidence reflects how much signal was available for this session.

A score of 80 with "low" confidence is less actionable than 80 with "high" confidence. Consider loosening thresholds or routing to a challenge step when confidence is low.