Market Size Calculator TAM · SAM · SOM

TAM SAM SOM Market Size Calculator — StartupIndiaX
Free Tool

Market Size Calculator
TAM · SAM · SOM

Calculate your Total, Serviceable, and Obtainable market using both top-down and bottom-up methods — and generate a pitch-ready market slide for your investor deck.

TAM
Total Addressable Market
%
SAM
Serviceable Addressable Market
%
%
SOM
Serviceable Obtainable Market
%
TAM
Total potential customers × price
%
SAM
Reachable segment × price
%
SOM
Target customers × price
%
Context
Market & sector details
Fill in the market size inputs above to generate your investor pitch statement.
Use these for credible Indian market data:
NASSCOM — IT, SaaS, deep tech
DPIIT / Startup India — startup ecosystem
RBI / SEBI reports — financial services
Redseer / BCG / Bain India — consumer
Inc42 / YourStory Market Reports — sector data
IMARC / Research & Markets — global comps

Bottom-up beats top-down

Indian VCs like Sequoia India and Accel always prefer bottom-up market sizing. Start with number of customers × price. Top-down is a cross-check, not the primary method.

SAM > ₹500 Cr minimum

For Indian seed VCs, SAM below ₹500 Cr raises questions about fund return potential. For Series A, SAM should be ₹2,000 Cr+. TAM should be 10–100x larger than SAM.

SOM must be credible

SOM of >5% of SAM in Year 3 looks unrealistic to most investors. Your SOM should tie directly to your sales capacity, GTM budget, and team size — not just a percentage.

Cite Indian-specific data

Quoting "the global market is $1T" for an India-focused startup is a red flag. Use NASSCOM, RBI, DPIIT, or Redseer India-specific data. Indian VCs know these sources intimately.

Market size estimates are based on user inputs and are for educational and pitch preparation purposes only. Always validate with primary research and cite credible sources in investor materials.

A free tool by StartupIndiaX.com — India’s startup knowledge portal
' + '
' + '
' + '
TAM
' + '
SAM
' + '
SOM
'; } /* RESULTS STACK */ function renderResults(v) { var rows = [ { abbr:'TAM', full:'Total Addressable Market', val:v.tam, pct:null, color:getComputedStyle(document.documentElement).getPropertyValue('--tam-c').trim() || '#185FA5', cagr:v.tamCagr }, { abbr:'SAM', full:'Serviceable Addressable Market', val:v.sam, pct:v.samPct, color:getComputedStyle(document.documentElement).getPropertyValue('--sam-c').trim() || '#0F7B6C', cagr:v.samCagr }, { abbr:'SOM', full:'Serviceable Obtainable Market', val:v.som, pct:v.somPct, color:getComputedStyle(document.documentElement).getPropertyValue('--som-c').trim() || '#D20103', cagr:null }, ]; document.getElementById('results-stack').innerHTML = rows.map(function(r) { return '
' + '
' + '
' + '
'+r.abbr+'
' + '
'+r.full+'
' + '
' + '
' + '
'+fmtCr(r.val)+'
' + (r.pct !== null ? '
'+fmtPct(r.pct)+' of TAM
' : '
 
