Symptoms
A portfolio importer can receive prices on a different scale after enabling repair=True. Issue #2866 reports yfinance 1.4.1 and XDEV.L: Close changed from 6201 to 62.01 while some Repaired? values remained false. These are the reporter’s observations, not an API Atlas live test. Applying a further pence-to-pound conversion can compound the error before FX valuation.
Popularity and integration difficulty have separate evidence. The project repository displayed approximately 25.6k stars and 3.5k forks on 2026-10-25: an interest proxy, not measured API adoption. The concrete difficulty is the issue’s unit mismatch and the subsequent repair discussions.
Cause
Internal dividend-repair standardization leaked into returned values and currency metadata. PR #2907, merged on 2026-07-27, restores the original quotation unit. The 1.6.0 changelog lists that fix; the 1.7.0 source restores price columns, dividends and currency metadata when internal scaling occurred.
This is not a universal explanation for every 100x discrepancy. A separate partial-block report #2924 uses a synthetic fixture, not a demonstrated live ticker with the combined state. That issue is closed, but its linked PR #2927 remains open and unmerged at this review. A closed issue alone is not evidence of a released fix.
Safe resolution
Record the installed version, ticker, dates, interval, repair and auto_adjust. Use a compatible version containing the documented fix, but retain regression checks rather than assuming all unit defects are resolved. Keep the returned prices with Ticker.history_metadata['currency'] from the same history operation. The repair documentation explicitly distinguishes that metadata from Ticker.info.
Normalize to pounds only after verifying the quotation unit. This offline helper illustrates one explicit conversion boundary; it does not repair mixed-unit rows, validate upstream metadata or fetch data. Preserve the original value and unit alongside the normalized value. Never apply an unconditional multiplication or division by 100, and never feed its GBP result through a second pence conversion.
from decimal import Decimal
def quotation_to_gbp(value, history_currency):
"""Normalize an already retrieved, unit-verified value; no network call."""
factors = {"GBp": Decimal("0.01"), "GBX": Decimal("0.01"),
"GBP": Decimal("1")}
if history_currency not in factors:
raise ValueError("Unknown quotation unit; inspect source metadata")
amount = Decimal(str(value))
if not amount.is_finite():
raise ValueError("Non-finite price")
return amount * factors[history_currency]
The same unit decision must be checked for dividends before FX conversion. Repaired?=False does not prove that every value is unchanged: the documentation notes an Adj Close-only adjustment may leave the flag unset. For a different problem—column selection and adjustment meaning—see yfinance Adj Close and MultiIndex.
Verification
Source review on 2026-10-25 covers the yfinance issue, merged fix, 1.6.0 changelog, 1.7.0 source and repair documentation. No Yahoo request or live price comparison was performed.
For saved-data regression controls, compare a consistently pence-denominated series, an already-pound-denominated series, missing currency, and a genuine mixed-unit block. The first two must normalize exactly once; missing units must fail rather than guess. A mixed-unit block must be investigated upstream, not passed off as repaired by the scalar helper. Include dividend and FX boundaries, and retain package/options/metadata in receipts.
The repository’s offline example test exercises only the helper with synthetic values, including equivalent GBp/GBP amounts and unknown/non-finite inputs. It is not a yfinance runtime test, a Yahoo accuracy check or production validation.
Limitations
The first affected version, all affected symbols and current live recurrence were not established. The follow-up partial-block fix is not claimed as shipped. This client defect is not evidence that upgrading a data plan repairs the issue.
yfinance is an unofficial Yahoo client, not an official Yahoo SDK. The project notice separates the library from Yahoo and directs users to applicable data terms; a free package does not establish commercial data rights. No account entitlement or commercial permission was verified.
No directly corresponding GetBeta fix or production test was established. Use the yfinance provider profile and market-data selection guide for broader context. The added value here is tracing quotation units through repair and FX, not repeating the existing adjusted-column guide. Search phrases are candidates, not verified search volume or ranking claims.
Sources and verification scope
Source review on 2026-10-25 covers the yfinance issue, merged fix, 1.6.0 changelog, 1.7.0 source and repair documentation. No Yahoo request or live price comparison was performed.
- yf-repair-issue (documentation) · checked:
- yf-repair-release (documentation) · checked:
- yf-repair-code (code) · checked:
- yf-repair-currency-doc (documentation) · checked:
- yf-repair-pr (documentation) · checked:
- yf-partial-issue (documentation) · checked:
- yf-partial-pr (documentation) · checked:
- yf-repair-interest (documentation) · checked: