Metrics Definition
This page is the authoritative source for backend analytics calculations used in Dashboard, Traffic Analysis, App Analytics, and Channel reports.
Purpose
Use one metric contract across teams. Product, QA, ops, and marketing should validate numbers against this document when reconciling data.
Data Sources
Table: analytics
Web events, app telemetry, and API-level download redirects.
Table: orders
License purchases and order status data.
Table: paddle_events
Raw Paddle webhook processing records.
Event Time
All backend filters use unix timestamp range. Daily trend labels use Asia/Shanghai (UTC+8).
Core Funnel Metrics
| Metric | Definition | Source Events |
|---|---|---|
| Homepage | Total homepage page views where event_type='page_view' and meta.url IN ('/', '/index.html'). |
page_view |
| Download | Distinct download actors from API redirects plus direct binary clicks. API downloads use api_download_latest. Direct clicks are click_download where file ends .exe or .deb. |
api_download_latest, click_download |
| Checkout | Distinct session IDs across explicit checkout events and checkout/pricing page views. | view_checkout, view_pricing, click_buy, checkout/pricing page_view |
| Purchased | Count of orders in selected window with active status. | orders.status='active' |
Download Attribution Rules
- Preferred signal is backend redirect event
api_download_latest. - Fallback/extra signal is direct binary click from web telemetry (
click_downloadwith binary file extension). - Source attribution comes from
meta.source, fallback tometa.utm_source, thenunknown. - Historical backfill uses nginx access logs and writes normalized
api_download_latestrows.
App Analytics: Feature Mapping
Feature Usage Heatmap is not limited to manual feature tags. It maps core app behavior to unified labels:
app_feature_used -> feature value from meta.feature app_scan_complete -> scan_complete app_scan_performance -> scan_performance app_scan_error/auth_error -> scan_error app_test_connection_error -> test_connection_error app_cleanup -> cleanup_action app_view_tab -> view_tab:<tab_name> app_trial_started -> trial_started app_license_active -> license_activated app_trial_upgrade_cta_click -> trial_upgrade_click app_trial_upgrade_checkout_open -> trial_upgrade_checkout_open
Paddle Transaction Metric
“Completed Transactions” in admin summary counts both transaction.completed and transaction.paid to match current webhook setup and avoid undercount when completed is delayed or missing.
Reconciliation Notes
- Traffic Analysis and Funnel can differ because one uses broad event logs while funnel applies step-specific filters.
- Session-based metrics and IP-based metrics are intentionally different. Session count does not equal unique visitors.
- Ad blockers, offline clients, or DNS/proxy failures can still reduce web event completeness.
Change Control
Any metric logic change must update this page in the same release. Treat this file as a release-gated contract, not optional documentation.
See the metrics in a live scan instead of reading them in isolation.
Save your first $1,000 before the next billing cycle.