How Calsify handles stocks with missing price data
Every now and then a stock's price simply isn't available. Here's the promise: nothing scary, and nothing hidden. Your holding never disappears, and we never invent a number.
A stock you own is always counted
— even when we can't price it live.
No live price? We value it at cost basis and label it clearly, instead of silently showing ₹0.
When you open Calsify, you expect to see what your portfolio is worth right now. To do that, we need a live price for every stock you hold. Most of the time that's exactly what happens — but occasionally a price isn't available. Maybe the stock was recently listed, maybe it's thinly traded, maybe a data feed had a hiccup, or maybe a ticker was typed slightly differently from how the exchange lists it.
The important question is: what happens to your numbers when a price goes missing?We designed Calsify so the answer is always “nothing scary, and nothing hidden.”
Two different things can be missing
It helps to know that a stock's price actually has two parts, and they can fail independently.
Today's price
Calculating what your holding is worth right now, and its share of your portfolio (its weight).
Price history
Understanding how the stock has behaved over time, which powers the optimizer's risk-and-return suggestions.
A stock might have a full history but no fresh price today, or a price today but very little history. Calsify treats each situation a little differently.
What Calsify does in each case
| Situation | What Calsify does | What you'll see |
|---|---|---|
| Everything available | Uses live prices and full history. | Up-to-date value and weight, plus a recommended target weight. |
| Price is a little old | Uses the most recent price it has. | Your numbers, with a gentle “prices may be slightly behind” note. |
| No fresh price, but history exists | Values the stock using the last known price; still includes it in suggestions. | A “using most recent stored prices” note. |
| No price data at all | Keeps the stock in your portfolio and counts it — but doesn't generate a buy/sell suggestion for it. | A clear “excluded from optimisation (no price data)” note. |
| Very little history | Still includes it, but flags it if the numbers look unusual. | A heads-up if the price movement looks suspicious. |
Your stock never disappears
The case people worry about most is a stock with no price data at all. Here's the key thing:
A stock you own is always counted in your portfolio — even when we can't price it live.
In the past, a holding with no available price could show up as ₹0 and 0% weight, which made it look like you didn't own it at all. We fixed that. Now, when no live price is available, Calsify falls back to your cost basis— what you actually paid for the stock (your quantity × your average buy price) — so the holding always shows a real value and a real weight.
To keep everything honest, those rows are clearly tagged cost basis in your Holdings table. And because we can't know today's price, the Live Price and Profit & Losscolumns for that stock show a dash (—) rather than a misleading zero. You're never shown a made-up gain or loss.
| Column | When a live price exists | When it doesn't |
|---|---|---|
| Value | Live market value | Cost basis (what you paid) |
| Weight | Live weight | Cost-basis weight, tagged “cost basis” |
| Live Price | Today's price | — |
| P&L | Real profit/loss | — |
What about the recommendations?
Calsify's optimizer suggests how to rebalance your portfolio. To do that responsibly, it needs price history — so it can only make a recommendation for stocks it can actually analyze. If a stock has no data, Calsify will hold it as-israther than guess. It stays part of your total portfolio value, it just won't get a “buy more” or “trim this” suggestion. If none of your stocks have price data, Calsify won't run a half-baked analysis — it'll tell you clearly instead.
Why we built it this way
Two principles guided every one of these decisions:
Missing data is a normal part of working with live markets. What matters is that you can always trust what's on your screen — both the numbers we show and the ones we deliberately don't.
Frequently asked questions
It means we couldn't fetch a live market price for that stock right now — often because it's newly listed, thinly traded, or its ticker didn't match an exchange feed. So instead of showing ₹0, we value it at what you paid for it (your quantity × average buy price) and label it clearly. As soon as a live price becomes available, the tag disappears and the value updates automatically.
Because we don't want to guess. Without today's price, we genuinely can't calculate the current price or your real profit/loss, so we show a dash rather than a misleading zero. Everything we can know — your quantity, average buy price, and cost-basis value — is still shown.
A few normal reasons: prices update at slightly different moments, some stocks may be valued at cost basis here (if no live price was available), and brokers sometimes include things like cash balances or pledged holdings that aren't part of your stock portfolio. The difference is usually small and temporary.
Yes — for the rest of your portfolio. A stock with no price history is simply held as-is: it stays counted in your total, but it won't get a specific buy/sell suggestion, because we won't recommend trades we can't properly analyze. Only if none of your stocks have data will the analysis pause and tell you why.
Not usually. If the latest available price is a few days old, Calsify uses it and shows a small “prices may be slightly behind” note so you're aware. Your analysis still runs — just know the figures reflect the most recent price we have, not necessarily this exact second.
Often it resolves on its own once market data refreshes. If a stock stays unpriced, it's worth double-checking the ticker symbol matches how your exchange lists it — a small mismatch is the most common cause.
See your portfolio, priced honestly.
Upload your holdings and Calsify values every position with live prices — and tells you clearly when it can't, instead of guessing.
Open Calsify