Portfolio XIRR and CAGR on Zerodha Console
Portfolio XIRR on Zerodha Console is the annualised return on your current equity holdings, computed from the dates and sizes of every cash flow that built those holdings. It is the single figure Console uses to answer the question a long-term investor actually asks: at what yearly rate has my money compounded, given that I bought at different times and different prices. The metric sits on the Holdings page, alongside per-stock returns and corporate action history.
XIRR expands the idea of a compound annual growth rate to a portfolio built through many staggered purchases. A single lump-sum investment has one buy date and one buy price, so its annualised return is a plain compound annual growth rate (CAGR ). A real portfolio is messier: shares bought across months or years, dividends, systematic purchases, top-ups on dips. XIRR reads all of those dated flows and solves for the one annualised rate that ties them together.
Two behaviours of the Console figure confuse first-time users. The number can appear as a dash, “-”, rather than a percentage, and it reflects only the stocks you still hold, not the ones you have sold. Both are deliberate. This article explains what the metric measures, why Console suppresses it in specific cases, and how XIRR relates to the CAGR that most retail investors already know. Throughout, the distinction that matters is this: XIRR and CAGR here describe the return on your own portfolio, not the price history of a company. For a company milestone view, see the separate Console company timeline .
Where Console shows portfolio XIRR
Portfolio XIRR is reached the same way as the rest of the holdings analytics
. Log in to Console at console.zerodha.com, open Portfolio in the left navigation, and select Holdings. The portfolio XIRR appears with the holdings summary, next to the current value and the overall unrealised profit and loss.
Console shows two related layers of return. At the individual stock level, each holding carries its own annualised return and its overall percentage gain from average cost. At the portfolio level, the XIRR figure rolls the whole book of current holdings into one annualised rate. The Holdings report that you can download as CSV or Excel carries the per-stock cost basis and quantity; the on-screen XIRR is the aggregate read.
The same login also feeds Kite , but Kite is built for live, trading-oriented data: last traded price, day change, and unrealised profit and loss. The XIRR and multi-year return analytics live in Console, which is the reporting and portfolio surface rather than the order-placement surface.
What XIRR measures
XIRR stands for Extended Internal Rate of Return. Zerodha describes it as a calculation of “your annualised returns by considering the timing and amounts of multiple cash flows.” That phrase carries the whole idea. Every purchase is a cash outflow on a specific date. The current market value of what you hold is a notional inflow today. XIRR is the single annual rate that, applied to each dated flow, reconciles all of them to a net present value of zero.
An example makes the timing sensitivity concrete. Suppose an investor buys Rs 50,000 of a stock on 1 April 2024 and another Rs 50,000 of the same stock on 1 October 2024, and the holding is worth Rs 1,15,000 on 1 April 2025. A simple return calculation would say Rs 1,00,000 grew to Rs 1,15,000, a 15 per cent gain. XIRR knows the second tranche was invested for only six months, so the annualised rate it solves for is higher than 15 per cent: the money that was actually deployed earned its return over a shorter average holding period. This is why XIRR is the honest annualised number for a portfolio built in instalments, and why Zerodha flags it as “especially useful for SIPs,” where fresh money goes in every month.
The metric answers a different question from the one absolute return answers. Absolute return tells you how much you are up in percentage terms from cost to current value. It ignores how long the money was invested. Zerodha makes this contrast explicit: absolute returns “which ignore the investment time period, may not provide an accurate result.” A 20 per cent absolute gain earned over four years and a 20 per cent gain earned over four months are the same absolute number and very different investments. XIRR separates them; absolute return does not.
Why Console shows a dash for portfolio XIRR
The dash is the behaviour that generates the most support queries, and it is not an error. Console displays “a ‘-’ … for portfolio XIRR” when most of your investments are less than a year old. The reason is mathematical. XIRR annualises a return, so a large gain earned over a short window projects to an implausibly high yearly rate.
Consider a holding bought two weeks ago that is up 8 per cent. Annualising a 15-day, 8 per cent move produces a triple-digit percentage, because the model assumes that fortnightly rate of compounding continues for a full year. That figure would be technically computed and practically worthless. Rather than print a number that overstates the real return, Console suppresses the aggregate portfolio XIRR and shows a dash until the holdings have aged enough for annualisation to mean something.
The practical read for a new investor whose portfolio shows a dash is straightforward. It does not signal a data problem or a missing figure. It signals that the portfolio is too young for an annualised rate to be informative. As positions cross the one-year mark, the aggregate XIRR begins to display a stable number. In the interim, the per-holding overall return and the absolute gain and loss on the holdings screen are the figures to read.
Current holdings only: what the number leaves out
Portfolio XIRR “combines your current holdings and displays the annualised returns” and “does not take into account historical buy and sell trades.” This scope rule is the second common source of confusion, and it changes how the number should be interpreted.
If you bought a stock, sold it at a profit, and no longer hold it, that realised gain does not enter the portfolio XIRR. The metric is a forward-looking read on the capital still deployed, not a lifetime scorecard of every trade you have ever placed. An investor who has churned the book heavily, booking gains and rotating into new names, will find that portfolio XIRR describes only the surviving positions. The realised profit and loss from exited trades is a separate record, available in the tax profit and loss statement and the tradebook .
This design is consistent with what portfolio XIRR is for. It measures the compounding rate of the money you currently have at work. It is not the same as a return on total capital ever invested, and it should not be compared against a benchmark as though it were. For a whole-account view that includes deposits, withdrawals, and the value of positions over time, Console offers the account value and performance curves, which normalise the portfolio to a base value and track percentage returns against a benchmark. Those curves and the XIRR figure answer overlapping but distinct questions; the XIRR figure is the point estimate, the curves are the path.
How XIRR relates to CAGR
CAGR, the compound annual growth rate, is the return figure most retail investors already carry in their heads. It is the constant yearly rate at which a single investment would have had to grow to reach its ending value from its starting value over a given number of years. In standard finance notation, for one investment, CAGR = (ending value / beginning value)^(1 / n) - 1, where n is the number of years. Zerodha does not publish its own CAGR formula on the Console pages; it links out to a separate “What does CAGR mean?” explainer for the definition. The formula above is the generic textbook definition, not a Zerodha-specific method.
CAGR has one structural limit: it describes a single cash flow in and a single cash flow out. It smooths one starting amount into one ending amount and says nothing about money added in between. A portfolio built through many purchases has many starting amounts on many dates, so a single CAGR cannot describe it faithfully.
This is exactly the gap XIRR fills, and it is how Zerodha frames the relationship. Console describes XIRR as a metric that “aggregates multiple Compound Annual Growth Rates (CAGRs) and focuses on investments like SIPs.” Read that literally. Each dated purchase in your portfolio has, in effect, its own CAGR from its own buy date to today. XIRR is the weighted aggregation of all those individual CAGRs into one annualised rate, with each flow weighted by its size and its time in the market. A systematic investment plan , where a fixed sum is invested every month, is the clearest case: twelve monthly buys are twelve separate cash flows with twelve different holding periods, and XIRR is the single rate that reconciles them. This is why the same relationship holds for mutual fund portfolio XIRR as for an equity book.
The short version of the relationship: CAGR is XIRR’s special case for one lump sum, and XIRR is CAGR’s generalisation to many dated flows. When there is a single buy and a single valuation, the two produce the same number. The difference only appears when money goes in at more than one point in time.
The 365-day message and short-term holdings
Console attaches a caution to short-dated positions. When a holding is under 365 days old, the interface can display the message that “XIRR is less suited for short-term investments. Consider absolute returns instead.” The reasoning Zerodha gives is that XIRR “works better for longer-term assessments” and “might display unusual numbers if you frequently buy and sell stocks within short timeframes.”
The 365-day threshold is the same annualisation problem viewed at the level of a single position rather than the whole portfolio. Over a sub-year window, the annualised figure is unstable: a small absolute move projects to a large yearly rate, and active buying and selling within the window feeds the calculation a rapid sequence of dated flows that can produce a distorted output. The recommended alternative, absolute return, sidesteps the timing entirely and simply states the percentage gain from cost to current value.
The message is guidance, not a defect. For a trader rotating positions inside a quarter, absolute return is the meaningful read and XIRR is noise. For a long-term investor holding through years, XIRR is the meaningful read and absolute return understates the achievement by ignoring the compounding period. Matching the metric to the holding period is the whole point of the caution.
XIRR, CAGR, and absolute return compared
| Metric | Accounts for timing of cash flows | Handles multiple dated purchases | Best used for |
|---|---|---|---|
| Absolute return | No | No | A quick read of percentage gain, or any holding under 365 days |
| CAGR | Yes, for one flow | No | A single lump-sum investment over a known number of years |
| XIRR | Yes | Yes | A portfolio built in instalments, SIPs, and holdings over a year old |
The table makes the selection rule explicit. Read absolute return for short-dated positions and quick gain checks. Read CAGR when you have one buy and want the smoothed yearly rate. Read XIRR when the portfolio was assembled through several purchases on different dates, which describes almost every real long-term holding.
Practical reading of the Console figure
Three habits keep the Console XIRR interpretation correct. First, treat a dash as an age signal, not a missing value; the portfolio is young and annualisation is not yet meaningful. Second, remember the scope: the number covers current holdings only, so a heavily traded account will show XIRR for the survivors and record everything else in the profit and loss reports. Third, match the metric to the window: portfolio XIRR earns its place over multi-year holdings, and absolute return is the honest read under a year.
The figure is also only as clean as the cost basis feeding it. If a corporate action such as a split, bonus, or merger has not yet been adjusted, the average cost and therefore the return read can look wrong until the adjustment is processed. Where the buy average itself looks off, the fix is a separate workflow: see the WebNotes guide on how the buy average is calculated on Console , the note on why a buy average shows N/A or looks incorrect , and the steps to update or correct a buy average . A corrected cost basis flows straight through to a corrected XIRR.
Frequently asked questions
Why does my Zerodha portfolio XIRR show a dash instead of a number?
Does Console XIRR include shares I have already sold?
Is XIRR the same as CAGR on Zerodha Console?
Why does Console recommend absolute returns for short-term holdings?
Where can I see portfolio XIRR on Zerodha?
Does a deposit or withdrawal change my portfolio XIRR?
See also
- Zerodha Console reference
- Console Holdings report
- How to view holdings on Kite vs Console
- Kite holdings tab explained
- CAGR vs XIRR
- How to compute XIRR for a mutual fund portfolio
- XIRR on the Coin app
- Systematic investment plan (SIP)
- How the buy average is calculated on Zerodha Console
- Why a Zerodha buy average shows N/A or looks incorrect
- How to update or correct your buy average on Console
- Console tradebook
- Console tax profit and loss statement
- Console positions report
- Holdings value differs between Console and Kite
- Console company timeline
- Zerodha charges
- Kite by Zerodha
- How to log in to Zerodha Console
- How to buy a Nifty 50 ETF on Zerodha
External references
- Zerodha Support: Portfolio XIRR
- Zerodha Support: XIRR and CAGR for equity
- Zerodha Console
- SEBI
- NSE India
References
- Zerodha Support, “What is portfolio XIRR?”, support.zerodha.com, observed 1 July 2026.
- Zerodha Support, “XIRR and CAGR for equity”, support.zerodha.com, observed 1 July 2026.
- Zerodha Support, “How is the buy average calculated?”, support.zerodha.com, observed 1 July 2026.
- SEBI Circular SEBI/HO/MIRSD/MIRSD_RTAMB/P/CIR/2021/655, digital access to holdings and transaction data.