data_analysis_patterns.md
292 lines · skills/market-research-reports/references/data_analysis_patterns.md at 5f2bc03
Data Analysis Patterns for Market Research
Raw lines 1 to 2Measurement 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.
Raw lines 3 to 20Definitions
- 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.
Raw lines 25 to 35Top-down method
Use disjoint components:
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.
Raw lines 36 to 47Bottom-up method
For a recurring-use market:
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.
Raw lines 48 to 65SAM and SOM
SAM_s = TAM * serviceable_fraction_s
SOM_s = SAM_s * obtainable_share_sThe 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:
- assign a unique coverage key to every component;
- use mutually exclusive, collectively understood segments;
- define a single denominator ID;
- draw money and product flows through the value chain;
- reconcile supply, use, trade, inventory, and channel margins;
- show an ``unallocated/unknown'' residual rather than forcing totals;
- 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 and national accounts methodology when the value chain spans intermediate and final demand.
Raw lines 78 to 107Reconciliation
Keep methods separate:
absolute_gap = abs(TAM_top - TAM_bottom)
midpoint = (TAM_top + TAM_bottom) / 2
gap_percent = absolute_gap / midpointInvestigate gaps in this order:
- definition and denominator;
- geography, period, currency, and price basis;
- taxonomy and segment concordance;
- gross/net, taxes, channel margins, imports/exports;
- missing or duplicate coverage;
- source revision and sample limitations;
- 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.
Raw lines 108 to 130Growth and forecasts
Raw lines 131 to 132Historical growth
YoY_t = value_t / value_(t-1) - 1
CAGR = (end / start)^(1 / periods) - 1CAGR 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.
Raw lines 133 to 143Scenario forecast
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.
Raw lines 144 to 160Sensitivity
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 reinstated 2003 OMB Circular A-4 provides primary guidance on characterizing uncertainty, sensitivity, and transparent assumptions. The 2023 revision was revoked by memorandum M-25-15; do not present it as current OMB guidance. The UK Green Book 2026 provides additional public-sector appraisal guidance. Adapt principles proportionately; do not imply that a market report is a regulatory appraisal.
Raw lines 161 to 184Units, currencies, and price bases
Raw lines 185 to 186Nominal 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:
real_value_base_year = nominal_value_t * price_index_base / price_index_tIdentify the index, geography, category, vintage, and whether it is appropriate for the market. A broad CPI may be unsuitable for a specialized B2B input.
Raw lines 187 to 204Chained measures
Chained-dollar components may not add to published aggregates. BEA's chained-dollar guidance explains why. Use published contributions to growth or current-dollar composition rather than forcing additivity.
Raw lines 205 to 211Currency 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.
Raw lines 212 to 224Stock 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.
Raw lines 225 to 231Shares and concentration
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 describe HHI as one indicator in case-specific merger analysis. The 2024 EU Market Definition Notice 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.
Raw lines 232 to 255Survey and interview synthesis
Raw lines 256 to 257Survey 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.
Raw lines 258 to 267Interview themes
Use a structured coding frame:
theme_id | definition | inclusion rule | exclusion rule |
supporting excerpts | disconfirming excerpts | roles representedReport a theme as qualitative evidence. Do not translate mention counts into market prevalence.
Raw lines 268 to 279Confidence 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.
Raw lines 280 to 292