devlog · · 3 min read

Similar concepts: one row, still as reported

Why a line a company filed under a different accounting concept over the years stays on a single row, and why it is still as reported.

What is an accounting concept?

In an annual report filed with the SEC, every line of the financial statements has several attributes. Two of them matter here: its label and its accounting concept.

The label is the text you read in the table, such as “Net sales”. It is written for people, and the company words it as it likes.

The accounting concept is written for software. Filings come in a format called XBRL, where each line is tagged with a concept that tells a computer what it is. Most concepts come from US GAAP, the official dictionary shared by all US companies, and start with us-gaap_, such as us-gaap_SalesRevenueNet. When none of them fits, a company can create its own, prefixed with its own name: NVIDIA, for example, files some lines under concepts starting with nvda_, which no other company uses.

Take Apple’s revenue. In every annual report since 2009, the line reads the same: “Net sales”. But behind that label, Apple filed it under three different concepts over the years:

Concept 1 of 3 us-gaap_SalesRevenueNet 2009 → 2017 · $ in millions
Fiscal year2009…201020112012…201520162017
Net sales36,537…65,225108,249156,508…233,715215,639229,234
Concept 2 of 3 us-gaap_Revenues 2018 only · $ in millions
Fiscal year2018
Net sales265,595
Concept 3 of 3 us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax 2019 → 2025 · $ in millions
Fiscal year2019…202020212022202320242025
Net sales260,174…274,515365,817394,328383,285391,035416,161

So what would a unified table of Apple’s revenue since 2009 look like, the kind Before Invest builds?

Three rows, or one

Here is Apple’s unified revenue table since 2009:

Without grouping · 3 rows One row per concept $ in millions
Fiscal year…20092010…201720182019…2025
Net sales…36,53765,225…229,234––…–
Net sales…––…–265,595–…–
Net sales…––…––260,174…416,161

All the numbers are there, and they are all correct, but Apple’s revenue is now spread over three rows. A fundamental analysis based on this table would be tedious at best: you can’t get a sense of how revenue has evolved at a glance, and you can’t chart it. Left as they are, these three rows lose much of their value.

The same problem comes up in every company.

To solve it, we built into our engine a system that spots these similar concepts, company by company and year after year, in order to bring them together on a single row:

On Before Invest · 1 row The same values, on a single row $ in millions
Fiscal year…20092010…201720182019…2025
Net sales…36,53765,225…229,234265,595260,174…416,161
  • us-gaap_SalesRevenueNet
  • us-gaap_Revenues
  • us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax

This is the only change Before Invest makes to the statements companies file with the SEC, and it touches no data: every value is still the one Apple filed for that year, which is why the table is still as reported. We chose to bring these rows together wherever possible, so that tables going back to 2010 stay readable and support a complete, consistent fundamental analysis.

Finding them is the hard part

Adding or removing one of these groupings is easy. We built the engine so that a pair of concepts can be added or removed in a moment, and every table on the site is rebuilt instantly to match, with nothing to redo by hand.

Finding them is another story. Most of these pairs are specific to a single company, and many involve concepts the company created itself, like NVIDIA’s nvda_ ones. They have to be identified one by one, company by company and statement by statement.

It is careful work, and it is almost certainly imperfect. Some similar concepts have surely not been found yet, and the engine will keep being refined to find as many as possible. If, during your own analysis, you come across two rows that are obviously the same line, you can tell us with the “Report a bug” button on any company page. And if you ever see two rows grouped together that you think should not be, you can report it the same way.

Vincent Lagache · Founder