A market report for My MobApp Studio, written up as a scientific experiment. Code: Jupyter notebook my_mobapp_studio.ipynb.
1. The question
Our studio has decided to build a new mobile app and launch it first on the Google Play Store. Before design starts, management asked four questions:
- How big is the market, in downloads and in dollars?
- How is that split across categories (as percentages)?
- Per category, how many downloads does a typical app get?
- Anything else that helps us pick the right bet.
2. Hypotheses
Before touching the data, we wrote down what we expected to find, so the data could prove us wrong:
- H1. Games are the largest category by downloads.
- H2. Paid apps are a small share of downloads; the market is mostly free.
- H3. The more an app costs, the fewer installs it gets.
- H4. The Family category is the most valuable place for a paid app.
3. Data
We used the public Google Play Store Apps dataset on Kaggle: 10,841 rows and 13 columns (App, Category, Rating, Reviews, Size, Installs, Type, Price, Content Rating, Genres, Last Updated, Current Ver, Android Ver). The newest "Last Updated" date is August 2018, so this is a snapshot of the store at that time, not today's market.
Two properties of the data shape every number below:
- Installs is a bucket, not a count. "10,000+" means at least 10,000. We use the lower bound, so all download and revenue figures are minimums.
- There is no revenue column. We estimate revenue as
Price x Installsfor paid apps. Ads, in-app purchases and subscriptions are invisible, so this measures paid downloads only.
4. Method, step by step
Step 1. Load and summarise. load_dataset() reads the CSV and print_summarize_dataset() prints shape, column types, descriptive statistics and missing values. Almost every column was loaded as text, Rating had 1,474 missing values, and one row was clearly shifted (its category was "1.9").
Step 2. Clean. clean_dataset():
- dropped rows whose category is not one of the 33 real categories (removes the corrupted row);
- converted
Reviews,Installs(strip "," and "+"),Price(strip "$") andSize(MB, with "k" converted and "Varies with device" set to missing) to numbers; - removed duplicate apps, keeping the copy with the most reviews (the scrape listed many apps more than once);
- removed apps with 0 installs.
This left 9,644 unique apps.
Step 3. Explore. print_histograms() showed that installs, reviews and price are extremely skewed (a few giants, a long tail), so we plot them on a log scale. Ratings cluster around 4.3. compute_correlations_matrix() uses Spearman correlation because the data is skewed. Installs and reviews are almost the same signal (0.97), size has a mild positive link with installs (0.31), and price has a weak negative link with installs (-0.23). print_scatter_matrix() confirmed these shapes visually.
Step 4. Answer the questions with group-by aggregations per category and the plots below.
5. Results
5.1 Market size
| Metric | Value (lower bound) |
|---|---|
| Apps analysed | 9,644 |
| Total downloads | 75.3 billion |
| Free apps | 92.3% of apps, 99.92% of downloads |
| Paid apps | 744 apps, 57.4 million downloads |
| Estimated paid-download revenue | $291 million |
| ...excluding novelty apps priced $100 or more | $205 million |
One app, Minecraft ($6.99, 10M+ installs), accounts for about $70 million, or 24% of all estimated paid revenue.
H2 is confirmed, more strongly than expected: paid apps are 7.7% of apps but less than 0.1% of downloads.
5.2 Downloads per category
| Category | Installs | % of total |
|---|---|---|
| GAME | 13.4 B | 17.9% |
| COMMUNICATION | 11.0 B | 14.7% |
| TOOLS | 8.1 B | 10.8% |
| FAMILY | 6.2 B | 8.3% |
| PRODUCTIVITY | 5.8 B | 7.7% |
| SOCIAL | 5.5 B | 7.3% |
| PHOTOGRAPHY | 4.7 B | 6.2% |
| VIDEO_PLAYERS | 3.9 B | 5.2% |
| Other 25 categories | 16.6 B | 22.1% |
The full 33-category table is printed in the notebook. H1 is confirmed: Game is the largest category with 17.9% of all downloads, and the top 8 categories hold 78% of the market.
Money is distributed very differently from downloads. Family takes 39.7% of estimated paid revenue, Lifestyle 19.8%, Game 14.0% and Finance 8.8%. Lifestyle and Finance are high only because of the "I am rich" novelty apps priced at $399.99.
5.3 Downloads per app, by category
Total downloads reward crowded categories. To see what a single app can expect, we look at the median installs per app (the mean is distorted by giants like WhatsApp or Facebook).
- 1,000,000 median installs: Game, Photography, Video Players, Entertainment, Shopping, Weather, Education.
- 100,000: Communication, Productivity, Social, Travel, Health & Fitness, Sports, Maps, and others.
- 50,000: Tools, Family, News, Beauty.
- 1,000: Business, Medical, Events.
Family is the most crowded category (1,873 apps, 19.4% of all apps) but a typical Family app gets only 50,000 installs.
5.4 Paid Family apps
The top paid Family apps are all games: Minecraft (10M+), then Bloons TD 5, Where's My Water?, Card Wars, Cut the Rope GOLD and Infinity Dungeon VIP (1M+ each). Most cost between $0.99 and $2.99, and all come from established studios or brands.
By installs, Arcade holds 47.8% of paid Family downloads, followed by Puzzle (14.6%), Role Playing (9.9%) and Strategy (9.4%). Arcade's share is driven mostly by Minecraft.
H4 is partly confirmed: Family is where paid revenue concentrates, but most of it comes from one blockbuster. Without Minecraft, Family's estimated paid revenue drops from $116M to about $46M.
5.5 Prices
In categories with at least 10 paid apps, the median price is low: between $1.49 and $5.04 everywhere except Finance. Finance ($165 mean vs $18.99 median) and Lifestyle ($109 vs $4.99) have inflated means caused by the $399.99 novelty apps. The most expensive app in each category is listed in the notebook; the top three ("I'm Rich - Trump Edition", "most expensive app (H)", "I Am Rich Premium") are all novelty apps.
H3 is not supported within paid apps. Across all apps, price and installs are weakly negatively correlated (-0.23). Among paid apps, the median installs by price band are: up to $1: 500, $1 to $3: 1,000, $3 to $5: 5,000, $5 to $10: 1,000, over $10: 1,000. Being paid matters far more than the exact price: free apps have a median of 100,000 installs vs 1,000 for paid ones, with the same median rating (4.3 vs 4.4).
5.6 Additional insight: where competition is lighter
We divided each category's median installs per app by its number of apps, a rough "demand per competitor" score. The top categories:
| Category | Apps | Median installs per app |
|---|---|---|
| Weather | 79 | 1,000,000 |
| Entertainment | 87 | 1,000,000 |
| Education | 106 | 1,000,000 |
| House & Home | 73 | 500,000 |
| Video Players | 164 | 1,000,000 |
These categories have few apps but a typical app still reaches about a million installs.
6. Conclusion
| Hypothesis | Result |
|---|---|
| H1. Games are the largest category | Confirmed (17.9% of downloads) |
| H2. The market is mostly free | Confirmed (99.92% of downloads are free apps) |
| H3. Higher price, fewer installs | Not supported among paid apps; free vs paid is what matters |
| H4. Family is best for a paid app | Partly: 40% of paid revenue, but mostly one blockbuster |
Recommendation for My MobApp Studio:
- Launch free. Paid apps get roughly 100 times fewer installs for the same rating. Monetise with ads or in-app purchases, not an upfront price.
- Two candidate directions:
- a casual Game (Arcade or Puzzle), the biggest category with a 1M median per app, fitting our in-house game design team, but also the most competitive;
- a less crowded category such as Education, Entertainment or Weather, where few apps compete and a typical app still reaches about 1M installs.
- Avoid Family as a paid newcomer (crowded, low median, revenue concentrated in big brands) and Business, Medical and Events (median of 1,000 installs).
7. Limitations
- The data is a 2018 snapshot; the store has changed since then.
- Installs are lower bounds of buckets, so all figures are minimums.
- Revenue covers paid downloads only; in-app purchases and ads, the main revenue sources on Android, are missing.
- Duplicates were resolved by keeping the version with most reviews, which is a reasonable but not perfect rule.
8. What to experiment next
- Get fresher data, by scraping current Google Play listings, to check whether these patterns still hold.
- Bring in in-app purchase and ad revenue, using a "contains ads / in-app purchases" field from a newer dataset, to measure real monetisation rather than paid downloads.
- Model install success: train a simple model on category, genre, size, content rating and update frequency to predict which install bucket an app reaches.
- Analyse review text in the shortlisted categories to find what users complain about, which points to the gap our app should fill.