') + (r.cagr ? '
↑ '+Math.round(r.cagr*100)+'% CAGR
' : '') + '
' + '
'; }).join(''); } /* MINI STATS */ function renderMiniStats(v) { var items = [ { val: fmtCr(v.tam), label: 'TAM' }, { val: fmtCr(v.sam), label: 'SAM' }, { val: fmtCr(v.som), label: 'SOM (Year ' + (v.somYear||3) + ')' }, { val: fmtPct(v.samPct || 0), label: 'SAM / TAM' }, { val: fmtPct(v.somPct || 0), label: 'SOM / SAM' }, { val: Math.round((v.tamCagr||0)*100) + '%', label: 'Market CAGR' }, ]; document.getElementById('mini-stats').innerHTML = items.map(function(item) { return '
'+item.val+'
'+item.label+'
'; }).join(''); } /* PITCH */ function renderPitch(v) { var sector = v.sector || 'startup'; var geo = v.geo === 'global' ? 'globally' : v.geo === 'india-sea' ? 'across India and Southeast Asia' : v.geo === 'tier2' ? 'in Tier 2 and 3 India' : 'in India'; var src = v.tamSrc ? ' (Source: ' + v.tamSrc + ')' : ''; var sentence = 'The ' + (sector !== 'other' ? sector.toUpperCase() : '') + ' market ' + geo + ' is a ' + fmtCr(v.tam) + ' TAM' + src + ', growing at ' + Math.round((v.tamCagr||0.18)*100) + '% CAGR. ' + 'Our serviceable market — ' + fmtCr(v.sam) + ' SAM — focuses on ' + (v.samWhy === 'geo' ? 'our specific geography' : v.samWhy === 'segment' ? 'our target customer segment' : 'our reachable market') + '. We are targeting a ' + fmtCr(v.som) + ' SOM by Year ' + (v.somYear || 3) + ', representing a realistic ' + fmtPct(v.somPct || 0) + ' market share of SAM.'; document.getElementById('pitch-sentence').innerHTML = sentence; var checkItems = [ { label: 'TAM size', ok: v.tam >= 1000, good: 'TAM of ' + fmtCr(v.tam) + ' — VC fundable size', bad: 'TAM below ₹1,000 Cr — too small for most VCs' }, { label: 'SAM size', ok: v.sam >= 500, good: 'SAM of ' + fmtCr(v.sam) + ' — meets minimum threshold', bad: 'SAM below ₹500 Cr — may raise concerns at seed' }, { label: 'SOM realism', ok: v.somPct <= 0.05, good: 'SOM is ' + fmtPct(v.somPct||0) + ' of SAM — credible target', bad: 'SOM exceeds 5% of SAM — may seem aggressive' }, { label: 'TAM ≥ 10× SAM', ok: v.samPct <= 0.20, good: 'TAM is ' + Math.round(1/(v.samPct||1)) + '× larger than SAM — clear runway', bad: 'SAM too close to TAM — where is the growth headroom?' }, { label: 'Growth rate', ok: (v.tamCagr||0) >= 0.10, good: Math.round((v.tamCagr||0)*100) + '% CAGR — healthy growth market', bad: 'CAGR below 10% — VCs prefer high-growth markets' }, { label: 'India-specific focus', ok: true, good: 'Using bottom-up sizing makes this credible', bad: 'Add India-specific citations for credibility' }, ]; document.getElementById('vc-checks').innerHTML = checkItems.map(function(c) { var bgColor = c.ok ? 'var(--green-light)' : 'var(--brand-light)'; var txColor = c.ok ? 'var(--green)' : 'var(--brand)'; var icon = c.ok ? '' : ''; return '
' + '
' + icon + '
' + '
' + c.label + '' + (c.ok ? c.good : c.bad) + '
' + '
'; }).join(''); } /* VC BENCHMARK */ function renderBenchmark(v) { var txt = ''; if (v.tam < 500) txt = '​🔴 TAM too small: Most Indian seed VCs require a minimum ₹1,000 Cr TAM. Consider expanding your market definition — adjacent use cases, geographic expansion, or adjacent customer segments.'; else if (v.tam < 2000) txt = '​🟡 Borderline TAM: ₹' + Math.round(v.tam) + ' Cr is viable for angel and micro-VC funds but may be limiting for top-tier VCs. Frame your path to capturing a larger market over 5–7 years.'; else if (v.sam < 300) txt = '​🟡 SAM too narrow: Your TAM is strong but SAM of ' + fmtCr(v.sam) + ' is limiting. Consider whether you can serve a broader segment within your TAM — different geographies, product extensions, or adjacent customer types.'; else if (v.somPct > 0.06) txt = '​🟡 SOM may look aggressive: Claiming ' + fmtPct(v.somPct) + ' of SAM in Year ' + (v.somYear||3) + ' may raise questions. Tie your SOM explicitly to your sales team capacity, marketing budget, and existing traction to make it credible.'; else txt = '​✅ Market sizing looks solid. TAM of ' + fmtCr(v.tam) + ', SAM of ' + fmtCr(v.sam) + ', SOM of ' + fmtCr(v.som) + ' is a well-structured market narrative. Make sure each number has a credible source cited in your deck. Indian VCs will Google-check your TAM number.'; document.getElementById('vc-benchmark').innerHTML = txt; } /* PROJECTION TABLE */ function renderProjTable(v) { var years = [1,2,3,4,5]; var html = 'YearTAMSAMSOM (target)Market share'; var growthRate = (v.somGrowth || 1.5); var baseSom = v.som / Math.pow(1 + growthRate, (v.somYear||3) - 1); years.forEach(function(y) { var tam = v.tam * Math.pow(1 + (v.tamCagr||0.18), y-1); var sam = v.sam * Math.pow(1 + (v.samCagr||0.22), y-1); var som = baseSom * Math.pow(1 + growthRate, y-1); som = Math.min(som, sam * 0.15); var share = sam > 0 ? som/sam : 0; html += ''+ 'Y' + y + (y===(v.somYear||3) ? ' ★' : '') + ''+ ''+fmtCr(tam)+''+ ''+fmtCr(sam)+''+ ''+fmtCr(som)+''+ ''+fmtPct(share)+''+ ''; }); html += ''; document.getElementById('proj-table').innerHTML = html; } /* SHARE BARS */ function renderShareBars(v) { var competitors = [ { name: 'Market leader', share: 0.35, color: '#9A9A9A' }, { name: '#2 player', share: 0.18, color: '#B0B0B0' }, { name: '#3 player', share: 0.10, color: '#C8C8C8' }, { name: 'Others', share: 0.30, color: '#E0E0E0' }, { name: 'Your SOM', share: Math.min(v.somPct || 0.02, 0.08), color: '#D20103' }, ]; var html = competitors.map(function(c) { var pct = Math.round(c.share * 100); return '
' + '' + c.name + '' + '
' + '
' + '
' + ''+pct+'%' + '
'; }).join(''); document.getElementById('share-bars').innerHTML = html; } /* MAIN CALC */ function calc() { var v = getVals(); renderCircles(v); renderResults(v); renderMiniStats(v); renderPitch(v); renderBenchmark(v); if (activeTab === 'combined') { renderProjTable(v); renderShareBars(v); } } calc();