Required Datapoints
- Landing Page Sessions
- Number of Completed Signups from That Page
- Optional: Break down by traffic source, campaign, or segment
Signup Conversion from Landing Pages measures the percentage of visitors who arrive on a landing page and complete the signup process. It helps assess the effectiveness of landing pages in converting traffic into users or leads.
Signup Conversion from Landing Pages is a key indicator of campaign performance and message-match clarity, reflecting how well your landing pages convert intent-driven traffic into actual signups.
The relevance and interpretation of this metric shift depending on the model or product:
A high conversion rate indicates compelling messaging, clean UX, and aligned traffic, while a low rate points to misaligned offers, poor load times, or CTA confusion.
By segmenting by campaign, audience, or landing page type, you can refine targeting, positioning, and page hierarchy.
Signup Conversion from Landing Pages informs:
These are the main factors that directly impact the metric. Understanding these lets you know what levers you can pull to improve the outcome
Actionable ideas to optimize this KPI, from fast, low-effort wins to strategic initiatives that drive measurable impact.
Activities commonly tied to improving or operationalizing this KPI.
| Activity | Description |
|---|---|
| Campaign Optimization | Campaign Optimization focuses on continuously analyzing and improving go-to-market campaigns to maximize effectiveness. It coordinates execution across touchpoints so teams can move users or accounts toward the target outcome. Relevant KPIs include Cost per Acquisition and CTR from ICP Audiences. |
| Landing Page Design | Landing Page Design centers on strategically planning, designing, and optimizing focused web pages that drive visitors toward a specific action, such as signing up, requesting a demo, or starting a trial. It gives teams a clear plan for where to focus, how to sequence work, and what to measure. Relevant KPIs include Signup Conversion from Landing Pages. |
| Conversion Testing | Conversion Testing is a systematic process aimed at increasing the percentage of users or prospects who take desired actions—such as signing up, purchasing, or upgrading—across digital touchpoints in the go-to-market (GTM) funnel. It improves performance by removing friction, testing changes, and scaling what works. Relevant KPIs include Signup Conversion from Landing Pages. |
| Paid Search | Paid Search focuses on strategically placing digital ads on search engine results pages (SERPs) to attract high-intent prospects and drive lead generation or conversions. It helps teams translate strategy into repeatable execution. Relevant KPIs include Signup Conversion from Landing Pages. |
| Social Proof Inclusion | Social Proof Inclusion is essential for building trust, credibility, and driving adoption. It helps teams translate strategy into repeatable execution. Relevant KPIs include Signup Conversion from Landing Pages. |
10,000 visitors to your product tour landing page
1,400 completed signups
Formula: 1,400 ÷ 10,000 = 14% Signup Conversion from Landing Pages
This KPI is associated with the following stages in the AAARRR (Pirate Metrics) funnel:
This KPI is classified as a lagging Indicator. It reflects the results of past actions or behaviors and is used to validate performance or assess the impact of previous strategies.
This role is directly accountable for the KPI and is expected to drive progress and decisions around it.
These roles contribute directly to performance and typically partner on execution, reporting, or optimization.
These roles should stay informed on changes in the KPI because it influences adjacent planning, coordination, or outcomes.
These leading indicators influence this KPI and act as early signals that forecast future changes in this KPI.
These lagging indicators confirm, quantify, or amplify this KPI and help explain the broader business impact on this KPI after the fact.
How this KPI is structured in Cube.js, including its key measures, dimensions, and calculation logic for consistent reporting.
cube('LandingPageSessions', { sql: `SELECT * FROM landing_page_sessions`,
measures: { totalSessions: { sql: `session_id`, type: 'count', title: 'Total Sessions', description: 'Total number of sessions on landing pages.' } },
dimensions: { id: { sql: `id`, type: 'string', primaryKey: true, title: 'Session ID', description: 'Unique identifier for each session.' }, landingPage: { sql: `landing_page`, type: 'string', title: 'Landing Page', description: 'The landing page URL or identifier.' }, trafficSource: { sql: `traffic_source`, type: 'string', title: 'Traffic Source', description: 'Source of the traffic to the landing page.' }, campaign: { sql: `campaign`, type: 'string', title: 'Campaign', description: 'Marketing campaign associated with the session.' }, sessionStartTime: { sql: `session_start_time`, type: 'time', title: 'Session Start Time', description: 'The start time of the session.' } }});cube('CompletedSignups', { sql: `SELECT * FROM completed_signups`,
measures: { totalSignups: { sql: `signup_id`, type: 'count', title: 'Total Signups', description: 'Total number of completed signups from landing pages.' } },
dimensions: { id: { sql: `id`, type: 'string', primaryKey: true, title: 'Signup ID', description: 'Unique identifier for each signup.' }, landingPage: { sql: `landing_page`, type: 'string', title: 'Landing Page', description: 'The landing page URL or identifier where the signup occurred.' }, trafficSource: { sql: `traffic_source`, type: 'string', title: 'Traffic Source', description: 'Source of the traffic that led to the signup.' }, campaign: { sql: `campaign`, type: 'string', title: 'Campaign', description: 'Marketing campaign associated with the signup.' }, signupTime: { sql: `signup_time`, type: 'time', title: 'Signup Time', description: 'The time when the signup was completed.' } }});cube('SignupConversion', { sql: `SELECT * FROM landing_page_sessions lps LEFT JOIN completed_signups cs ON lps.landing_page = cs.landing_page`,
measures: { conversionRate: { sql: `100.0 * COUNT(cs.signup_id) / NULLIF(COUNT(lps.session_id), 0)`, type: 'number', title: 'Signup Conversion Rate', description: 'Percentage of sessions that resulted in a signup from landing pages.' } },
dimensions: { landingPage: { sql: `lps.landing_page`, type: 'string', title: 'Landing Page', description: 'The landing page URL or identifier.' }, trafficSource: { sql: `lps.traffic_source`, type: 'string', title: 'Traffic Source', description: 'Source of the traffic to the landing page.' }, campaign: { sql: `lps.campaign`, type: 'string', title: 'Campaign', description: 'Marketing campaign associated with the session.' }, sessionStartTime: { sql: `lps.session_start_time`, type: 'time', title: 'Session Start Time', description: 'The start time of the session.' } }});Note: This is a reference implementation and should be used as a starting point. You’ll need to adapt it to match your own data model and schema