How to Calculate Addressable Market

How to Calculate Addressable Market: Your Ultimate Guide & Calculator :root { –primary-color: #004a99; –success-color: #28a745; –background-color: #f8f9fa; –text-color: #333; –light-gray: #e9ecef; –white: #fff; –border-radius: 5px; –box-shadow: 0 2px 4px rgba(0,0,0,0.1); } body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; line-height: 1.6; color: var(–text-color); background-color: var(–background-color); margin: 0; padding: 0; display: flex; flex-direction: column; align-items: center; padding-top: 20px; padding-bottom: 40px; } .container { width: 100%; max-width: 960px; margin: 0 auto; padding: 20px; background-color: var(–white); border-radius: var(–border-radius); box-shadow: var(–box-shadow); display: flex; flex-direction: column; align-items: center; } h1, h2, h3 { color: var(–primary-color); text-align: center; margin-bottom: 1.5em; } h1 { font-size: 2.5em; } h2 { font-size: 2em; margin-top: 1.5em; } h3 { font-size: 1.5em; margin-top: 1.2em; } p { margin-bottom: 1em; text-align: justify; } .calculator-wrapper { width: 100%; background-color: var(–white); border-radius: var(–border-radius); box-shadow: var(–box-shadow); padding: 30px; margin-top: 30px; display: flex; flex-direction: column; align-items: center; } .calculator-wrapper h2 { margin-top: 0; margin-bottom: 20px; } .loan-calc-container { width: 100%; display: flex; flex-direction: column; gap: 20px; } .input-group { display: flex; flex-direction: column; gap: 8px; width: 100%; } .input-group label { font-weight: bold; color: var(–primary-color); } .input-group input[type="number"], .input-group input[type="text"], .input-group select { padding: 12px; border: 1px solid var(–light-gray); border-radius: var(–border-radius); font-size: 1em; width: 100%; box-sizing: border-box; } .input-group input[type="number"]:focus, .input-group input[type="text"]:focus, .input-group select:focus { outline: none; border-color: var(–primary-color); box-shadow: 0 0 0 2px rgba(0, 74, 153, 0.2); } .input-group .helper-text { font-size: 0.85em; color: #6c757d; } .input-group .error-message { color: red; font-size: 0.8em; margin-top: 5px; display: none; /* Hidden by default */ } .button-group { display: flex; justify-content: space-between; gap: 15px; margin-top: 25px; flex-wrap: wrap; } .button-group button { padding: 12px 25px; border: none; border-radius: var(–border-radius); cursor: pointer; font-size: 1em; font-weight: bold; transition: background-color 0.3s ease; flex-grow: 1; min-width: 150px; } .button-group button.calculate-btn { background-color: var(–primary-color); color: var(–white); } .button-group button.calculate-btn:hover { background-color: #003366; } .button-group button.reset-btn { background-color: var(–light-gray); color: var(–text-color); } .button-group button.reset-btn:hover { background-color: #d3d9df; } .button-group button.copy-btn { background-color: var(–success-color); color: var(–white); } .button-group button.copy-btn:hover { background-color: #218838; } #results-container { margin-top: 30px; padding: 25px; background-color: var(–light-gray); border-radius: var(–border-radius); width: 100%; box-sizing: border-box; display: flex; flex-direction: column; align-items: center; text-align: center; } #results-container h3 { margin-top: 0; color: var(–primary-color); } .primary-result { font-size: 2.2em; font-weight: bold; color: var(–primary-color); background-color: #e0f7fa; padding: 15px 25px; border-radius: var(–border-radius); margin-bottom: 20px; display: inline-block; } .intermediate-results { display: flex; flex-wrap: wrap; justify-content: center; gap: 20px; margin-bottom: 20px; width: 100%; } .intermediate-results .result-item { background-color: var(–white); padding: 15px; border-radius: var(–border-radius); box-shadow: var(–box-shadow); text-align: center; flex: 1; min-width: 180px; } .intermediate-results .result-item h4 { font-size: 1.1em; color: var(–primary-color); margin: 0 0 10px 0; } .intermediate-results .result-item p { font-size: 1.5em; font-weight: bold; margin: 0; color: var(–text-color); } .formula-explanation { font-size: 0.9em; color: #6c757d; margin-top: 15px; text-align: left; border-top: 1px solid var(–light-gray); padding-top: 15px; } .chart-container { width: 100%; margin-top: 30px; padding: 20px; background-color: var(–white); border-radius: var(–border-radius); box-shadow: var(–box-shadow); display: flex; flex-direction: column; align-items: center; } .chart-container h3 { margin-top: 0; } canvas { max-width: 100%; height: auto; } .table-container { width: 100%; margin-top: 30px; overflow-x: auto; /* Make table scrollable on mobile */ } .table-container caption { font-size: 1.2em; font-weight: bold; color: var(–primary-color); margin-bottom: 15px; text-align: center; } table { width: 100%; border-collapse: collapse; margin-top: 10px; background-color: var(–white); border-radius: var(–border-radius); box-shadow: var(–box-shadow); } th, td { padding: 12px 15px; text-align: left; border-bottom: 1px solid var(–light-gray); } th { background-color: var(–primary-color); color: var(–white); font-weight: bold; } tr:nth-child(even) { background-color: var(–light-gray); } tr:hover { background-color: #d0e0f0; } .article-content { width: 100%; margin-top: 40px; background-color: var(–white); border-radius: var(–border-radius); box-shadow: var(–box-shadow); padding: 30px; text-align: left; } .article-content h2, .article-content h3 { text-align: left; margin-bottom: 1em; } .article-content p { text-align: left; } .article-content ul, .article-content ol { margin-left: 20px; margin-bottom: 1em; } .article-content li { margin-bottom: 0.5em; } .article-content a { color: var(–primary-color); text-decoration: none; } .article-content a:hover { text-decoration: underline; } .faq-section { margin-top: 30px; padding: 20px; background-color: var(–white); border-radius: var(–border-radius); box-shadow: var(–box-shadow); } .faq-section h3 { margin-top: 0; margin-bottom: 20px; } .faq-item { margin-bottom: 15px; border-bottom: 1px solid var(–light-gray); padding-bottom: 10px; } .faq-item:last-child { border-bottom: none; } .faq-question { font-weight: bold; color: var(–primary-color); cursor: pointer; display: flex; justify-content: space-between; align-items: center; } .faq-question::after { content: '+'; font-size: 1.2em; transition: transform 0.3s ease; } .faq-question.active::after { transform: rotate(45deg); } .faq-answer { max-height: 0; overflow: hidden; transition: max-height 0.3s ease-out; margin-top: 10px; font-size: 0.95em; color: #555; } .related-links { margin-top: 30px; padding: 20px; background-color: var(–white); border-radius: var(–border-radius); box-shadow: var(–box-shadow); } .related-links h3 { margin-top: 0; margin-bottom: 20px; } .related-links ul { list-style: none; padding: 0; } .related-links li { margin-bottom: 15px; } .related-links a { font-weight: bold; } .related-links p { font-size: 0.9em; color: #6c757d; margin-top: 5px; margin-bottom: 0; } /* Responsive adjustments */ @media (max-width: 768px) { h1 { font-size: 2em; } h2 { font-size: 1.75em; } h3 { font-size: 1.3em; } .container, .calculator-wrapper, .article-content, .faq-section, .related-links { padding: 15px; } .button-group button { min-width: unset; width: 100%; } .primary-result { font-size: 1.8em; } .intermediate-results .result-item { min-width: 150px; padding: 10px; } .intermediate-results .result-item p { font-size: 1.3em; } table, th, td { font-size: 0.9em; } }

How to Calculate Addressable Market: Your Ultimate Guide & Calculator

Addressable Market Calculator

The total number of individuals or businesses that could potentially use your product/service.
The percentage of the total potential market that is realistically reachable.
The average amount of revenue generated by each customer over a specific period (e.g., annually).
The average cost to acquire a new customer.
The expected annual growth rate of the total addressable market.

Your Addressable Market Insights

Total Addressable Market (TAM)

Serviceable Available Market (SAM)

Serviceable Obtainable Market (SOM)

Potential Annual Revenue

Formula Used:
TAM = Total Potential Customers
SAM = TAM * Market Penetration Rate (%)
SOM = SAM * Your Market Share (%) (Assumed 10% for this calculator if not specified)
Potential Annual Revenue = SOM * Average Revenue Per User (ARPU)
*Note: This calculator simplifies market share to 10% for SOM calculation. For a more precise SOM, adjust your market share assumption.*

Market Size Projection (Next 5 Years)

Market Size Breakdown
Metric Current Value Year 1 Year 2 Year 3 Year 4 Year 5
TAM
SAM
SOM
Potential Revenue

What is Addressable Market?

Understanding your addressable market is fundamental to any business strategy. It represents the total market demand for a product or service. In essence, it's the revenue opportunity available for your business if you achieve 100% market share. Calculating your addressable market isn't just an academic exercise; it's a critical step for investors, strategic planning, and resource allocation. It helps businesses determine the potential scale of their operations and the feasibility of their growth objectives.

The concept of addressable market is typically broken down into three key components: Total Addressable Market (TAM), Serviceable Available Market (SAM), and Serviceable Obtainable Market (SOM). Each layer provides a progressively more refined view of your market opportunity.

Who should use it?

  • Startups and Entrepreneurs: To validate business ideas, attract investors, and set realistic growth targets.
  • Established Businesses: For strategic planning, identifying new market opportunities, and assessing competitive landscapes.
  • Investors: To evaluate the growth potential of companies and the size of the markets they operate in.
  • Marketing and Sales Teams: To define target customer segments and allocate resources effectively.

Common Misconceptions:

  • TAM is your revenue: TAM is the *total* potential, not what you will actually capture.
  • It's a one-time calculation: Markets are dynamic; addressable market needs regular re-evaluation.
  • Focusing only on TAM: While important, SAM and SOM provide more actionable insights for immediate strategy.
  • Ignoring competition: Addressable market calculations often implicitly consider competition, especially in SOM.

Addressable Market Formula and Mathematical Explanation

Calculating your addressable market involves a hierarchical approach, moving from the broadest potential to the most realistic achievable segment. The core components are TAM, SAM, and SOM.

1. Total Addressable Market (TAM): This is the total market demand for a product or service. It represents the maximum revenue opportunity available if you were to capture 100% of the market.
Formula: TAM = Total Potential Customers * Average Revenue Per User (ARPU)
Alternatively, if customer numbers are hard to define, TAM can be calculated based on total industry revenue.

2. Serviceable Available Market (SAM): This is the segment of the TAM that your product or service targets and can realistically reach with your current business model and sales channels. It's the portion of the TAM that is within your geographical reach and addresses the specific needs your product fulfills.
Formula: SAM = TAM * Market Penetration Rate (%)
The Market Penetration Rate is an estimate of the percentage of the total potential market that is realistically accessible to your business.

3. Serviceable Obtainable Market (SOM): This is the portion of the SAM that your business can realistically capture in the short to medium term, considering your competition, marketing efforts, sales capacity, and pricing. It's your target market share within the SAM.
Formula: SOM = SAM * Your Market Share (%)
For simplicity in this calculator, we assume a 10% market share if not explicitly defined. In reality, this requires deep competitive analysis.

Potential Annual Revenue: This is the projected revenue your business can generate if you achieve your SOM.
Formula: Potential Annual Revenue = SOM * Average Revenue Per User (ARPU)

Variables Table

Variable Meaning Unit Typical Range
Total Potential Customers The total number of individuals or businesses that could potentially use your product/service. Count Varies widely (thousands to billions)
Average Revenue Per User (ARPU) Average revenue generated per customer over a period (e.g., annually). Currency (e.g., USD) Varies widely based on industry and product value
Market Penetration Rate (%) Percentage of TAM realistically reachable. Percentage (%) 0% – 100% (often 10% – 50% for SAM)
Your Market Share (%) Percentage of SAM your business aims to capture. Percentage (%) 0% – 100% (often 5% – 20% for SOM)
Average Customer Acquisition Cost (CAC) Average cost to acquire a new customer. Currency (e.g., USD) Varies widely based on industry and marketing
Annual Market Growth Rate (%) Expected annual growth of the TAM. Percentage (%) 0% – 20%+
TAM Total Addressable Market value. Currency (e.g., USD) Can be very large
SAM Serviceable Available Market value. Currency (e.g., USD) TAM * Penetration Rate
SOM Serviceable Obtainable Market value. Currency (e.g., USD) SAM * Market Share

Practical Examples (Real-World Use Cases)

Example 1: A New SaaS Productivity Tool

A startup is launching a new cloud-based project management tool targeting small to medium-sized businesses (SMBs) in North America.

  • Total Potential Customers: There are 5 million SMBs in North America that could potentially use a project management tool.
  • Average Revenue Per User (ARPU): The tool is priced at $30 per user per month, averaging $360 per user annually.
  • Market Penetration Rate: Based on industry analysis, only 40% of these SMBs are actively seeking or open to new project management solutions.
  • Your Market Share: The startup aims to capture 15% of the reachable market within 3 years.
  • CAC: Estimated at $200 per customer.
  • Market Growth Rate: The SaaS productivity market is growing at 8% annually.

Calculations:

  • TAM: 5,000,000 SMBs * $360/SMB/year = $1,800,000,000 (or $1.8 Billion)
  • SAM: $1,800,000,000 TAM * 40% Market Penetration Rate = $720,000,000 (or $720 Million)
  • SOM: $720,000,000 SAM * 15% Market Share = $108,000,000 (or $108 Million)
  • Potential Annual Revenue: $108,000,000 SOM * $360 ARPU = $38,880,000,000 (This calculation is incorrect, SOM is the revenue potential, not ARPU * SOM)
  • Corrected Potential Annual Revenue: The SOM ($108 Million) represents the total revenue potential for the business if it achieves its target market share. The ARPU is already factored into the TAM/SAM/SOM values if calculated based on revenue. If calculated based on customer count, then Potential Annual Revenue = SOM (customer count) * ARPU. Let's assume SOM is in revenue terms here.
  • Revised Potential Annual Revenue: $108,000,000 (SOM in revenue terms)

Financial Interpretation: The startup has a significant addressable market opportunity ($1.8B TAM). Their realistic target market (SAM) is $720M. Their achievable goal (SOM) is $108M, representing a substantial revenue potential. The CAC of $200 needs to be compared against the Lifetime Value (LTV) derived from the ARPU and customer retention to ensure profitability. The 8% market growth suggests a favorable long-term outlook.

Example 2: A Local Artisan Bakery

A new bakery opens in a mid-sized town, focusing on high-quality, artisanal bread and pastries.

  • Total Potential Customers: The town has a population of 50,000 residents. Assume 70% are potential bakery customers (excluding very young children, etc.).
  • Average Revenue Per User (ARPU): Based on local spending habits, the average customer spends $15 per week on bakery items, totaling $780 annually.
  • Market Penetration Rate: The bakery aims to serve residents within a 5-mile radius, representing 60% of the town's population.
  • Your Market Share: The bakery targets capturing 20% of the local SAM within 2 years.
  • CAC: Estimated at $5 per customer (through local marketing).
  • Market Growth Rate: The local economy is stable, with a 2% annual growth rate.

Calculations:

  • TAM: 50,000 residents * 70% potential customers * $780/customer/year = $27,300,000 (or $27.3 Million)
  • SAM: $27,300,000 TAM * 60% Reachable Radius = $16,380,000 (or $16.38 Million)
  • SOM: $16,380,000 SAM * 20% Market Share = $3,276,000 (or $3.28 Million)
  • Potential Annual Revenue: $3,276,000 (SOM in revenue terms)

Financial Interpretation: The local bakery has a TAM of $27.3M. The SAM within its service area is $16.38M. The achievable SOM is $3.28M. This indicates a solid potential revenue stream for a local business. The low CAC suggests efficient marketing. The business needs to ensure its product quality and customer experience justify the $15 weekly spend to achieve and maintain its market share. The stable 2% growth rate provides a predictable environment.

How to Use This Addressable Market Calculator

Our Addressable Market Calculator is designed to provide quick insights into your market potential. Follow these simple steps:

  1. Input Total Potential Customers: Enter the total number of individuals or businesses that could theoretically buy your product or service. Be realistic but comprehensive.
  2. Enter Market Penetration Rate (%): Input the percentage of the total potential market that you can realistically reach with your current business model, sales channels, and geographic focus. This refines TAM into SAM.
  3. Input Average Revenue Per User (ARPU): Enter the average annual revenue you expect to generate from each customer.
  4. Input Customer Acquisition Cost (CAC): Enter the average cost to acquire a new customer. This helps contextualize the market size with profitability.
  5. Input Annual Market Growth Rate (%): Estimate the annual growth rate of your overall market. This helps project future potential.
  6. Click 'Calculate Market Size': The calculator will instantly display your TAM, SAM, SOM, and Potential Annual Revenue.

How to Read Results:

  • TAM: The absolute ceiling of your market opportunity.
  • SAM: The portion of TAM you can realistically serve.
  • SOM: Your achievable target market share within the SAM. This is often the most actionable number for short-term planning.
  • Potential Annual Revenue: The projected annual revenue if you achieve your SOM.
  • Market Projection Chart: Visualize how TAM, SAM, and SOM are expected to grow over the next five years based on the market growth rate.
  • Market Size Breakdown Table: See a year-by-year projection of your key market metrics.

Decision-Making Guidance:

  • Is the SOM large enough? If your SOM is too small, you may need to reconsider your target market, geographic scope, or product offering.
  • Is the Potential Revenue aligned with goals? Compare the potential revenue against your business objectives and funding requirements.
  • Profitability Check: While this calculator doesn't compute LTV/CAC ratio directly, use the ARPU and CAC inputs to start that analysis. A healthy business typically requires LTV > 3x CAC.
  • Growth Potential: The market growth rate indicates the long-term health and expansion possibilities of your market.

Key Factors That Affect Addressable Market Results

Several factors can significantly influence the accuracy and interpretation of your addressable market calculations. Understanding these nuances is crucial for strategic decision-making.

  1. Definition of "Customer": How you define a potential customer (individual, household, business size, industry vertical) directly impacts TAM. A broader definition inflates TAM, while a narrower one makes it more specific but potentially smaller.
  2. Market Segmentation Accuracy: The precision of your SAM and SOM calculations heavily relies on how well you segment the market. Overestimating or underestimating the addressable segments can lead to flawed strategies.
  3. Competitive Landscape: Your market share (and thus SOM) is directly constrained by the number and strength of competitors. Intense competition reduces achievable market share.
  4. Pricing Strategy: Your ARPU is a function of your pricing. A premium price might yield higher ARPU but reduce the number of potential customers (affecting TAM and SAM), while a low price might attract more customers but lower overall revenue potential.
  5. Technological Advancements & Disruption: New technologies can rapidly expand or shrink addressable markets. For example, the rise of streaming services drastically reduced the addressable market for physical media rentals.
  6. Economic Conditions: Recessions can shrink disposable income, reducing ARPU and the number of potential customers, thus impacting TAM, SAM, and SOM. Conversely, economic booms can expand these figures.
  7. Regulatory Environment: Government regulations, industry standards, or legal restrictions can limit market access or product viability, affecting SAM and SOM.
  8. Sales and Marketing Effectiveness: The efficiency and reach of your sales and marketing efforts directly influence how much of the SAM you can convert into SOM. Poor execution limits obtainable market share.

Frequently Asked Questions (FAQ)

What's the difference between TAM, SAM, and SOM?
TAM (Total Addressable Market) is the total market demand for your type of product/service. SAM (Serviceable Available Market) is the segment of TAM you can reach with your sales channels and business model. SOM (Serviceable Obtainable Market) is the portion of SAM you can realistically capture. Think of it as: TAM is everyone who *could* buy, SAM is everyone you *can* sell to, and SOM is who you *will* sell to.
How often should I recalculate my addressable market?
It's best to review and recalculate your addressable market at least annually, or whenever significant market shifts occur (e.g., new competitor entry, major technological change, economic downturn/upturn, change in your business strategy).
Can TAM be smaller than SAM or SOM?
No, by definition, TAM is the largest market size. SAM is a subset of TAM, and SOM is a subset of SAM. Therefore, TAM must always be greater than or equal to SAM, and SAM must always be greater than or equal to SOM.
What if my product serves multiple markets?
If your product serves multiple distinct markets, you should calculate the addressable market for each segment separately. Then, you can sum these up to get a consolidated TAM, or analyze each market individually based on your strategic focus.
Is it better to have a large TAM or a large SOM?
A large TAM indicates significant overall market potential, which is attractive for growth and investment. However, a large SOM indicates a realistic and achievable revenue target for your business in the near term. Both are important, but SOM is often more critical for operational planning and immediate strategy.
How does CAC affect addressable market calculations?
CAC itself doesn't directly alter the TAM, SAM, or SOM figures. However, it's crucial for determining the *viability* of capturing your SOM. If your CAC is too high relative to the ARPU and the potential revenue from your SOM, achieving that SOM might not be profitable, even if the market size is attractive.
What are bottom-up and top-down approaches to market sizing?
The top-down approach starts with TAM (e.g., total industry revenue) and narrows down using penetration and market share percentages. This calculator primarily uses a top-down approach. The bottom-up approach starts with individual customer segments or potential sales and builds up to estimate the total market size. It's often considered more accurate for SOM.
How do I find reliable data for market research?
Reliable data can be found from industry reports (Gartner, Forrester, Statista), government statistics (census data, economic reports), trade associations, market research firms, competitor analysis, and customer surveys. Be critical of data sources and triangulate information where possible.

© 2023 Your Company Name. All rights reserved.

var chartInstance = null; // Global variable to hold chart instance function formatCurrency(value) { if (isNaN(value) || value === null) return "–"; return "$" + value.toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,'); } function formatNumber(value) { if (isNaN(value) || value === null) return "–"; return value.toFixed(0).replace(/\d(?=(\d{3})+$)/g, '$&,'); } function formatPercentage(value) { if (isNaN(value) || value === null) return "–"; return value.toFixed(1) + "%"; } function validateInput(id, min, max, isPercentage = false) { var input = document.getElementById(id); var errorElement = document.getElementById(id + "Error"); var value = parseFloat(input.value); errorElement.style.display = 'none'; // Hide error by default if (input.value === "") { errorElement.textContent = "This field cannot be empty."; errorElement.style.display = 'block'; return false; } if (isNaN(value)) { errorElement.textContent = "Please enter a valid number."; errorElement.style.display = 'block'; return false; } if (min !== null && value max) { errorElement.textContent = "Value cannot be greater than " + (isPercentage ? max + "%" : formatCurrency(max)) + "."; errorElement.style.display = 'block'; return false; } return true; } function calculateAddressableMarket() { // Input Validation var isValid = true; isValid &= validateInput('totalPopulation', 0, null); isValid &= validateInput('penetrationRate', 0, 100, true); isValid &= validateInput('averageRevenuePerUser', 0, null); isValid &= validateInput('customerAcquisitionCost', 0, null); isValid &= validateInput('marketGrowthRate', 0, null, true); if (!isValid) { return; // Stop calculation if any input is invalid } var totalPopulation = parseFloat(document.getElementById('totalPopulation').value); var penetrationRate = parseFloat(document.getElementById('penetrationRate').value) / 100; // Convert % to decimal var averageRevenuePerUser = parseFloat(document.getElementById('averageRevenuePerUser').value); var customerAcquisitionCost = parseFloat(document.getElementById('customerAcquisitionCost').value); var marketGrowthRate = parseFloat(document.getElementById('marketGrowthRate').value) / 100; // Convert % to decimal // Simplified SOM market share assumption (10%) var somMarketShare = 0.10; // 10% // Calculations var tam = totalPopulation * averageRevenuePerUser; var sam = tam * penetrationRate; var som = sam * somMarketShare; var potentialRevenue = som; // SOM represents the revenue potential in this model // Display Results document.getElementById('primaryResult').textContent = formatCurrency(potentialRevenue); document.getElementById('tamResult').textContent = formatCurrency(tam); document.getElementById('samResult').textContent = formatCurrency(sam); document.getElementById('somResult').textContent = formatCurrency(som); document.getElementById('potentialRevenueResult').textContent = formatCurrency(potentialRevenue); // Update Table and Chart updateMarketProjections(totalPopulation, penetrationRate, marketGrowthRate, averageRevenuePerUser, somMarketShare); } function updateMarketProjections(initialPopulation, initialPenetrationRate, marketGrowthRate, arpu, somShare) { var currentYearPopulation = initialPopulation; var currentYearPenetrationRate = initialPenetrationRate; var currentYearTAM = currentYearPopulation * arpu; var currentYearSAM = currentYearTAM * currentYearPenetrationRate; var currentYearSOM = currentYearSAM * somShare; var currentYearRevenue = currentYearSOM; document.getElementById('tamCurrent').textContent = formatCurrency(currentYearTAM); document.getElementById('samCurrent').textContent = formatCurrency(currentYearSAM); document.getElementById('somCurrent').textContent = formatCurrency(currentYearSOM); document.getElementById('revCurrent').textContent = formatCurrency(currentYearRevenue); var tableBody = document.getElementById('marketTableBody'); var rows = tableBody.getElementsByTagName('tr'); var dataSeriesTAM = [currentYearTAM]; var dataSeriesSAM = [currentYearSAM]; var dataSeriesSOM = [currentYearSOM]; var dataSeriesRevenue = [currentYearRevenue]; for (var i = 1; i = 1000000000) return '$' + value / 1000000000 + 'B'; if (value >= 1000000) return '$' + value / 1000000 + 'M'; if (value >= 1000) return '$' + value / 1000 + 'K'; return '$' + value; } } } }, plugins: { legend: { position: 'top', }, title: { display: true, text: 'Projected Market Size Over 5 Years' } } } }); } function resetCalculator() { document.getElementById('totalPopulation').value = "1000000"; document.getElementById('penetrationRate').value = "10"; document.getElementById('averageRevenuePerUser').value = "50"; document.getElementById('customerAcquisitionCost').value = "10"; document.getElementById('marketGrowthRate').value = "5"; // Clear errors var errorElements = document.getElementsByClassName('error-message'); for (var i = 0; i < errorElements.length; i++) { errorElements[i].textContent = ''; errorElements[i].style.display = 'none'; } calculateAddressableMarket(); // Recalculate with default values } function copyResults() { var primaryResult = document.getElementById('primaryResult').textContent; var tamResult = document.getElementById('tamResult').textContent; var samResult = document.getElementById('samResult').textContent; var somResult = document.getElementById('somResult').textContent; var potentialRevenueResult = document.getElementById('potentialRevenueResult').textContent; var assumptions = "Key Assumptions:\n"; assumptions += "- Total Potential Customers: " + formatNumber(parseFloat(document.getElementById('totalPopulation').value.replace(/,/g, ''))) + "\n"; assumptions += "- Market Penetration Rate: " + formatPercentage(parseFloat(document.getElementById('penetrationRate').value)) + "\n"; assumptions += "- Average Revenue Per User (ARPU): " + formatCurrency(parseFloat(document.getElementById('averageRevenuePerUser').value)) + "\n"; assumptions += "- Customer Acquisition Cost (CAC): " + formatCurrency(parseFloat(document.getElementById('customerAcquisitionCost').value)) + "\n"; assumptions += "- Annual Market Growth Rate: " + formatPercentage(parseFloat(document.getElementById('marketGrowthRate').value)) + "\n"; assumptions += "- SOM Market Share (Assumed): 10%\n"; // Explicitly state the assumed SOM share var resultsText = "Addressable Market Results:\n\n"; resultsText += "Primary Result (Potential Annual Revenue): " + primaryResult + "\n\n"; resultsText += "Breakdown:\n"; resultsText += "- TAM: " + tamResult + "\n"; resultsText += "- SAM: " + samResult + "\n"; resultsText += "- SOM: " + somResult + "\n"; resultsText += "- Potential Annual Revenue: " + potentialRevenueResult + "\n\n"; resultsText += assumptions; // Use navigator.clipboard for modern browsers if (navigator.clipboard && navigator.clipboard.writeText) { navigator.clipboard.writeText(resultsText).then(function() { alert('Results copied to clipboard!'); }).catch(function(err) { console.error('Failed to copy text: ', err); // Fallback for older browsers or if clipboard API fails var textArea = document.createElement("textarea"); textArea.value = resultsText; textArea.style.position = "fixed"; textArea.style.left = "-9999px"; document.body.appendChild(textArea); textArea.focus(); textArea.select(); try { document.execCommand('copy'); alert('Results copied to clipboard!'); } catch (e) { alert('Failed to copy. Please copy manually.'); console.error('Fallback copy failed: ', e); } document.body.removeChild(textArea); }); } else { // Fallback for older browsers var textArea = document.createElement("textarea"); textArea.value = resultsText; textArea.style.position = "fixed"; textArea.style.left = "-9999px"; document.body.appendChild(textArea); textArea.focus(); textArea.select(); try { document.execCommand('copy'); alert('Results copied to clipboard!'); } catch (e) { alert('Failed to copy. Please copy manually.'); console.error('Fallback copy failed: ', e); } document.body.removeChild(textArea); } } function toggleFaq(element) { var faqAnswer = element.nextElementSibling; element.classList.toggle('active'); if (faqAnswer.style.maxHeight) { faqAnswer.style.maxHeight = null; } else { faqAnswer.style.maxHeight = faqAnswer.scrollHeight + "px"; } } // Initial calculation on page load window.onload = function() { calculateAddressableMarket(); // Ensure chart canvas is available before trying to render var canvas = document.getElementById('marketProjectionChart'); if (canvas) { var ctx = canvas.getContext('2d'); // Initialize chart with dummy data or call updateChart after first calculation updateChart([], [], [], []); // Initialize empty chart } }; // Add Chart.js library dynamically if not present (for demonstration purposes) // In a real WordPress setup, you'd enqueue this script properly. if (typeof Chart === 'undefined') { var script = document.createElement('script'); script.src = 'https://cdn.jsdelivr.net/npm/chart.js@3.7.0/dist/chart.min.js'; script.onload = function() { // Re-run initial calculation after chart library is loaded calculateAddressableMarket(); }; document.head.appendChild(script); } else { // If Chart.js is already available, just run the initial calculation calculateAddressableMarket(); }

Leave a Comment