{"id":94,"date":"2026-10-05T23:00:10","date_gmt":"2026-10-06T06:00:10","guid":{"rendered":"https:\/\/americanetp.com\/forum\/2026\/10\/05\/shares-historical-price\/"},"modified":"2026-10-05T23:00:10","modified_gmt":"2026-10-06T06:00:10","slug":"shares-historical-price","status":"publish","type":"post","link":"https:\/\/americanetp.com\/forum\/2026\/10\/05\/shares-historical-price\/","title":{"rendered":"Shares Historical Price: Sources &#038; Gaps"},"content":{"rendered":"<p>A historical share price looks like the most settled data item in finance. It is not, and the places most people get it from do not tell you where it bends.<\/p>\n<h2 id=\"what-is-a-shares-historical-price-series\">What is a shares historical price series?<\/h2>\n<p>A shares historical price series is a dated record of open, high, low, close and volume for one share line, optionally restated for corporate actions. Those five fields are what every public price table carries, and the restatement is where the trouble starts.<\/p>\n<p>The raw close is the price at which the share actually changed hands at the end of that session on that exchange. The restated close is a number computed later, after a split or a distribution, so that a chart drawn through the action does not show a cliff that no holder experienced.<\/p>\n<p>Both are legitimate. They are not interchangeable, and a series that mixes them silently is not a price history, it is an artefact.<\/p>\n<p>The distinction matters more at the fund and index level than at the single-name level, because an ETF or index value is a function of many share lines, each of which can be restated on a different day for a different reason. If you cannot say which version of each input you are holding, you cannot reconcile a level you compute against the level that was published.<\/p>\n<h2 id=\"why-the-close-and-the-adjusted-close-are-different-numbers\">Why the close and the adjusted close are different numbers<\/h2>\n<p>They answer different questions. The close tells you what the share traded at; the adjusted close tells you what a holder&#39;s economic outcome would look like if distributions had been reinvested and splits had never happened.<\/p>\n<p>Yahoo Finance states the convention directly on its historical data pages. As read on 6 October 2026, <a href=\"https:\/\/finance.yahoo.com\/quote\/AAPL\/history\/\">Yahoo Finance<\/a> defines the close as adjusted for splits, and the adjusted close as adjusted for both splits and dividend and\/or capital gain distributions. That is a total-return construction, not a price.<\/p>\n<p>Consider a 4-for-1 split, the mechanism Apple used with an effective date at the end of August 2020. A line that closed near $500 the session before appears near $125 in a split-restated series for the same date, and lower still in a distribution-adjusted series once past dividends are rolled back in. Nothing wrong happened. But the $125 is not a price anyone paid that day, and the distribution-adjusted figure is not even a price that ever existed.<\/p>\n<h3 id=\"when-you-want-the-raw-close\">When you want the raw close<\/h3>\n<p>Use the unadjusted close whenever the question is about the actual trade, the actual contract or the actual published number:<\/p>\n<ul>\n<li>Tax lot and cost basis work, where the price paid is the price paid.<\/li>\n<li>Option strike and moneyness reconstruction, since strikes were set against untouched prices.<\/li>\n<li>Index divisor and index level checks, where the published level was computed from prices as struck.<\/li>\n<li>Prospectus and NAV reconciliation, where a fund&#39;s own documents cite the figures of the day.<\/li>\n<li>Regulatory and best-execution review, where the benchmark is the market, not a model.<\/li>\n<\/ul>\n<h3 id=\"when-you-want-the-restated-close\">When you want the restated close<\/h3>\n<p>Use the adjusted series for anything that is really a return question: performance measurement, factor construction, volatility and correlation estimation, drawdown statistics, and backtests whose signals are built from returns rather than price levels. A long chart drawn on raw closes through three splits will produce a volatility estimate that is pure accounting noise.<\/p>\n<p>The practical rule is to store both, derive neither on the fly, and keep the corporate action log that links them. A pipeline that keeps only the adjusted series has thrown away information it cannot rebuild, because the adjustment is a many-to-one map.<\/p>\n<h2 id=\"what-the-free-quote-pages-give-you-and-where-they-stop\">What the free quote pages give you, and where they stop<\/h2>\n<p>Free quote pages are a genuinely good first stop: broad coverage of listed lines, daily, weekly and monthly granularity, and a CSV download with no account for most tickers. For a one-off question about one line, they are the right tool and anything heavier is overkill.<\/p>\n<p>They stop at three places, and all three are observable without a subscription.<\/p>\n<p>The first is availability. The Nasdaq historical data page for the ETF ticker EFOI returned &quot;Historical Data is currently not available&quot; when fetched on 6 October 2026, which is an honest response from the site and a fatal one for a pipeline that assumed a table would be there. Public pages are built for interactive lookups, so a missing table is a display state, not an error code your scheduler can branch on.<\/p>\n<p>The second is survivorship. The page exists while the ticker exists. When a line is delisted, merged out, converted or renamed, the quote page for the old symbol tends to stop resolving, and nothing on the surviving page tells you that a different line used to carry that history. Build a universe from what the quote pages return today and you have built a survivor universe, which will flatter every backtest you run through it.<\/p>\n<p>The third is provenance. There is usually no file-level timestamp, no versioning, and no record of what the page would have said last Tuesday. For a wider treatment of this problem across sources, see <a href=\"https:\/\/americanetp.com\/forum\/2026\/10\/03\/historical-share-values\/\">Historical Share Values: Sources &amp; Pitfalls<\/a>.<\/p>\n<h2 id=\"how-do-i-find-the-historical-price-of-shares-that-no-longer-trade\">How do I find the historical price of shares that no longer trade?<\/h2>\n<p>You find the corporate action first and the price second. A line that no longer trades has a termination event with a date, and that date is the key to the predecessor identifier under which the history is still filed.<\/p>\n<p>Rolls-Royce Holdings is the cleanest illustration, because the class in question was never meant to survive. The company returned cash to ordinary shareholders for several years in the 2010s by issuing non-cumulative redeemable preference C shares, which holders could redeem for cash at their nominal value or retain, until the company moved back to paying its dividend in cash in the mid-2010s and the scheme ended. The C shares had their own identifier and their own listing line, and searching that ticker today returns nothing at all, because the class was redeemed out of existence rather than renamed into something else.<\/p>\n<p>An analyst who concludes &quot;there is no price history&quot; has drawn the wrong inference from an empty search box. The history exists; the pointer to it was retired.<\/p>\n<p>The procedure that works, in order:<\/p>\n<ol>\n<li>Establish the event and its effective date from the issuer&#39;s own announcements or the exchange notice, not from a third-party summary.<\/li>\n<li>Establish the event type, since delisting, redemption, scheme of arrangement, share class conversion and pure renaming each leave a different trail.<\/li>\n<li>Resolve the predecessor identifier at the exchange level, not the ticker, because tickers are reissued to unrelated issuers.<\/li>\n<li>Pull the archive for the predecessor line up to its last trading date.<\/li>\n<li>Stitch with a documented break: a row in your action log saying what happened, when, at what ratio or cash value, and which identifier the series changed to.<\/li>\n<\/ol>\n<p>That last step is the one that separates a defensible series from a plausible one. A silent splice between two identifiers produces a return on the join date that no holder ever earned, and it will sit in your data for years without ever looking wrong.<\/p>\n<h2 id=\"multi-class-and-cross-listed-share-lines-a-shares-b-shares-adrs\">Multi-class and cross-listed share lines: A shares, B shares, ADRs<\/h2>\n<p>&quot;The historical price of shares&quot; in company X is ambiguous the moment X has more than one line. Different classes and different listings of the same economic claim trade at different prices, in different currencies, during different sessions, and each has its own history.<\/p>\n<p>Chinese issuers are the standard case. The A-share line trades onshore in renminbi, the H-share line trades in Hong Kong dollars, and an ADR line trades in New York at a ratio to the ordinary shares. Three series, one issuer, three different numbers for the same date, and the gaps between them reflect capital controls, currency, local supply and the ADR ratio rather than any change in the business.<\/p>\n<p>US dual-class structures create the same ambiguity with less drama: a voting and a non-voting line, both outstanding, with separate prices and separate index eligibility. An attribution that names &quot;the stock&quot; without naming the line is not reproducible.<\/p>\n<p>The suffix is load-bearing. A numeric ticker such as 2498.TW is only unambiguous because the suffix names the exchange, and the same numeric root exists on other markets attached to unrelated issuers. Strip the suffix in a spreadsheet import and you have silently merged two companies.<\/p>\n<h3 id=\"identifier-discipline\">Identifier discipline<\/h3>\n<p>A ticker is a display label with exchange scope and a reuse history. An identifier is stable, unique and maps to one security on one venue. For holdings work this is not a philosophical point: it is the only thing that makes a price series joinable to anything else.<\/p>\n<p>AmericanETP holdings files carry Bloomberg FIGIs alongside each holding, which gives you an exchange-level identifier to join on rather than a ticker string to guess at. The <a href=\"\/Bloomberg-Extensions\">Bloomberg extensions<\/a> describe the identifier fields available in the holdings files.<\/p>\n<h2 id=\"how-to-download-historical-stock-prices-in-bulk\">How to download historical stock prices in bulk<\/h2>\n<p>For one line, export the CSV from the quote page. For a universe, you need scheduled delivery, because the manual route fails on repetition rather than on volume.<\/p>\n<p>The manual path is fine at single digits: open the quote page, set the date range and the frequency, download, check the column order, load. It breaks somewhere between twenty and a few hundred lines, and it breaks immediately once any of the following is true:<\/p>\n<ul>\n<li>You need the same pull repeated at multiple as-of dates rather than once.<\/li>\n<li>You need to prove later what the file said on the day you loaded it.<\/li>\n<li>The universe changes between runs, so the list of pages to visit is itself a dataset.<\/li>\n<li>A page returns a missing table and nobody notices until a report is wrong.<\/li>\n<\/ul>\n<p>What a bulk workflow needs that a browser download does not is unglamorous and non-negotiable: a stable column order so loaders do not break when a site redesigns, stable identifiers so joins survive ticker changes, one timestamped file per run so you can reconstruct any past state, and a delivery channel a scheduler can authenticate against. FTP access covers the last of those without anyone opening a browser, and the <a href=\"\/Downloads\">downloads<\/a> page sets out the file structure you would be scheduling against.<\/p>\n<p>The same requirements apply to the ETF side of the question, often phrased as ETF historical data download. The difference is that an ETF price series on its own answers almost nothing, which is the subject of the next section.<\/p>\n<h2 id=\"joining-price-history-to-holdings-history\">Joining price history to holdings history<\/h2>\n<p>A price series tells you that a fund moved. Only point-in-time holdings tell you what it held while it moved, and attribution is impossible without both.<\/p>\n<p>This is the step public price tables skip entirely. If a sector ETF fell four percent on a given date, the price history records the fall and nothing else. To decompose it you need the holdings as they stood that morning, each holding&#39;s price for that session, and the weights as published rather than as reverse-engineered from today&#39;s file.<\/p>\n<p>Reconstructing weights from a current holdings file and a historical price series is the most common error in this work, because it is invisible. Today&#39;s holdings projected backwards will attribute a move to positions the fund had not yet bought and will miss the positions it sold.<\/p>\n<p>AmericanETP addresses the holdings half of the join: coverage of 3,878 US and global indexes and US-traded ETFs, holdings updated twice daily with a primary update at 6pm EST and a secondary update at approximately noon EST, and archived holdings files going back to July 2009. The fundamentals file carries the fund description, leverage and holdings counts, which is what tells you whether a level you are reconciling came from a leveraged line before you start hunting for a pricing error that does not exist.<\/p>\n<p>Two adjacent uses of the same join are worth naming. Sector attribution over time requires a classification that is itself point-in-time, which is covered in <a href=\"https:\/\/americanetp.com\/forum\/2026\/08\/31\/etf-list-by-sector\/\">ETF List by Sector: 2026 Classification Guide<\/a>. Aggregate valuation work, such as rebuilding an index-level multiple from the bottom up, needs holdings, weights and per-name fundamentals together, as set out in <a href=\"https:\/\/americanetp.com\/forum\/2026\/08\/28\/p-e-ratio-s-p-500\/\">Build the P\/E Ratio S&amp;P 500<\/a>. Changes between two holdings dates are their own dataset, which is what the <a href=\"\/Constituent-Change-Report\">constituent change report<\/a> exists to expose.<\/p>\n<h2 id=\"where-the-institutional-data-vendors-sit-on-price-history\">Where the institutional data vendors sit on price history<\/h2>\n<p>Price history is a commodity; the context around it is not. The honest way to compare vendors is to read each one&#39;s current materials yourself, because product scope, delivery options and packaging change faster than any article can track, and nothing in this section restates a competitor&#39;s features from memory.<\/p>\n<p>The vendors most often shortlisted alongside AmericanETP for this work are FactSet, Refinitiv (LSEG), Morningstar, S&amp;P Global Market Intelligence and ETF Global. Rather than characterise what each one offers without a dated source in front of us, here is the set of questions worth answering from each vendor&#39;s own documentation before you compare them at all.<\/p>\n<div class=\"ab-table\">\n<table>\n<thead>\n<tr>\n<th>Question to put to each vendor<\/th>\n<th>Why it decides the comparison<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Which universe of ETFs and indexes is covered, and under what licence<\/td>\n<td>Index holdings are often licensed separately from prices, and scope varies by agreement<\/td>\n<\/tr>\n<tr>\n<td>How are holdings and price data delivered, and in what format<\/td>\n<td>A screen, an API and a scheduled file support very different pipelines<\/td>\n<\/tr>\n<tr>\n<td>How frequently is each dataset updated, and at what time<\/td>\n<td>Attribution needs a known as-of moment, not a nightly refresh of unknown timing<\/td>\n<\/tr>\n<tr>\n<td>Which security identifiers are attached to each row<\/td>\n<td>Joins across datasets depend on exchange-level identifiers rather than tickers<\/td>\n<\/tr>\n<tr>\n<td>How deep is the retrievable archive, and is it point-in-time<\/td>\n<td>Restated history and as-published history answer different questions<\/td>\n<\/tr>\n<tr>\n<td>What redistribution and derived-data rights come with the licence<\/td>\n<td>This frequently constrains the end use more than coverage does<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>What AmericanETP answers to those questions is stated on its own pages: coverage of 3,878 US and global indexes and US-traded ETFs, CSV holdings files with Bloomberg FIGIs, twice-daily updates at 6pm EST and approximately noon EST, an archive back to July 2009, and FTP access for scheduled collection.<\/p>\n<p>A full terminal genuinely wins in cases a holdings file cannot touch. If you need tick-level intraday data, options chains, fixed income analytics, news and filings in one place, cross-asset reference data, or an analyst on the phone when a corporate action looks wrong, that is what the large platforms are for and a CSV library is not a substitute for it.<\/p>\n<p>Where the holdings-file approach wins is narrower and sharper: you want the underlying lists in a loadable form, with identifiers already attached, every day, and you want them in your own pipeline rather than in someone else&#39;s screen. AmericanETP pricing is $1,500 per year or $150 per month for an individual, and $2,500 per year or $250 per month firm-wide.<\/p>\n<p>For a layer-by-layer view of what a workstation subscription typically bundles, see <a href=\"https:\/\/americanetp.com\/forum\/2026\/09\/04\/factset-alternatives\/\">FactSet Alternatives: Split by the 4 Layers You Pay For<\/a>. For the enterprise side, <a href=\"https:\/\/americanetp.com\/forum\/2026\/09\/14\/refinitiv-review\/\">Refinitiv Review 2026<\/a> covers positioning, and <a href=\"https:\/\/americanetp.com\/forum\/2026\/09\/11\/americanetp-vs-refinitiv\/\">AmericanETP vs Refinitiv (LSEG) 2026<\/a> sets the two side by side on workflow rather than on figures neither of us can source today.<\/p>\n<h2 id=\"a-checklist-for-a-defensible-price-history\">A checklist for a defensible price history<\/h2>\n<p>A price series is production-ready when someone who did not build it can reproduce a number from it and explain every discontinuity. Eight checks get you there.<\/p>\n<ol>\n<li><strong>Raw and restated stored separately.<\/strong> Both series, labelled, with the adjustment basis recorded. Never derive one on the fly and never overwrite the other.<\/li>\n<li><strong>A corporate action log.<\/strong> One row per event with date, type, ratio or cash amount, and the affected identifier. Without it, no adjustment is auditable.<\/li>\n<li><strong>Identifier mapping at the exchange level.<\/strong> FIGI or equivalent, with ticker treated as a label. Keep the full mapping history, not the current state.<\/li>\n<li><strong>Explicit delisting and conversion handling.<\/strong> Every terminated line ends with a reason code and a pointer, so a gap is a documented event rather than missing data.<\/li>\n<li><strong>A stated session and timezone convention.<\/strong> Primary exchange close or consolidated close, and the local clock time behind each. A global index built from &quot;same day&quot; prices is assembled from several different moments.<\/li>\n<li><strong>Source timestamping per file.<\/strong> Which source, which run, what time. A number nobody can date is a number nobody can defend.<\/li>\n<li><strong>Archive retention of the files as received.<\/strong> Keep the original, immutable, alongside the loaded table. Restating history is a decision, not a side effect.<\/li>\n<li><strong>Reconciliation against a second source.<\/strong> Pick sample dates and names, compare, and record tolerances and exceptions. Two sources that agree are evidence; one source is an assumption.<\/li>\n<\/ol>\n<p>Run the same discipline on the holdings side, and price history stops being a chart and becomes something you can build attribution, valuation and risk work on top of.<\/p>\n<p>If daily holdings files with Bloomberg FIGIs and an archive back to July 2009 would close the gap in your own reconstruction, <a href=\"https:\/\/americanetp.com\/?utm_source=blog-shares-historical-price&#038;utm_medium=blog\">see what AmericanETP delivers<\/a> or get in touch through the <a href=\"\/Contact\">contact<\/a> page.<\/p>\n<h2 id=\"faq\">FAQ<\/h2>\n<h3 id=\"how-do-i-find-out-historical-share-prices\">How do I find out historical share prices?<\/h3>\n<p>Start with a free quote page such as Yahoo Finance or Nasdaq, which offer daily, weekly and monthly history with a CSV download for most listed lines. Check which column you are reading before you use it: as read on 6 October 2026, Yahoo Finance defines its close as adjusted for splits and its adjusted close as adjusted for splits and dividend and\/or capital gain distributions. For repeated pulls across many lines, or for anything you will have to defend later, move to scheduled delivery with timestamped files rather than manual downloads.<\/p>\n<h3 id=\"where-do-i-find-historical-share-prices-for-a-company-that-was-taken-over\">Where do I find historical share prices for a company that was taken over?<\/h3>\n<p>Find the corporate action before you look for the price. Establish the effective date and the event type from the issuer&#39;s announcements or the exchange notice, resolve the predecessor identifier for the line that stopped trading, then pull the archive for that identifier up to its final session. Record the join as a documented break in your action log rather than splicing the old and new series together, because a silent splice creates a return on the join date that no holder ever earned.<\/p>\n<h3 id=\"how-do-i-check-a-share-s-full-price-history-including-splits\">How do I check a share&#39;s full price history including splits?<\/h3>\n<p>Use a split-adjusted series for the chart and keep the unadjusted series alongside it for anything involving the price actually traded. The split-adjusted series removes the mechanical step at the split date, which is what you want for volatility and return statistics. Keep the split ratios and dates themselves in a separate action log, since that is the only record that lets you move between the two versions and verify either one.<\/p>\n<h3 id=\"how-do-i-download-historical-stock-prices-as-csv\">How do I download historical stock prices as CSV?<\/h3>\n<p>For one or two lines, export directly from the quote page after setting the date range and frequency. For a universe, use scheduled delivery, because the manual route fails on repetition rather than on size: you will need the same pull at several as-of dates, a record of what each file said on the day you loaded it, and a channel a scheduler can authenticate against. A bulk workflow also needs a stable column order and stable identifiers, which no browser download guarantees.<\/p>\n<h3 id=\"is-adjusted-close-the-same-as-the-price-the-share-actually-traded-at\">Is adjusted close the same as the price the share actually traded at?<\/h3>\n<p>No. The adjusted close is a restated figure that rolls back splits and distributions so that a return series is continuous, and after a few corporate actions it can differ substantially from any price that was ever quoted. Use the unadjusted close for tax lots, option strikes, index level checks and NAV reconciliation. Use the adjusted close for return, volatility and performance work.<\/p>\n<h3 id=\"how-far-back-does-etf-historical-data-usually-go\">How far back does ETF historical data usually go?<\/h3>\n<p>Coverage varies by source and by fund, and for any individual ETF it cannot start before the fund launched. On the holdings side, AmericanETP keeps archived holdings files back to July 2009, which is the part that matters for attribution, since a price series alone cannot tell you what a fund held on the day it moved. Verify the start date for each specific line rather than assuming a single cut-off across a provider&#39;s whole universe.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>How share price history is built, where adjusted close breaks, and how to rebuild series for renamed, delisted and multi-class shares.<\/p>\n","protected":false},"author":1,"featured_media":93,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[102,103,9,31,101,21],"class_list":["post-94","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-fundamentals","tag-corporate-actions","tag-data-quality","tag-etf-data","tag-figi","tag-historical-share-prices","tag-market-data"],"_links":{"self":[{"href":"https:\/\/americanetp.com\/forum\/wp-json\/wp\/v2\/posts\/94","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/americanetp.com\/forum\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/americanetp.com\/forum\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/americanetp.com\/forum\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/americanetp.com\/forum\/wp-json\/wp\/v2\/comments?post=94"}],"version-history":[{"count":0,"href":"https:\/\/americanetp.com\/forum\/wp-json\/wp\/v2\/posts\/94\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/americanetp.com\/forum\/wp-json\/wp\/v2\/media\/93"}],"wp:attachment":[{"href":"https:\/\/americanetp.com\/forum\/wp-json\/wp\/v2\/media?parent=94"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/americanetp.com\/forum\/wp-json\/wp\/v2\/categories?post=94"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/americanetp.com\/forum\/wp-json\/wp\/v2\/tags?post=94"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}