PracHub
QuestionsPremiumLearningGuidesInterview PrepNEWCoaches
|Home/Data Manipulation (SQL/Python)/Intuit

Compute monthly signups, conversion, and YoY growth

Last updated: Mar 29, 2026

Quick Overview

This question evaluates a candidate's ability to perform data manipulation and time-series aggregation to compute monthly signups, subscription conversion rates, and year-over-year growth from user-level tables using SQL or Python (Data Manipulation (SQL/Python)).

  • easy
  • Intuit
  • Data Manipulation (SQL/Python)
  • Data Scientist

Compute monthly signups, conversion, and YoY growth

Company: Intuit

Role: Data Scientist

Category: Data Manipulation (SQL/Python)

Difficulty: easy

Interview Round: Technical Screen

You work at a subscription company and are given a user-level table. ## Table `company_users` - `id` (INT, PK) — user/customer id - `signup_date` (DATE) — date the user signed up (created an account) - `subscription_date` (DATE, NULL) — date the user first started a subscription (NULL if never subscribed) - `termination_date` (DATE, NULL) — date the subscription ended (NULL if still active) - `subscription_type` (VARCHAR) — `'free'` or `'paid'` (assume this reflects the first subscription started) Assumptions: - Dates are in UTC. - A “subscription” means `subscription_date IS NOT NULL`. - “Conversion rate by month” is defined as: for users who signed up in a given calendar month, the fraction who ever subscribed (at any later time). - Report results for months starting **2017-01-01** (inclusive). ## Tasks 1. For each calendar month (by `signup_date` month), return: - `month` (e.g., `2017-01-01` for Jan 2017) - `signups` (count of users who signed up that month) - `subscribers` (count of those signups who ever subscribed) - `conversion_rate` = `subscribers / signups` 2. Compute **YoY subscription rate growth** for each month as: - `yoy_subscription_rate_growth` = \(\frac{conversion\_rate - conversion\_rate\_{same\_month\_last\_year}}{conversion\_rate\_{same\_month\_last\_year}}\) - Return NULL if the prior-year month is not available. 3. Now assume the dataset also includes free subscriptions (`subscription_type='free'`). Recompute (2) but **only for paid subscriptions** (i.e., treat a user as “subscribed” only if `subscription_type='paid'`). ## Output A monthly table with columns: - `month`, `signups`, `subscribers`, `conversion_rate`, `yoy_subscription_rate_growth` (And a paid-only version for task #3.)

Quick Answer: This question evaluates a candidate's ability to perform data manipulation and time-series aggregation to compute monthly signups, subscription conversion rates, and year-over-year growth from user-level tables using SQL or Python (Data Manipulation (SQL/Python)).

Related Interview Questions

  • Calculate Cohort Retention - Intuit (medium)
  • Compute Cohort Retention Rate - Intuit (medium)
  • Pivot daily users and revenue by platform - Intuit (easy)
  • Design an idempotent churn ETL pipeline - Intuit (Medium)
  • Compute churn and revenue churn in SQL - Intuit (Medium)
Intuit logo
Intuit
Nov 8, 2025, 12:00 AM
Data Scientist
Technical Screen
Data Manipulation (SQL/Python)
7
0

You work at a subscription company and are given a user-level table.

Table

company_users

  • id (INT, PK) — user/customer id
  • signup_date (DATE) — date the user signed up (created an account)
  • subscription_date (DATE, NULL) — date the user first started a subscription (NULL if never subscribed)
  • termination_date (DATE, NULL) — date the subscription ended (NULL if still active)
  • subscription_type (VARCHAR) — 'free' or 'paid' (assume this reflects the first subscription started)

Assumptions:

  • Dates are in UTC.
  • A “subscription” means subscription_date IS NOT NULL .
  • “Conversion rate by month” is defined as: for users who signed up in a given calendar month, the fraction who ever subscribed (at any later time).
  • Report results for months starting 2017-01-01 (inclusive).

Tasks

  1. For each calendar month (by signup_date month), return:
    • month (e.g., 2017-01-01 for Jan 2017)
    • signups (count of users who signed up that month)
    • subscribers (count of those signups who ever subscribed)
    • conversion_rate = subscribers / signups
  2. Compute YoY subscription rate growth for each month as:
    • yoy_subscription_rate_growth = conversion_rate−conversion_rate_same_month_last_yearconversion_rate_same_month_last_year\frac{conversion\_rate - conversion\_rate\_{same\_month\_last\_year}}{conversion\_rate\_{same\_month\_last\_year}}conversion_rate_same_month_last_yearconversion_rate−conversion_rate_same_month_last_year​
    • Return NULL if the prior-year month is not available.
  3. Now assume the dataset also includes free subscriptions ( subscription_type='free' ). Recompute (2) but only for paid subscriptions (i.e., treat a user as “subscribed” only if subscription_type='paid' ).

Output

A monthly table with columns:

  • month , signups , subscribers , conversion_rate , yoy_subscription_rate_growth

(And a paid-only version for task #3.)

Comments (0)

Sign in to leave a comment

Loading comments...

Browse More Questions

More Data Manipulation (SQL/Python)•More Intuit•More Data Scientist•Intuit Data Scientist•Intuit Data Manipulation (SQL/Python)•Data Scientist Data Manipulation (SQL/Python)
PracHub

Master your tech interviews with 7,500+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.