Every figure comes from Financial Modeling Prep, fetched by a Cloudflare edge function that lives in sankey.it's DATA project (the same infrastructure heatmapfinance.com's own products read from) and stored as the company's actual reported income statement - never an analyst estimate, never a forecast.
The curated universe (see Companies) is refreshed nightly at 07:30 UTC, most-stale-first, paced against Financial Modeling Prep so a burst of calls never trips a rate limit. A company outside the curated universe is generated the first time someone looks it up, then kept current the same way. A quarterly filing is considered due for a refresh once its newest statement is at least 85 days old, and an annual filing once it is at least 330 days old - a new filing cannot exist any sooner than that, so the nightly job skips the pairs it already knows are not due.
Margins (gross, operating, net) and year-over-year deltas are computed here, from the real reported figures, through one shared, guarded ratio function - a missing or negative denominator renders n/a, never a confident wrong percentage. Tax is never computed: the tax figure a diagram shows is always the company's own reported tax expense, exactly as filed, never an estimated or effective rate sankey.it calculates on its own.
A company's newest statement is treated as stale once a quarterly filing passes 110 days old or an annual filing passes 400 days old - long enough past the typical filing lag that a newer report has almost certainly been made public. A stale cache hit becomes a refresh instead of a free hit, and the nightly job works through the most-stale companies first.
A number that cannot be computed honestly - a missing figure, a zero or negative denominator, a margin outside any plausible range for a real business - renders n/a. It is never coerced to zero and never shown as a bare dash standing in for zero: a missing number and a reported zero are two different facts, and conflating them is exactly the kind of confidently wrong number this rule exists to prevent.
See every Learn guide in one place, the changelog for every shipped change, or how to read a Sankey for what the diagram itself means.