Where the numbers come from

Where the numbers come from

A figure is only as current as the period it describes. So the period travels with it — and when the period gets old, the claims stop rather than soften.

A number on a financial page carries no visible history. It does not say who produced it, which months it covers, or whether anything has checked it. Every figure looks equally current, because screens render a two-year-old figure and a two-week-old one in the same typeface.

CompanyGraph cannot fix the underlying reporting cycle: companies file when they file, and the data reaches us afterwards. What it can do is stop presenting an old figure as though it were a present-tense fact. This page describes where the numbers come from, what the dates on a page mean, and what the product declines to say once the figures fall behind.

Two kinds of content sit on the same page

A stock page mixes material with two different origins, and they are not equally trustworthy in the same way.

Imported. The financial statements, the share price history, the exchange and listing details, the company description. CompanyGraph does not collect filings itself. These arrive from external market-data providers, and their accuracy is ultimately the reporting company's and the provider's, not ours. We check what we can and refuse what fails those checks, which is a different thing from producing the figures.

Written here. The observation definitions, the interpretations, the industry and coordination descriptions, the glossary, the articles, and every sentence of method. These are CompanyGraph's own work, and the responsibility for them is entirely ours.

The distinction matters when something is wrong. A wrong figure and a wrong sentence about a correct figure are different failures with different owners, and the corrections record keeps them apart deliberately.

“As of” means the period, not the download

Under the header of a stock page there is a line like Financials as of FY2025. That date is the fiscal period the newest statement covers — not the day we fetched it.

The distinction is the whole point. An import that ran this morning can only ever deliver the most recent period a company has actually filed. A page refreshed today can still be describing a year that ended eighteen months ago, and a freshness measure based on import time would call that page current. It is not current; it is freshly downloaded. So the age of a figure here is always measured from the period it describes.

When the filings fall behind

A company normally files its next annual report within about eighteen months of the previous period ending. Past that point, the reasonable assumption is that a newer filing exists and we do not have it.

At eighteen months the page changes in two visible ways. The header gains the words latest on file, so the date reads as the newest we hold rather than the newest that exists. And the product stops making present-tense structural claims about that company: its peer positions, its financial-health readings, and its structural tensions all go quiet.

They go quiet rather than being marked uncertain, because the problem is not confidence — it is tense. A sentence like return on equity is higher than 95% of its industry peers compares this company against peer figures that have moved on since. The sentence would be describing a company that no longer exists in the data, using the present tense, on a page whose own header says the numbers are a filing behind. A hedge does not repair that; only silence does.

The accepted cost is that these pages show less. A company we cannot currently describe gets a quieter page, not a softer version of the same claims. We would rather a reader find nothing on a question than find an answer built on figures we have already told them are behind.

Statements that are merely annual-old are not dated in this sense. Most annual figures spend most of the year being the newest that exists, and that is the normal condition of financial reporting rather than a defect.

When the three statements disagree about the year

An income statement, a balance sheet and a cash-flow statement do not always arrive together. A company's balance sheet can sit a year behind its income statement in the data we hold.

Where that happens, the page says so instead of naming one year for all three, because no single year describes it. And any figure that combines two statements — a ratio with revenue on top and total assets underneath, say — is computed from the most recent fiscal year the statements it needs actually share. Where they share none, the figure is not produced. Dividing one year by another produces a number that looks ordinary and means nothing, and that is the specific mistake this rule exists to prevent.

When a figure never arrives, or is refused

Some gaps are the provider's coverage rather than the company's reporting. For several exchanges our provider supplies company financials but no share-price history at all, so those companies have full statements and no price chart. That is a coverage boundary, not a company without a share price.

Other gaps are our own refusals. A fiscal year whose figures are not internally coherent — where the statements cannot all be describing the same company in the same units — is withheld rather than published, and the whole filing goes rather than the single line that looks wrong, because that kind of fault travels across all three statements together. Where CompanyGraph shows the statements in full, a withheld year is named along with the check that refused it, so a year we declined to publish is distinguishable from a year that was never reported.

That distinction is the general rule underneath all of this: an absence should say which kind of absence it is. Nothing reported, nothing supplied, and nothing we were willing to publish are three different facts, and a blank that could be any of them tells a reader nothing.

What being current does not mean

Freshness and correctness are separate questions, and this page only answers the first one.

A figure filed last quarter can still be wrong — mis-scaled by the provider, reported on a basis that differs from its neighbours, or correct in itself and misleading in the sentence built around it. Recency says nothing about any of that. What has actually been checked, and how far each check reaches, is a different record: the trust ledger lists every observation the product runs and which check has confirmed it, including the ones nothing has confirmed yet. The stages a number crosses before it becomes a claim are described separately again.

None of this makes the imported data ours, and none of it makes an old figure current. It makes the age visible, and it stops the product from speaking in the present tense about a past it can already see.