Help · Methodology

Price quality flags: when a fund's stored prices look wrong

From RangefinderInvest's built-in help · applies to version 0.55.1

Price providers sometimes get a single day wrong. After each price update the app looks for those days and flags the fund on Securities & prices, the Screener, and, for funds you hold, the Overview.

It judges each fund against its own category on the same day and against its own usual daily moves. A leveraged or crypto fund that falls 9% with its peers is not flagged; a diversified fund that falls 26% while its category is flat is. Only moves of 6 percentage points or more beyond the category count. Funds and ETFs are checked; single stocks are not, because an earnings day is real.

What a flag can mean

  • Unexplained drop: the price fell and stayed down while the category did not. Usually a distribution the provider did not record, so the fund's returns show a loss that never happened. The flag gives the likely amount per share. A real event, such as a fund liquidating, looks the same, which is why this is a flag and not a correction.
  • One-day price spike: one day's price jumped or fell and came back the next day. A stale or wrong price for that day.
  • Distribution dated a day off: the provider recorded a distribution one trading day away from the day the price actually dropped. When the adjustment is 5% or more the app already reads it correctly (see adjusted closes); smaller ones barely move a number and are not flagged.
  • Possible unrecorded split: the price stepped by a clean ratio such as 4-for-1 and no split is recorded. A manual split repairs it.
  • Prices too coarse to use: the provider quotes the fund in steps so large (for example $0.10 and $0.11) that a daily return means nothing.

What it affects

Most flags affect only performance figures: Screener returns and risk, backtests, benchmark lines. The price a holding is valued at is the raw price, which is right in those cases. A coarse-quote flag is the exception: the stored prices themselves look wrong, so holding values may be off too.

Checking with Tiingo

If you have saved a Tiingo key, the app checks each flagged fund that gets its prices from Yahoo against Tiingo, once, in the background: one request per fund, and again only if the fund's findings change. The fund's details then say what Tiingo found:

  • Tiingo has this fund right: Tiingo prices the same fund and shows none of the faults. Use Tiingo for this fund switches the fund's price source to Tiingo and offers to download its history again from there, which replaces the faulty days. The offer shows how many funds already use Tiingo: each one is a Tiingo request on every price update, and the free plan allows 50 an hour.
  • Tiingo shows the same fault: switching would not help.
  • Tiingo cannot confirm it: its prices for the symbol do not match, or it has too little history.

A fund that already gets its prices from Tiingo is not checked, since Tiingo cannot confirm its own data. Without a key, the flag stays a flag.

Verify any fund

You can also check a fund that has no flag. Verify with Tiingo is in the fund's details on Securities & prices (next to View price history), and in the bar that appears when you select funds there. It compares the two sources day by day, and on any day they disagree by 2 points or more it uses the fund's category to decide which one is right. If Tiingo is right on every such day, the fund's details offer to switch it to Tiingo. The details' Tiingo check line keeps the result and the day it was checked. If Tiingo's hourly limit is used up, the button says when it can run again.

Background check

Settings → Price data can check the funds you hold and the funds in your models in the background: a few after each price update, each fund about once a month, with a count of how many are checked. It is off until you turn it on, because each check is one of your Tiingo requests.

What you can do

Nothing is changed for you unless you choose to switch. A flag disappears by itself once a later update no longer shows the problem.