﻿{"version":"v1","last_updated":"2026-05-30","contact":{"email":"data.info@csimarket.com","description":"Questions about methodology, data sourcing, or licensing."},"sections":[{"section":"data_sourcing","title":"Data Sourcing and Coverage","content":{"primary_source":{"description":"Financial statement data is sourced from SEC EDGAR filings (10-Q, 10-K, 8-K). All figures are as-reported unless otherwise noted.","filing_types":["10-K","10-Q","8-K","10-K\/A","10-Q\/A"],"restatements":"Restated figures replace original when a 10-K\/A or 10-Q\/A is filed. The restatement_flag field indicates whether a period has been restated."},"value_scale":{"description":"All monetary values sourced from income statement, balance sheet, and cash flow tables are reported in absolute dollars (raw USD).","rule":"API value = raw USD value. No scaling required.","examples":{"revenue = 1250000000":"$1.25 billion","assets = 50000000000":"$50 billion","net_income = 120500000":"$120.5 million","cash = 8300000":"$8.3 million"},"per_share_fields":"Raw dollars per share. eps_diluted = 6.43 means $6.43 per share.","per_employee_fields":"Raw dollars per employee. revenue_per_employee = 850000 means $850K per employee.","non_usd_fields":"Percentage fields (margins, growth rates) are decimal percentages. 12.45 means 12.45%, not 0.1245.","machine_readable":"Every USD field in the OpenAPI spec carries x-unit=\"usd\", x-scale=1, x-display-unit=\"USD\"."},"coverage":{"universe":"US-listed equities on NYSE, NASDAQ, NYSE American, and OTC markets with sufficient filing history.","company_count":"Approximately 14,000 companies. See \/api\/coverage for live counts.","history":"Quarterly data from 2000 onward where available. Coverage density increases significantly post-2005.","minimum_history":"Companies require a minimum of 4 quarterly filings to appear in industry\/sector aggregates."},"update_frequency":{"description":"Data is updated on a rolling basis as SEC filings are processed.","filing_lag":"Typical lag between filing date and data availability is under 24 hours.","industry_sectors":"Industry and sector aggregates are recalculated daily after market close.","filing_lag_days":"The filing_lag_days field on company endpoints shows days between period end and SEC filing date."}}},{"section":"period_construction","title":"Period Construction: TTM, FY, Q","content":{"period_types":{"TTM":{"name":"Trailing Twelve Months","description":"Sum of the four most recent quarterly figures. For companies with non-December fiscal year ends, TTM always represents the true trailing 12-month window, not a calendar year.","formula":"TTM = Q_t + Q_t-1 + Q_t-2 + Q_t-3","ratios":"Margin ratios use TTM numerator and TTM denominator independently summed before division. Example: TTM operating margin = sum(operating_income, 4q) \/ sum(revenue, 4q). Never average of quarterly margins.","balance_sheet_items":"Balance sheet items (assets, debt, equity, cash) use the most recent quarter-end value, not a sum."},"FY":{"name":"Fiscal Year","description":"Full fiscal year as reported. Fiscal year end varies by company: not all companies have December fiscal year ends.","note":"FY figures are as reported in the 10-K. They are not adjusted to calendar year."},"Q":{"name":"Quarterly","description":"Single quarter as reported in the 10-Q or 10-K (for Q4). Q4 figures are derived as: FY total minus sum of Q1+Q2+Q3.","seasonality":"Sequential (QoQ) growth rates on Q period type reflect raw quarterly seasonality and are not seasonally adjusted."}},"yoy_growth":{"description":"Year-over-year growth compares the current period to the same period one year prior.","formula":"(Value_t - Value_t-4q) \/ |Value_t-4q|","sign_change":"When the prior period value is negative, the growth rate is computed using the absolute value of the denominator. The direction of change is preserved.","minimum_data":"YoY requires at least 5 quarters of history. Null when insufficient history."},"sequential_growth":{"description":"Sequential (quarter-over-quarter) growth compares the current quarter to the immediately preceding quarter.","formula":"(Value_t - Value_t-1q) \/ |Value_t-1q|","note":"Available on TTM and Q period types only. Not available on FY."},"cagr":{"formula_3y":"(Value_t \/ Value_t-12q)^(1\/3) - 1","formula_5y":"(Value_t \/ Value_t-20q)^(1\/5) - 1","note":"CAGR uses point-to-point values, not regression. Requires 13 quarters (3Y) or 21 quarters (5Y) of history. Null when insufficient.","sign_note":"CAGR is undefined when the base period value is negative. Returns null in these cases."}}},{"section":"classification_systems","title":"Classification Systems","content":{"systems":{"CSIMarket":{"description":"CSIMarket proprietary classification. 110 industries grouped into 13 sectors. Designed for financial analysis with groupings that reflect economic similarity rather than regulatory categorisation.","industries":110,"sectors":13,"default":true,"classification_type_value":"CSIMarket"},"SIC":{"description":"Standard Industrial Classification. US government system assigned at time of SEC registration. Companies retain their original SIC code unless they file an amendment.","authority":"SEC \/ US Department of Labor","classification_type_value":"SIC","note":"SIC codes can be outdated for companies that have pivoted their business model."},"NAICS":{"description":"North American Industry Classification System. Successor to SIC. More granular than SIC with coverage of modern industries.","authority":"US Census Bureau","classification_type_value":"NAICS"},"ISIC":{"description":"International Standard Industrial Classification. UN system used for international comparisons.","authority":"United Nations Statistics Division","classification_type_value":"ISIC"},"GICS":{"description":"Global Industry Classification Standard. Jointly developed by MSCI and S&P. Widely used by institutional investors.","authority":"MSCI \/ S&P Global","classification_type_value":"GICS","note":"GICS classification used for vs-industry comparison fields only (e.g. revenue_vs_gics). Not available as a classification_type query parameter."}},"query_parameter":{"name":"classification_type","default":"CSIMarket","values":["CSIMarket","SIC","NAICS"],"note":"Applies to industry and sector endpoints. Company endpoints always use CSIMarket for aggregation but include vs-industry comparisons across all five systems."}}},{"section":"aggregation_methodology","title":"Industry and Sector Aggregation","content":{"approach":{"description":"Industry and sector figures are weighted aggregates of constituent company figures. Revenue and income figures are summed. Margin ratios are computed from aggregated numerators and denominators, not averaged across companies.","margin_example":"Industry operating margin = SUM(operating_income, all companies) \/ SUM(revenue, all companies). Not MEAN(operating_margin, all companies).","rationale":"Weighted aggregation prevents small companies from distorting industry margins. A company with $1M revenue and 50% margin contributes less to the industry margin than a company with $10B revenue and 10% margin."},"matched_company_counts":{"description":"YoY and sequential growth rates are computed only over companies that have reported in both the current and prior period.","fields":["matched_company_count_yoy","matched_company_count_seq"],"note":"The matched count may be lower than company_count when some companies have not yet reported or have recently listed\/delisted."},"reporting_cycle":{"description":"Not all companies report simultaneously. The reporting_cycle_completion_ratio field indicates what fraction of industry companies have reported for the current period.","field":"reporting_cycle_completion_ratio","interpretation":"1.0 = all companies reported. 0.6 = 60% reported. Early-cycle figures (ratio < 0.7) should be treated as preliminary.","reported_count_field":"reported_company_count"},"minimum_coverage":{"description":"Industry aggregates require a minimum of 3 reporting companies. Industries with fewer than 3 reporters return null for aggregate metrics."}}},{"section":"statistical_methods","title":"Statistical Methods: Dispersion, Z-Scores, Volatility","content":{"dispersion_statistics":{"description":"Cross-sectional dispersion statistics describe the distribution of a metric across individual companies within an industry or sector for a given period.","fields":{"median":"Middle value of the distribution. More robust than mean for skewed distributions.","p10, p25":"10th and 25th percentile: lower tail of the distribution.","p75, p90":"75th and 90th percentile: upper tail of the distribution.","stddev":"Population standard deviation across constituent companies.","iqr":"Interquartile range (p75 - p25). Robust measure of spread.","mad":"Median absolute deviation. Robust to outliers.","cv":"Coefficient of variation (stddev \/ |mean|). Normalised dispersion.","skewness":"Third standardised moment. Positive = right tail. Negative = left tail.","kurtosis":"Fourth standardised moment minus 3 (excess kurtosis). 0 = normal distribution.","downside_stddev":"Standard deviation computed only over negative observations. Used in Sortino-style analysis.","spread":"p75 - p25 (alias for IQR in some fields). Quartile spread."},"outlier_handling":"Outliers are included in all dispersion statistics. No winsorisation is applied at the dispersion level. Outlier counts are provided separately (revenue_yoy_outlier_count, margin_outlier_count)."},"z_scores":{"description":"Z-scores measure how many standard deviations a current value is from the cross-sectional mean of its industry peers.","formula":"z = (value - industry_mean) \/ industry_stddev","interpretation":{"positive":"Above industry average","negative":"Below industry average",">2":"Significantly above average (top ~2.3%)","<-2":"Significantly below average (bottom ~2.3%)"},"note":"Z-scores use the current period cross-section. They are not time-series z-scores (which compare a value to its own history). Historical z-scores (e.g. pe_zscore_5y) are labelled with their lookback window."},"historical_z_scores":{"description":"Fields suffixed _zscore_5y compare a current value to the company or industry own 5-year historical distribution.","formula":"z = (current_value - 5y_mean) \/ 5y_stddev","examples":["pe_zscore_5y","ev_ebitda_zscore","fcf_yield_zscore_5y"],"note":"Requires 20 quarters of history. Null when insufficient."},"volatility":{"description":"Volatility fields measure the standard deviation of a growth rate or margin over a trailing window.","window_8q":"8-quarter (2-year) trailing standard deviation. Used for revenue_yoy_volatility_8q, operating_income_yoy_volatility_8q, net_income_yoy_volatility_8q.","window_5y":"5-year (20-quarter) trailing standard deviation. Used for earnings_volatility_5y, margin_volatility_5y, revenue_volatility_5y.","interpretation":"Higher volatility = less predictable. Used in quality scoring and risk assessment."},"trend_slope":{"description":"Trend slope fields (e.g. revenue_yoy_trend_slope_4q) are the coefficient from an OLS linear regression of the metric against time over the trailing window.","formula":"slope = OLS(metric ~ time_index) over trailing N quarters","interpretation":"Positive slope = accelerating trend. Negative = decelerating. Magnitude reflects rate of change per quarter."},"positive_ratios":{"description":"Positive ratio fields (e.g. revenue_yoy_positive_ratio_8q) measure the fraction of trailing periods where the metric was positive.","formula":"positive_ratio = COUNT(metric > 0) \/ total_periods","range":"0 to 1. 1.0 = positive every period. 0.5 = positive half the time.","interpretation":"Used as a consistency \/ persistence signal. Higher = more reliable growth."}}},{"section":"scoring_and_rankings","title":"Composite Scores and Percentile Rankings","content":{"percentile_rankings":{"description":"Percentile ranking fields (suffix _ranking_pct or _cross_industry_percentile) rank a value within its industry or sector peer group.","formula":"PERCENT_RANK() OVER (PARTITION BY industry ORDER BY metric)","range":"0 to 1. Higher = better ranked within peer group (except for cost\/debt metrics where lower is better).","peer_group":"Rankings are computed within CSIMarket industry classification. cross_industry_percentile uses the full industry universe.","fields":{"cross_industry_percentile":"Composite valuation percentile within industry","revenue_growth_percentile":"Revenue growth percentile within industry peers","margin_percentile":"Operating margin percentile within industry peers","roic_percentile":"ROIC percentile within industry peers","valuation_percentile":"Valuation attractiveness percentile (higher = cheaper)","quality_percentile":"Quality score percentile within industry peers","cashflow_percentile":"Cash flow quality percentile within industry peers"}},"composite_scores":{"composite_valuation_score":{"description":"Composite valuation attractiveness score. Lower = cheaper relative to peers and history.","range":"0 to 100","components":["pe_zscore_5y","ps_zscore_5y","pb_zscore_5y","ev_ebitda_zscore","fcf_yield_zscore_5y","cross_industry_percentile"],"method":"Weighted average of component z-scores and percentile ranks, normalised to 0-100."},"composite_factor_score":{"description":"Multi-factor composite combining quality, value, growth, and profitability signals.","range":"0 to 100","components":["quality_factor","value_factor","growth_factor","profitability_factor"],"method":"Equal-weighted average of normalised factor scores."},"growth_quality_score":{"description":"Industry-level score measuring whether growth is broad-based and consistent vs concentrated and volatile.","range":"0 to 100","components":["breadth_diffusion_index","revenue_consistency_score","earnings_persistence_score","revenue_yoy_volatility_8q"]},"composite_industry_score":{"description":"Overall industry health score combining growth quality, valuation, financial strength, and profitability signals.","range":"0 to 100","components":["growth_quality_score","composite_valuation_score","financial_strength_score","operating_margin"]}},"factor_scores":{"description":"Individual factor scores used in the composite factor score.","quality_factor":"Earnings stability + cashflow quality + accruals + balance sheet health.","value_factor":"P\/E, P\/B, EV\/EBITDA, FCF yield vs peers and history.","growth_factor":"Revenue and earnings growth rate and consistency.","profitability_factor":"Operating margin, ROE, ROIC vs peers.","size_factor":"Log market cap standardised vs industry.","leverage_factor":"Debt\/equity, net debt\/EBITDA, interest coverage vs peers."}}},{"section":"forensic_scores","title":"Forensic Scores: Piotroski, Beneish, Altman","content":{"piotroski_f_score":{"description":"Piotroski F-Score (Piotroski, 2000). Nine binary criteria assessing profitability, leverage\/liquidity, and operating efficiency.","range":"0 to 9. Higher = stronger financial position.","interpretation":{"8-9":"Strong: historically associated with positive returns","5-7":"Average","0-2":"Weak: historically associated with negative returns"},"criteria":{"f_roa":"ROA > 0","f_ocf":"Operating cash flow > 0","f_delta_roa":"ROA improving YoY","f_accruals":"Operating cash flow > net income (low accruals)","f_delta_leverage":"Long-term leverage decreasing YoY","f_delta_liquidity":"Current ratio improving YoY","f_no_dilution":"No new share issuance","f_delta_gross_margin":"Gross margin improving YoY","f_delta_asset_turnover":"Asset turnover improving YoY"},"data_requirement":"Requires two years of financial history. piotroski_data_complete = false when any criterion cannot be calculated."},"beneish_m_score":{"description":"Beneish M-Score (Beneish, 1999). Probabilistic model for detecting earnings manipulation.","range":"Continuous. Threshold: > -1.78 suggests possible manipulation.","interpretation":{"> -1.78":"Possible earnings manipulation: warrants further investigation","< -1.78":"Less likely to be manipulating earnings"},"note":"M-Score is a probabilistic signal, not a definitive fraud indicator. False positive rate is meaningful.","components":["DSRI","GMI","AQI","SGI","DEPI","SGAI","LVGI","TATA"]},"altman_z_score":{"description":"Altman Z-Score (Altman, 1968). Bankruptcy prediction model for publicly traded manufacturing companies.","formula":"1.2*X1 + 1.4*X2 + 3.3*X3 + 0.6*X4 + 1.0*X5","variables":{"X1":"Working capital \/ total assets","X2":"Retained earnings \/ total assets","X3":"EBIT \/ total assets","X4":"Market cap \/ total liabilities","X5":"Revenue \/ total assets"},"interpretation":{"> 2.99":"Safe zone","1.81 - 2.99":"Grey zone","< 1.81":"Distress zone"},"note":"Originally calibrated for manufacturing companies. Interpretation varies for financial, service, and technology firms."}}},{"section":"vs_industry_comparisons","title":"vs-Industry Comparison Fields","content":{"description":"Fields suffixed _vs_industry, _vs_naics, _vs_sic, _vs_isic, _vs_gics compare a company metric to its industry aggregate under each classification system.","formula":"vs_industry = company_metric - industry_aggregate_metric","example":"operating_margin_vs_industry = company operating_margin - industry operating_margin (weighted aggregate)","sign":{"positive":"Company is above its industry benchmark","negative":"Company is below its industry benchmark"},"classification_benchmarks":{"_vs_industry":"CSIMarket proprietary industry classification","_vs_naics":"NAICS industry classification","_vs_sic":"SIC industry classification","_vs_isic":"ISIC industry classification","_vs_gics":"GICS industry classification"},"available_metrics":{"Growth":["revenue_yoy"],"Margins":["operating_margin","gross_margin","net_margin","fcf_margin"],"Returns":["roa","roe","roic"],"Leverage":["debt_to_equity","interest_coverage"],"Valuation":["pe","ps","pb","ev_ebitda"]},"null_handling":"Returns null when the industry aggregate cannot be computed (fewer than 3 reporting companies under that classification system)."}},{"section":"data_quality","title":"Data Quality and Integrity","content":{"data_completeness_score":{"description":"Score from 0\u2013100 indicating what fraction of expected fields are populated for a given company and period.","formula":"populated_fields \/ expected_fields * 100","interpretation":"Scores below 70 indicate significant missing data. Use with caution for modelling."},"source_quality_flag":{"description":"Integer flag indicating data source quality.","values":["Unverified: parsed from filing, not cross-referenced","Cross-referenced: validated against at least one secondary source","Audited: sourced from audited annual filing (10-K)"]},"restatement_flag":{"description":"Boolean. True when this period has been restated since the original filing.","note":"Restated figures are automatically used when available. The flag allows clients to identify periods that have changed from their original reported values."},"accrual_ratio":{"description":"Accruals-based earnings quality measure (Sloan, 1996).","formula":"(Net income - Operating cash flow) \/ Average net assets","interpretation":"Higher accrual ratio = lower earnings quality. Negative = cash earnings exceed accounting earnings (higher quality)."},"null_policy":{"description":"Fields are never omitted from responses. When data is unavailable, fields return null.","causes":["Insufficient history for calculation (e.g. CAGR requires 13+ quarters)","Division by zero (e.g. growth rate when prior period is zero)","Company type not applicable (e.g. inventory turnover for banks)","Filing not yet processed"]}}},{"section":"known_limitations","title":"Known Limitations and Caveats","content":{"survivorship_bias":{"description":"The company universe includes delisted companies in historical data. Companies that went bankrupt, were acquired, or were delisted remain in the historical industry aggregates for periods when they were active.","note":"Industry aggregates for recent periods may include fewer companies than historical periods due to delistings. The company_count and reported_company_count fields reflect the active universe at each point in time."},"financial_companies":{"description":"Standard financial ratios (current ratio, inventory turnover, etc.) are not meaningful for banks and insurance companies. These companies use alternative schemas for income statement presentation.","affected_fields":["current_ratio","quick_ratio","inventory_turnover_cogs","days_inventory_outstanding","working_capital"],"detection":"Company schema type is detectable via the income statement endpoint which branches into bank, insurance, and normal schemas."},"altman_z_score_applicability":{"description":"The Altman Z-Score was calibrated on manufacturing companies. It is less reliable for financial services, utilities, technology, and other non-manufacturing sectors."},"roic_financial_sector":{"description":"return_on_invested_capital_stddev for the Financial sector contains extreme outlier values due to the nature of financial leverage. Cross-sector comparisons of ROIC volatility should exclude or separately analyse financial companies."},"total_market_cap_financial":{"description":"total_market_cap returns null for the Financial sector aggregate due to data availability constraints in the underlying tables."},"non_gaap_figures":{"description":"All figures are GAAP as-reported. Non-GAAP adjusted figures (adjusted EBITDA, adjusted EPS, etc.) are not included."},"foreign_private_issuers":{"description":"Foreign private issuers filing on Form 20-F are included where available but coverage is less complete than domestic filers."},"penny_stocks_and_shells":{"description":"Shell companies and entities with minimal operations are included in the universe but may distort industry statistics for small industries. The data_completeness_score field is typically low for these entities."}}}]}