Most analyst data products give you a price target and a rating. AnaChart gives you something most quant teams can’t find anywhere else: a verified track record for every analyst who issued that target.
This post walks through exactly what’s in the dataset — the schema, the coverage, the accuracy fields, and how data teams are using it.
What the Dataset Covers
The AnaChart analyst price target dataset currently holds 833,000+ individual price target records spanning 23 years of Wall Street history (2004–2026).
- 9,687 tickers in the historical universe — every US-listed equity that received analyst coverage over the past 23 years, including currently active stocks, delisted names, renamed companies, acquisitions, and bankruptcies
- 7,193 analysts tracked — from bulge-bracket names to boutique research shops
- 23-year depth — continuous from 2004 through 2026, with no survivorship filtering
- Records updated continuously as new analyst actions are published
Each record is tied to a specific analyst at a specific firm on a specific date — not an anonymized consensus average. That granularity is what makes the hit-rate calculation possible.
The 9,687 figure is worth pausing on. Most analyst data vendors quote active-stock counts — roughly 6,000–8,000 US-listed equities at any given moment. AnaChart’s count reflects the full 23-year ticker universe. That means every stock that existed in 2004 and was subsequently acquired, every company that went public and later delisted, every name that got taken private — all of it stays in the dataset with its full analyst coverage history intact.
For backtesting, this matters enormously. Removing delisted names creates survivorship bias: the companies that disappeared tend to be the ones analysts were most wrong about. A hit-rate calculation that excludes those names overstates analyst accuracy across the board. AnaChart’s counts are inclusive by design.
Schema Overview
The dataset is structured across four tables:
| Table | Description |
|---|---|
analyst_events |
One row per price target issuance or revision: analyst, firm, ticker, date, target price, rating, hit/miss outcome |
analyst_accuracy |
Rolling hit rate per analyst: total forecasts, hits, hit rate, sector breakdown |
consensus_snapshot |
Daily consensus per ticker: mean target, median, rating distribution, coverage count |
dispersion_metrics |
Daily PT std deviation, DispScaled (std/mean), negative implied upside ratio per ticker |
The core fields in analyst_events include:
| Field | Description |
|---|---|
analyst_name |
Full name of the issuing analyst |
firm |
Brokerage or research house |
ticker |
Stock symbol |
action_date |
Date the price target was issued or revised |
prior_price_target |
Previous PT, if a revision |
new_price_target |
New PT issued |
rating |
Standardised Buy / Hold / Sell |
rating_change |
Upgrade, downgrade, maintained, initiated |
stock_price_at_issuance |
Price on the date of the call |
realised_price |
Realised price at the evaluation horizon |
hit_miss |
Whether the target was reached within the standard window |
hit_rate |
% of this analyst’s forecasts that hit target — cumulative, updated on every new forecast |
The hit_rate field in analyst_accuracy is what differentiates this dataset from alternatives like Financial Modeling Prep, Intrinio, or Finnhub. Those vendors surface the price target. AnaChart surfaces the analyst’s historical track record alongside it.
Why the Hit-Rate Field Is Rare
When a Goldman Sachs analyst raises a price target, that data is freely available in seconds. What’s not available — at least not in any clean, queryable form — is whether that analyst’s prior 387 forecasts were accurate at a 77% rate or a 42% rate.
That context changes how you weight the signal.
Quant teams who ingest analyst data typically use it in one of two ways: as a direct signal (buy when X analysts raise targets) or as a feature in a larger model (weight analyst actions by some measure of quality). The second approach requires accuracy metadata. Without it, you’re treating a five-star analyst the same as a first-year analyst covering a sector they’ve never tracked before.
AnaChart’s hit-rate calculation uses the full historical record per analyst per stock per rating — not a self-reported figure or a sample window. The forecast_count field tells you how many forecasts back that rate. A 90% hit rate across 10 forecasts is statistically different from a 90% hit rate across 800 forecasts.
What You Can Answer With This Data
A few examples of queries the dataset supports cleanly:
Analyst screening by sector accuracy
“Which analysts covering semiconductors have hit rates above 80% across at least 100 forecasts?”
Accuracy-weighted consensus
“For this stock’s current consensus, what is the average hit rate of the contributing analysts, weighted by forecast count?”
Target dispersion + accuracy
“Where analyst targets diverge significantly, are the higher-conviction (higher hit-rate) analysts bullish or bearish?”
Firm-level performance benchmarking
“Which research houses have the most accurate analysts across healthcare, over the last five years?”
Regime and dispersion signals
“What is the current negative implied upside ratio for the Nasdaq 100, and how does it compare to prior market peaks?”
None of these queries are possible if you’re working from a standard price target feed. They require the accuracy fields in analyst_accuracy to be joined against the underlying event records.
Delivery: Snowflake and BigQuery
Snowflake Secure Data Share — Zero-ETL access. The share appears in your Snowflake account and behaves like any internal table. Standard SQL, no ingestion pipeline, no schema mapping. Onboarding takes less than one business day once your account is confirmed.
Google BigQuery — Available as a linked dataset. Same schema, same coverage, native to your GCP stack.
There is no CSV download, no FTP schedule, no proprietary SDK to maintain. For most data engineering teams, the elimination of the ingestion layer is the first thing that gets flagged in vendor evaluation — this is purpose-built for teams already running a warehouse.
For teams that don’t have a warehouse, one-time custom reports are available from $149 via the Query Catalog.
Pricing and Access
| Tier | Coverage | Price | Refresh |
|---|---|---|---|
| Starter | Nasdaq 100 — 100 tickers, full analyst history | $1,000/month | Weekly |
| Full Universe | 9,687 tickers, 7,193 analysts, all sectors | $5,000/month | Daily |
Both tiers include full historical archive (23 years). Month-to-month, cancel anytime.
A free AAPL sample — full analyst coverage, complete schema documentation, no sign-up required — is live on Snowflake now: anachart.store/sample-page.
AnaChart tracks price target accuracy for 7,193 Wall Street analysts across 9,687 stocks. The underlying data powers anachart.com, where retail and professional investors can look up individual analyst track records and rankings.