# What counts as a billable event

> Which hits count toward your Privatus Analytics event allowance, what is free (API, Web Vitals, bots, uptime), the usage meter, and the Free plan badge bonus.

## Counted

| Hit | Counts |
|---|---|
| Pageview (including SPA route changes) | 1 event |
| Custom event (`track()`, HTML attributes, `auto` module, server-side) | 1 event |

## Not counted

- Engagement pings (time on page, scroll depth)
- Web Vitals
- Click-map hits
- Bots and anything else filtered out (traffic rules, DNT/GPC, opted-out
  visitors, foreign hostnames)
- API and MCP requests
- Uptime checks
- Imported data

## Estimating

Your GA4 "Views" plus "Event count" for custom events (not automatic
events like `scroll` or `user_engagement`) over a month is a good
estimate. Privatus Analytics often counts **more** pageviews than GA4, because it
doesn't depend on consent (see [why numbers differ](/docs/metrics/ga4-differences)).

## The usage meter

**Workspace settings → Billing** shows this month's events, a forecast for
the month, and a breakdown per site. Usage resets on the 1st of each month
(UTC). You're emailed at 80% and 100% of your allowance. At 100%,
collection pauses until the reset or an upgrade, and nothing is charged
(see [Monthly limit](/docs/billing/overage)).

## Badge bonus

On the Free plan, show our badge on one of your sites and get **10,000
extra events a month** (20,000 in total):

```html
<a href="https://privatusanalytics.com/?ref=badge"><img src="https://privatusanalytics.com/badge.svg" alt="Privacy-first analytics by Privatus Analytics" width="150" height="32"></a>
```

Turn it on in **Workspace settings → Billing**. We check your homepage for
the badge and re-check it regularly. If it disappears, we warn you, and
remove the bonus if it's still missing 14 days later.
