# Data Analysis Patterns for Market Research ## Measurement contract Define the quantity before collecting numbers: - product/service inclusion and exclusion; - buyer, user, payer, and transaction type; - geography and treatment of imports/exports; - historical period, forecast horizon, and as-of date; - revenue, expenditure, gross output, value added, units, capacity, users, or another measure; - stock versus flow; - gross versus net, taxes included/excluded, and channel level; - currency, exchange-rate convention, base year, and nominal/real basis; - industry and product taxonomy with version; - denominator ID used in every share or rate. If two estimates do not share this contract, they are not directly comparable. ## TAM, SAM, and SOM Treat all three as conditional scenario constructs. ### Definitions - **TAM**: value or volume of all in-scope demand under the stated market definition and time basis. - **SAM**: subset of TAM serviceable under explicit product, geography, regulatory, channel, capacity, and customer constraints. - **SOM**: subset of SAM obtainable within a stated time horizon under explicit competitive, operational, sales, retention, and capacity assumptions. Never present SOM as a guaranteed share or TAM as an objective universal truth. ### Top-down method Use disjoint components: ```text TAM_top = sum(value_i * in_scope_fraction_i) ``` Each component needs a unique coverage key, source IDs, period, unit, and denominator. Do not apply a broad percentage to an unrelated aggregate merely because the resulting number looks plausible. ### Bottom-up method For a recurring-use market: ```text component_i = customer_count_i * addressable_fraction_i * annual_quantity_per_customer_i * price_per_unit_i TAM_bottom = sum(component_i) ``` Alternative physical-capacity models may use installed base, utilization, replacement cycle, throughput, or transactions. Keep dimensions explicit so the resulting unit can be checked. ### SAM and SOM ```text SAM_s = TAM * serviceable_fraction_s SOM_s = SAM_s * obtainable_share_s ``` The fractions belong to scenario `s`. At minimum, use distinct downside and upside cases; a base case is usually useful. For each case, list assumptions, evidence, constraints, and horizon. Do not assign probabilities without a validated probabilistic model. ### Preventing double counting Common failures: - adding manufacturer revenue to distributor or end-customer spend; - adding domestic production, imports, and sales without subtracting exports, inventories, or overlapping channels; - summing parent and subsidiary revenue; - adding product bundles and their included components; - combining gross output and value added; - counting the same establishment in multiple segment labels; - adding annual transactions to installed-base stock; - applying overlapping geography or customer filters independently. Controls: 1. assign a unique coverage key to every component; 2. use mutually exclusive, collectively understood segments; 3. define a single denominator ID; 4. draw money and product flows through the value chain; 5. reconcile supply, use, trade, inventory, and channel margins; 6. show an ``unallocated/unknown'' residual rather than forcing totals; 7. test the sum against an independent control total. Supply-use tables distinguish products from industries and the origin/use of goods and services. Use the [OECD Supply and Use Tables](https://www.oecd.org/en/data/datasets/supply-and-use-tables.html) and national accounts methodology when the value chain spans intermediate and final demand. ### Reconciliation Keep methods separate: ```text absolute_gap = abs(TAM_top - TAM_bottom) midpoint = (TAM_top + TAM_bottom) / 2 gap_percent = absolute_gap / midpoint ``` Investigate gaps in this order: 1. definition and denominator; 2. geography, period, currency, and price basis; 3. taxonomy and segment concordance; 4. gross/net, taxes, channel margins, imports/exports; 5. missing or duplicate coverage; 6. source revision and sample limitations; 7. price, volume, penetration, and utilization assumptions. Do not average the methods until their scopes are demonstrably compatible. If uncertainty remains, report both or retain a range. ## Growth and forecasts ### Historical growth ```text YoY_t = value_t / value_(t-1) - 1 CAGR = (end / start)^(1 / periods) - 1 ``` CAGR compresses the path. Always show start/end values and period count. It is undefined when the start is nonpositive and can hide volatility, breaks, and revisions. ### Scenario forecast ```text value_(t+1,s) = value_(t,s) * (1 + growth_rate_(t,s)) ``` Build rate paths from named drivers rather than copying a paid headline forecast. Separate: - historical observed period; - nowcast or estimate period; - conditional forecast period. For each scenario, state demand, price, supply, regulation, competition, capacity, and timing assumptions. Use different paths, not merely different labels. ### Sensitivity One-way sensitivity varies one input while holding others fixed. Report: - tested range and rationale; - resulting endpoints; - switching value where the decision changes; - nonlinearities or constraints; - interactions omitted by one-way analysis. Scenario analysis explores coherent joint states. It is not a confidence interval. Statistical prediction intervals require a specified model, error process, diagnostics, and coverage interpretation. The 2023 [OMB Circular A-4](https://www.whitehouse.gov/wp-content/uploads/2023/11/CircularA-4.pdf) provides primary guidance on characterizing uncertainty, sensitivity, and transparent assumptions. The [UK Green Book 2026](https://www.gov.uk/government/publications/the-green-book-appraisal-and-evaluation-in-central-government/the-green-book-2026) provides additional public-sector appraisal guidance. Adapt principles proportionately; do not imply that a market report is a regulatory appraisal. ## Units, currencies, and price bases ### Nominal and real - **Nominal/current-price** values reflect prices in each period. - **Real/constant-price** values remove price change using an identified deflator and base/reference year. - Never combine nominal and real values in one total or growth rate. - Match nominal values to nominal assumptions and real values to real assumptions. Record: ```text real_value_base_year = nominal_value_t * price_index_base / price_index_t ``` Identify the index, geography, category, vintage, and whether it is appropriate for the market. A broad CPI may be unsuitable for a specialized B2B input. ### Chained measures Chained-dollar components may not add to published aggregates. BEA's [chained-dollar guidance](https://www.bea.gov/resources/methodologies/chained-dollar-indexes) explains why. Use published contributions to growth or current-dollar composition rather than forcing additivity. ### Currency conversion Record: - source and target currency; - spot, period-average, or period-end convention; - rate date/period and source; - order of currency conversion and deflation; - effects of high inflation or multiple exchange-rate regimes. Do not mix converted flows using period-end rates with balances using averages without explanation. ### Stock and flow A stock is measured at a point in time; a flow over an interval. Installed base, employees on a date, and capacity are stocks. Revenue, transactions, and shipments during a year are flows. A stock-to-flow conversion requires an explicit turnover, utilization, or replacement-cycle assumption. ## Shares and concentration ```text share_i = in_scope_measure_i / same_scope_total HHI = sum((100 * share_i)^2) CR4 = sum(four_largest_shares) ``` Before computing: - define product and geographic scope; - use one share metric and denominator; - include the same period and channel level; - account for unknown/residual firms; - disclose whether values are revenue, units, capacity, or active users; - avoid false precision when company and total estimates use different methods. The [2023 U.S. Merger Guidelines](https://www.ftc.gov/system/files/ftc_gov/pdf/2023_merger_guidelines_final_12.18.2023.pdf) describe HHI as one indicator in case-specific merger analysis. The [2024 EU Market Definition Notice](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=OJ:C_202401645) addresses product/geographic scope, non-price parameters, dynamic and digital markets, alternate share metrics, and evidence. A market report's HHI is descriptive and is not a legal conclusion. ## Survey and interview synthesis ### Survey estimate For a probability sample, report the design-based or model-based estimator, weights, design effect, and appropriate uncertainty. Do not infer population precision from sample size alone. For a non-probability sample, disclose recruitment and model assumptions. Use careful labels such as ``among respondents'' unless a validated adjustment supports broader inference. ### Interview themes Use a structured coding frame: ```text theme_id | definition | inclusion rule | exclusion rule | supporting excerpts | disconfirming excerpts | roles represented ``` Report a theme as qualitative evidence. Do not translate mention counts into market prevalence. ## Confidence labels Confidence is an analyst assessment, not a substitute for uncertainty: - **High**: directly observed, well-defined primary evidence with compatible scope and low material revision risk. - **Medium**: triangulated evidence with manageable assumptions or limitations. - **Low**: sparse, conflicting, indirect, modeled, or scope-mismatched evidence. - **Not assessed**: opinion or recommendation where an evidence-confidence label is inappropriate. Always state the reasons. Multiple low-quality sources do not automatically produce high confidence.