Form submission is a completed send of a web form—contact, signup, checkout, demo request—where the payload is delivered and acknowledged by the server/app. In analytics, it’s a discrete completion event that usually maps to a macro-conversion or micro-conversion and often creates a lead.
Why it matters (and what to count)
Treat “submission” as successful completion, not just a button click. Count it when:
- The server returns success (e.g., 2xx) or your app sets a confirmed success state.
- A thank-you view or success callback fires a dedicated event (not a generic click event).
Avoid double counts from refreshes, retries, or client-side validations. Where possible, de-duplicate by a submission ID or a session+form key. Always interpret the rate in the context of the landing page that sent traffic.
Quick formulas
- Form Submission Rate (per form view)
submission_rate = submissions / form_views × 100%
- Form Submission Rate (per session reaching the form)
submission_rate = submissions / form_sessions × 100%
Pick one denominator and stay consistent across reports and the goal funnel.
Tiny example
Day | Form sessions | Submissions | Submission rate |
---|---|---|---|
Mon | 500 | 60 | 12.0% |
Tue | 420 | 58 | 13.8% |
Interpretation: Tuesday brought less traffic but higher intent or cleaner UX.
Implementation notes (battle-tested)
- Fire a distinct
form_submit_success
event only after confirmed success, not on click. - In SPAs, trigger on state change; in MPA flows, on the success response or thank-you route.
- Add context:
form_name
,source
,medium
,campaign
(see UTM parameters). - Reconcile daily with backend leads/orders.
- Add a lightweight debounce to prevent multiple fires within the same session.
KPIs to report
- Submissions (total, unique per session)
- Submission rate (chosen denominator)
- Drop-offs across “form_view → start → submit_success”
- Share of submissions from high-intent pages (pricing, product) vs generic traffic
Use submissions as a core input to conversion rate and your broader goal framework. Consider complementary signals like a scroll event to understand engagement before the submit action.