← comparisons

An Alpha Vantage Alternative for Point-in-Time Fundamentals

Alpha Vantage serves annual and quarterly income statements, balance sheets, and cash flow statements as three separate functions on one /query REST endpoint, with a free tier. If you want an alternative because you need point-in-time data, this page explains the one structural difference that matters — then spends more space on where Alpha Vantage is the right call and Tradevo Data is not.

The distinction: a filing-date field is not point-in-time

The phrase "point-in-time" gets applied loosely. The test is not whether a dataset has dates on it; it is whether the dataset can hold two different values for the same fiscal period — the number as originally filed, and the number as it reads today — and tell you which is which. A dataset that stores one mutable value per period with a date beside it fails that test while looking like it passes: the date describes the original filing, but the number beside it may have been revised years later. Joining on it gives you a query that looks lookahead-safe while returning a figure nobody could have seen on the date you asked about.

Alpha Vantage's statement endpoints do not have this problem in a subtle form — they carry no filing date at all. We pulled IBM's three statements on their demo key: every object in annualReports and quarterlyReports is keyed on fiscalDateEnding, alongside reportedCurrency and the line items. No acceptance date, no accession number, no version field — one record per fiscal period, so the schema has nowhere to hold an original and a restated figure at once.

We also searched their documentation for "point-in-time", "as originally reported", "restated", "filing date", and "accession". None of those terms appear: Alpha Vantage neither claims point-in-time support nor disclaims it. An observation about their docs, not an accusation.

We did observe one thing directly in their data, on their own demo ticker: IBM's annual totalRevenue reads FY2018 $79.59B, FY2019 $57.71B, FY2020 $73.62B, FY2021 $57.35B — down $21.9B, up $15.9B, down $16.3B, so $16–22B a step. That cannot come from one consistent accounting basis. Our reading is a post-spinoff continuing-operations basis in some years and the original basis in others, but the cause is our inference; only the inconsistency is observable. This is one series on one ticker, and IBM is their documentation's example symbol — an observed instance, not a measured defect rate across their universe.

The consequence is narrower than "they only serve restated numbers": the vintage of any given value is unlabelled and, in at least one case, inconsistent between adjacent years in one series.

What Tradevo Data does instead

We store 313,137 point-in-time rows across 5,195 US companies, with 18,712 restatements explicitly labelled. Every row carries first_filed (when the figure became public), original_value, latest_value, a restated flag, and a per-row qa_status. You pass as_of; the join happens server-side, so your backtest reads the tape as it stood.

7 concepts: Revenue, NetIncome, OperatingCashFlow, EPSDiluted, DilutedShares, Assets, StockholdersEquity. Up to 12 fiscal years. Annual 10-K and 10-K/A only. $49/month flat, instant self-serve key, 5,000 requests per day, cancel anytime.

What the two-value structure catches:

Free CC0 sample: 40 large caps, 3,280 rows, no signup, at github.com/christianpichichero-max/pit-fundamentals. Check the structure against your needs before paying anyone.

When Alpha Vantage is the better choice

Most of the time, honestly.

You need anything we do not have. We publish no prices or OHLCV, no quarterly data, no non-US companies, no real-time anything, no delisted-company history, no ratios, no estimates, no news, no options. Their documentation covers equities, FX, crypto, commodities, economic indicators, 53 technical-indicator functions, ETF profiles, insider transactions, and institutional holdings. If your project needs two of those alongside fundamentals, one vendor beats two.

You need quarterly statements. We have none. Their statement endpoints return quarterly reports as well as annual ones — for IBM, 81 quarterly periods against 20 annual.

You need many line items. We serve 7 concepts. On IBM, their annual income statement objects carry 26 fields, balance sheet 38, cash flow 30, normalized against GAAP and IFRS taxonomies. If you want gross profit, interest expense, inventory, or capex, we simply do not have them.

You need longer history than 12 years. For IBM, their statements went back 20 annual periods and their EARNINGS annual series to 1996. We measured that on one ticker — their own demo symbol, so possibly their best-maintained record — and they publish no stated minimum, so verify for the names you care about. If you want the 2008 crisis in your sample, we are the wrong shop.

You are doing EPS event studies. The quarterlyEarnings array of their EARNINGS endpoint carries reportedDate and reportTime (pre- or post-market) alongside reported and estimated EPS. That is a real announcement-date field on a genuinely deep series, and for EPS-driven event work it is lookahead-safe in a way most vendors' statement data is not. Note the scope: annualEarnings carries only fiscalDateEnding and reportedEPS, no announcement date at all — and it is an announcement date, not an SEC filing date. Still the right tool for the job.

You need survivorship handling for the universe. Their LISTING_STATUS endpoint is explicitly documented for asset-lifecycle and survivorship work, with ipoDate and delistingDate per symbol and a date parameter for the historical universe. We ran their documented example — state=delisted&date=2014-07-10 — and it returned 425 delisted symbols dated 1997-04-01 to 2014-07-09, not one after the as-of date: a genuine point-in-time delisted universe. Arbitrary dates need a real key, which we did not test. This is a point-in-time concept they offer and we do not.

Corporate-action dates. Their DIVIDENDS endpoint returns declaration_date, record_date, payment_date, and ex_dividend_date as distinct fields. That is proper event modeling and we do not offer it at all.

Budget. Their premium page describes the standard free limit as 25 API requests per day, and prices paid plans by requests per minute rather than by data depth — the ladder meters throughput. Confirm current terms on their own pricing page; the annual block on the page we read labelled its plans in a way that contradicted the monthly/annual toggle above it, so we will not quote a figure from it.

Our limits, stated up front

Annual only. US only. 7 concepts, up to 12 fiscal years. No prices, no quarterly, no estimates, no ratios.

The one that matters most for research design: our universe centers on active filers. We do not carry delisted-company history, so any backtest run over a long horizon on our data carries survivorship bias, and the longer the horizon the worse it gets. If your result depends on the failures being in the sample, our data will flatter it. Say so in your write-up, or pair us with a delisting source.

On timing: across the full universe, rows with a verifiable filing date show a mean lag of 66 days from period end, median 60, p90 90. That is what "when it became knowable" actually costs you. We publish no coverage comparison, because Alpha Vantage publishes no company or row counts we could find and we will not estimate one.

Two datasets that overlap on the word "fundamentals" and almost nowhere else. If the vintage of a number is load-bearing in your work, that is the thing worth switching for.

Not investment advice.

See for yourself — free sample, no signup.

40 large caps, 3,280 point-in-time rows, full methodology.