How SEC Filers Actually Report Cost of Revenue in XBRL — And Why Standard Extraction Misses $229 Billion
Our analysis of 2,100+ SEC filers reveals that cost of revenue reporting in XBRL is even more fragmented than revenue. Only 38% of filers use the most common element (CostOfGoodsAndServicesSold), 36% have no standard COGS element at all, and ExxonMobil's $199.5 billion in crude oil purchases is invisible to standard extraction — producing a misleading 100% gross margin.
How SEC Filers Actually Report Cost of Revenue in XBRL — And Why Standard Extraction Misses $229 Billion
Published: February 7, 2026 Data Currency: SEC XBRL filings processed through February 2026. Dataset covers 2,100+ companies across NYSE, Nasdaq, and OTC markets. The full SEC XBRL filing universe is larger (~10,000+ active filers per the SEC company tickers exchange registry).
Key Findings
We analyzed XBRL financial facts across 2,100+ SEC filers from FY 2019 through FY 2025. Cost of revenue reporting is even more fragmented than revenue:
- ExxonMobil's $199.5 billion in crude oil purchases is invisible to standard COGS extraction, producing a calculated 100% gross margin on $349.6B in revenue
- 36% of filers have no standard COGS element at all — three times the revenue orphan rate
- Only 38% use the most common element (
CostOfGoodsAndServicesSold) — vs 46% for revenue - Software is split 50/50 between
CostOfGoodsAndServicesSold(90) andCostOfRevenue(108) — the only sector with no dominant element - Platform companies (D&A-excluding element) grew 133% since 2019 — the fastest-growing COGS category
- No convergence trend — unlike revenue (ASC 606 migration), COGS elements will coexist permanently
The $199.5 Billion COGS Problem
ExxonMobil is the world's largest publicly traded oil company. In FY 2024, it reported $349.6 billion in revenue. Its actual gross margin is approximately 42.9% — a reasonable figure for an integrated energy company that buys, refines, and sells crude oil and petroleum products.
But if you extract cost of revenue from ExxonMobil's XBRL filing using the standard elements — CostOfGoodsAndServicesSold, CostOfRevenue, or any of the other common COGS concepts — you get nothing. Zero. Null. A calculated gross margin of 100% for a company that spent $199.5 billion purchasing crude oil and refined products.
ExxonMobil reports its cost of revenue using CrudeOilAndProductPurchases, a company extension XBRL element that does not appear in the standard US-GAAP taxonomy. No standard COGS extraction — however many elements it checks — will find this value.
The revenue fragmentation we documented in our XBRL revenue analysis — where 11% of filers have no standard revenue element — turns out to be the mild case. Across 2,178 companies in our dataset, only 38% use the most common COGS element, and 36% have no standard COGS element at all.
How Companies Report Cost of Revenue
Across our dataset of 2,178 filers, we identified eight distinct COGS elements in active use:
| XBRL Element | Companies | Share | Common Filer Profile |
|---|---|---|---|
CostOfGoodsAndServicesSold | 831 | 38.2% | Manufacturing, retail, consumer goods, industrials |
CostOfRevenue | 399 | 18.3% | Technology, SaaS, digital services, media |
CostOfGoodsAndServiceExcludingDepreciationDepletionAndAmortization | 126 | 5.8% | Platform and marketplace companies |
InformationTechnologyAndDataProcessing | 65 | 3.0% | Banks, financial data companies |
DirectCostsOfLeasedAndRentedPropertyOrEquipment | 23 | 1.1% | REITs, property management |
CostOfSales | 16 | 0.7% | IFRS filers (20-F), some consumer staples |
CloudServicesAndLicenseSupportExpenses | 1 | <0.1% | Oracle (unique element) |
CostOfGoodsSold | 1 | <0.1% | Single filer variant |
| No standard COGS element | 775 | 35.6% | Banks, insurance, oil & gas extensions, asset managers |
The top two elements cover 56.5% of filers — compared to roughly 85% for revenue's top two elements. Even checking all eight standard elements leaves 775 companies (35.6%) without a COGS value.
Unlike revenue — where the ASC 606 transition explains much of the fragmentation — COGS element selection is driven almost entirely by industry. The element a company uses for cost of revenue is a direct signal of its business model:
| Sector | CostOfGoodsAndServicesSold | CostOfRevenue | ExclDDA | Other | No Standard COGS |
|---|---|---|---|---|---|
| Petroleum Refining | 25 | 2 | 1 | — | — |
| Semiconductors | 29 | 20 | — | — | — |
| Software | 90 | 108 | 12 | — | — |
| Commercial Banks | — | — | — | 65 | Many |
| Investment Vehicles | — | — | — | 23 | Many |
Manufacturing and retail converge on CostOfGoodsAndServicesSold. Petroleum refiners (Chevron, ConocoPhillips, Marathon Petroleum, Valero), semiconductor manufacturers, and consumer goods companies all use this element. Banks report through InformationTechnologyAndDataProcessing (65 companies) — technology infrastructure costs, not cost of goods sold. REITs use DirectCostsOfLeasedAndRentedPropertyOrEquipment (23 companies).
The software industry is the most analytically interesting case. It is the only major sector where element choice is evenly split: 90 companies use CostOfGoodsAndServicesSold and 108 use CostOfRevenue. This split does not cleanly map to legacy-vs-SaaS. Companies with nearly identical business models — cloud infrastructure, subscription software — chose different COGS elements during initial XBRL adoption and never changed. In every other sector, the COGS element reliably predicts business model. In software, the element became a filing preparation artifact rather than a business model signal, making sector-level COGS analysis unreliable unless you account for both elements.
We also found 71 companies that report two distinct COGS elements simultaneously, creating the same deduplication challenge we documented for dual revenue reporting.
The Gross Margin Distortion: Three Failure Modes
When COGS extraction fails, the downstream error is a distorted gross margin. We identified three distinct failure modes, each caused by a different type of element fragmentation:
| Company | Revenue | Standard COGS Extraction | Actual Cost of Revenue | Calculated GM (Standard) | Actual GM |
|---|---|---|---|---|---|
| ExxonMobil (XOM) | $349.6B | null | $199.5B (CrudeOilAndProductPurchases) | 100.0% | 42.9% |
| Uber (UBER) | $44.0B | null | $26.7B (ExclDDA element) | 100.0% | 39.3% |
| Oracle (ORCL) | $57.4B | null | $11.6B (CloudServicesAndLicenseSupportExpenses) | 100.0% | 79.8% |
In each case, the company reports cost of revenue in its SEC filing — the information exists in the XBRL data. But the element used falls outside standard extraction, producing a null COGS value and a confidently wrong gross margin.
ExxonMobil: The Company Extension Problem
ExxonMobil's CrudeOilAndProductPurchases is a company extension element — it does not exist in the US-GAAP taxonomy. No amount of adding standard taxonomy elements to an extraction system will find it.
What makes this case analytically significant is the inconsistency within the same industry:
| Company | Revenue | COGS Element Used | COGS Value | Gross Margin |
|---|---|---|---|---|
| ExxonMobil (XOM) | $349.6B | CrudeOilAndProductPurchases | $199.5B | 42.9% |
| Chevron (CVX) | $202.8B | CostOfGoodsAndServicesSold | $119.2B | 41.2% |
| ConocoPhillips (COP) | $54.7B | CostOfGoodsAndServicesSold | $20.0B | 63.4% |
Chevron and ConocoPhillips use the standard CostOfGoodsAndServicesSold element — standard extraction works perfectly for them. Within the same SIC code, the largest company by revenue is the one that requires company-specific handling.
Uber: D&A Separation as Economic Signal
Uber uses CostOfGoodsAndServiceExcludingDepreciationDepletionAndAmortization, reporting $26.7 billion for FY 2024. This element reports cost of revenue with depreciation, depletion, and amortization stripped out as separate line items.
| Metric | Value |
|---|---|
Revenue (Revenues) | $44.0B |
COGS excl. D&A (CostOfGoodsAndServiceExcludingDepreciationDepletionAndAmortization) | $26.7B |
| Implied gross margin (excl. D&A) | 39.3% |
The growth in this element — from 54 companies in FY 2019 to 126 in FY 2025 (133%) — is not an XBRL taxonomy curiosity. It tracks the structural shift toward asset-light platform businesses where the majority of depreciation comes from acquired intangible assets, not operational infrastructure. The fastest-growing COGS element maps to the fastest-growing business model in the economy. The XBRL taxonomy is recording an economic transformation.
The separation also changes what "gross margin" measures. A platform company's gross margin excluding D&A measures marketplace efficiency. Including D&A from acquisitions and capitalized software produces a fundamentally different margin profile. When comparing gross margins across companies, the COGS element used determines what you're actually measuring.
Oracle: The Long-Tail Taxonomy
Oracle uses CloudServicesAndLicenseSupportExpenses — a company extension element used by exactly one filer in our entire dataset — to report $11.6 billion in cost of revenue for FY 2025 (79.8% gross margin). While most element fragmentation follows industry patterns, Oracle's case illustrates the long tail: purely company-specific elements that no taxonomy documentation will prepare you for. The long tail of company extension elements means comprehensive COGS extraction requires an arbitrarily growing element list — or a fundamentally different approach to XBRL data extraction.
775 COGS Orphans: When Cost of Goods Sold Doesn't Exist
The 775 companies (35.6%) that we classify as "COGS orphans" — filers with no standard COGS element in their consolidated financial facts — are not data gaps. They reflect industries where the concept of "cost of goods sold" is structurally inapplicable.
When we examined what these companies report instead, the alternatives reveal how each industry's dominant cost maps to a fundamentally different XBRL concept:
| What COGS Orphans Report Instead | Typical Filer | Conceptual Mapping to COGS |
|---|---|---|
InterestExpense | Banks | Cost of acquiring lendable funds — the functional equivalent of COGS for a lending business. A bank "buys" deposits (at the deposit rate) and "sells" loans (at the lending rate). Interest expense is the cost of its raw material. |
PolicyholderBenefitsAndClaimsIncurredNet | Insurance carriers | Direct cost of delivering the insurance product. When a policyholder files a claim, the payout is functionally identical to COGS — it is the cost incurred to fulfill the sold contract. The US-GAAP taxonomy treats this as a separate concept entirely. |
CrudeOilAndProductPurchases | Integrated oil (XOM) | Literal cost of goods purchased, tagged with an industry-specific extension element rather than the generic CostOfGoodsAndServicesSold |
ProvisionForLoanLeaseAndCreditLosses | Banks | Cost of credit risk — the "warranty expense" equivalent for lending. Loans that default are the bank's analog to defective products. |
The COGS orphan rate (35.6%) is more than three times the 11% revenue orphan rate we documented in our revenue fragmentation research.
Why COGS Fragmentation Won't Converge
Revenue fragmentation is partly transitional — ASC 606 introduced new elements that will eventually dominate. COGS fragmentation is permanent. It reflects structural differences in how industries incur costs, and no accounting standard can unify them.
The growth data confirms this. All major COGS elements grew in parallel from FY 2019 to FY 2025, with no sign of convergence:
| Element | FY 2019 | FY 2020 | FY 2021 | FY 2022 | FY 2023 | FY 2024 | FY 2025 |
|---|---|---|---|---|---|---|---|
CostOfGoodsAndServicesSold | 453 | 489 | 536 | 575 | 620 | 808 | 831 |
CostOfRevenue | 219 | 235 | 251 | 269 | 287 | 382 | 399 |
ExclDDA | 54 | 60 | 64 | 73 | 77 | 122 | 126 |
InformationTechnologyAndDataProcessing | — | — | — | — | — | 85 | 65 |
DirectCosts (REIT) | — | — | — | — | — | 35 | 23 |
CostOfSales | — | — | — | — | — | 16 | 16 |
All three major elements grew in parallel, with the D&A-excluding variant growing fastest (133%). The US-GAAP taxonomy has always offered multiple COGS concepts, and industry conventions — not accounting standard transitions — determine which one a company uses.
The structural comparison to revenue fragmentation quantifies the difference:
| Dimension | Revenue | COGS |
|---|---|---|
| Most common element coverage | 46% (ASC 606) | 38% (CostOfGoodsAndServicesSold) |
| Top 2 elements combined | ~85% | 56.5% |
| "Orphan" rate (no standard element) | 11% | 35.6% |
| Driven by accounting standard transition? | Partially (ASC 606) | No — always fragmented |
| Industry-specific elements? | Mostly banks | Banks, oil & gas, REITs, insurance, platforms |
| Company extension elements? | Rare | ExxonMobil, Oracle, others |
| Convergence trend? | Slow (ASC 606 adoption) | None |
For revenue, checking three elements (ASC 606, legacy Revenues, and RevenuesNetOfInterestExpense) covers roughly 89% of filers. For COGS, checking three elements covers only 62%.
Methodology and Dataset
Data Source: SEC EDGAR XBRL filings (10-K, 10-Q, 10-K/A, 10-Q/A, 20-F), processed by MetricDuck.
Dataset: Approximately 2,100 companies with processed XBRL financial facts, covering fiscal years 2019 through 2025. This represents a cross-section of NYSE, Nasdaq, and OTC-listed companies. The full SEC XBRL filing universe is larger — approximately 10,000+ active filers per the SEC company tickers exchange registry.
Filtering criteria:
- Consolidated facts only (
dimension_count = 0) — excludes segment-level and dimensional breakdown data - Duration-type facts for income statement items (revenue, COGS)
- Fiscal year periods (start_date to end_date spanning 300+ days) for annual comparisons
- Most recent fiscal year for company-level element assignment
COGS orphan definition: A company is classified as a "COGS orphan" if it has processed XBRL facts in our dataset but no standard COGS element (CostOfGoodsAndServicesSold, CostOfRevenue, CostOfGoodsAndServiceExcludingDepreciationDepletionAndAmortization, CostOfSales, CostOfGoodsSold, InformationTechnologyAndDataProcessing, DirectCostsOfLeasedAndRentedPropertyOrEquipment, or CloudServicesAndLicenseSupportExpenses) appears in its consolidated duration facts.
Dollar amounts: Revenue and COGS figures cited for individual companies are extracted from their most recent annual XBRL filing (FY 2024 for calendar-year filers, FY 2025 for June fiscal-year filers like Oracle). Values may differ from press releases due to element selection, rounding, or restatements.
Limitations: Our dataset does not cover the full SEC filing universe. Company counts and percentages reflect our processed dataset and may not be representative of all ~10,000 SEC filers. We continue to expand coverage.
Explore the Data
The financial data analyzed in this research powers MetricDuck's company analysis platform. Explore earnings, ROIC, and filing intelligence for individual companies:
- ExxonMobil (XOM) Earnings | Filing Intelligence
- Uber (UBER) Earnings | Filing Intelligence
- Oracle (ORCL) Earnings | Filing Intelligence
- Chevron (CVX) Earnings | Filing Intelligence
- ConocoPhillips (COP) Earnings | Filing Intelligence
Related Research:
- How 2,100+ SEC Filers Actually Report Revenue in XBRL — Our companion research on revenue element fragmentation
- Earnings Quality: The Complete Framework — How gross margin fits into earnings quality assessment
- Depreciation Divergence: Amazon's Earnings Quality — How D&A treatment affects earnings analysis
- Oracle Cash Flow Paradox: AI Infrastructure Analysis — Oracle's unique cost structure in context
- Uber & Lyft: Earnings Quality and FCF Turnaround — Platform company cost structure analysis
- E&P ROIC Rankings: Devon, COP vs ExxonMobil — Oil sector cost and return analysis
- Refiner ROIC Illusion: PSX, VLO, MPC — Refiner cost structure and accounting
Disclaimer
This analysis is for educational and informational purposes only. It does not constitute investment advice, and you should not rely on it as such.
Important considerations:
- This is a research analysis of XBRL data patterns, not a recommendation to buy or sell any security
- Company revenue and cost figures cited are extracted from SEC XBRL filings and may differ from figures reported in press releases or other sources due to rounding, restatements, or element selection
- Our dataset covers approximately 2,100 companies and does not represent the full SEC filing universe
- Data is sourced from SEC filings, which may contain errors or be subject to restatement
- Always verify financial data against original SEC filings on EDGAR
Conflict of Interest Disclosure: MetricDuck provides financial analysis tools that process SEC XBRL filings. This research demonstrates our data capabilities and domain expertise.
MetricDuck Research
SEC filing analysis and XBRL data extraction for fundamental investors