Learn how to build a globally diversified portfolio from India. 8 of 12 chapters are live, covering LRS, FX, global indexes, Irish ETFs, and selecting a broker.
1 Portfolio — Snapshot
This report uses prices as on end of October 30.
| Portfolio Strategy | Global Multi-Asset Passive Investing using Indian Mutual Funds & Irish ETFs | |||
| Equity Allocation | Target (2026-27) 85.00% (unchanged) | Current 83.80% ▲ 83.59% | India 44.21% ▲ 41.70% | US 39.59% ▼ 41.89% |
| 1 Portfolio | XIRR 14.43% ▼ 16.92% | Drift 1.97% ▼ 3.30% | New Investment 1.39% ▼ 1.81% | |
| Rebalancing Method | Perpetual Rebalancing | |||
What Changed This Month
Nasdaq 100 and Nifty 50 swapped sides. Nasdaq 100 went from +1.89% overweight to -0.41% underweight, while Nifty 50 went from the largest underweight at -1.24% to +0.77% overweight.
Total Drift narrowed from 3.30% to 1.97%. Last month’s investment was planned to bring it down to 2.27%, and market moves did the rest. The framework then did the opposite of last month: Nifty 50 went from receiving 54.96% of new capital to receiving none, and Nasdaq 100 went from none to 42.78%.
1 Portfolio — Performance & Drift
Following is the state of the 1 Portfolio, before this month’s investment. Data is compared to the previous State of the 1 Portfolio (October 2026) report, which was likewise published pre-investment — so this is a like-for-like comparison.
| Asset Class | Age | XIRR | Growth Share | Current Allocation (Oct 30 EOD) | Target Allocation (for TY 2026-27) | Drift |
|---|---|---|---|---|---|---|
| Nasdaq 100 | 4y 4m | 27.95% ▼ 34.38% | 63.61% ▼ 65.81% | 39.59% ▼ 41.89% | 40.00% | -0.41% ▼ +1.89% |
| Nifty 50 | 4y 4m | 1.82% ▲ 0.50% | 3.44% ▲ 0.74% | 20.77% ▲ 18.76% | 20.00% | +0.77% ▲ -1.24% |
| Next 50 | 1y 4m | 5.73% ▼ 11.79% | 1.76% ▼ 2.58% | 9.54% ▲ 9.22% | 10.00% | -0.46% ▲ -0.78% |
| Midcap 150 | 1y 4m | 1.37% ▼ 8.10% | 0.43% ▼ 1.81% | 9.46% ▲ 9.12% | 10.00% | -0.54% ▲ -0.88% |
| Smallcap 250 | 1y 4m | 14.22% ▼ 27.99% | 2.00% ▼ 2.78% | 4.45% ▼ 4.61% | 5.00% | -0.55% ▼ -0.39% |
| Debt | 4y 4m | 6.61% ▼ 7.16% | 4.40% ▲ 3.82% | 5.85% ▲ 5.75% | 5.00% | +0.85% ▲ +0.75% |
| Gold | 4y 4m | 29.10% ▼ 33.00% | 24.36% ▲ 22.46% | 10.35% ▼ 10.66% | 10.00% | +0.35% ▼ +0.66% |
| Total | 14.43% ▼ 16.92% | 100.00% | 100.00% | 100.00% | +1.97% ▼ +3.30% |
Definitions
- Asset Class: Underlying asset class within the 1 Portfolio.
- XIRR: Annualized return generated by investments in the asset class. Note: Asset-level XIRRs are based on the actual cash flows into each sleeve and therefore should be interpreted alongside the investment age shown in the table.
- Growth Share: Percentage of total portfolio gains contributed by the asset class (
Asset Class Gain ÷ Total Portfolio Gain). Note: This can be negative if an asset class has generated a loss. - Current Allocation: Current percentage of portfolio market value allocated to the asset class.
- Target Allocation: Desired long-term allocation for the asset class.
- Drift: Difference between current allocation and target allocation (positive = overweight, negative = underweight). Arrow colour: green = moved towards 0, red = moved away from 0, yellow = crossed from one side of 0 to the other.
- Total Drift: Calculated as the sum of positive deviations from target allocations. A higher drift indicates the portfolio is further away from its target allocation. Conceptually, it represents the minimum percentage of portfolio value that would need to be shifted between asset classes to reach the target allocation precisely (ignoring taxes, transaction costs, and other practical constraints).
- Capital-Efficiency Multiple: Growth Share ÷ Current Allocation. A ratio above 1 means the asset is contributing more to portfolio growth than its size alone would suggest.
{
"title": [
{
"text": "1 Portfolio Performance",
"left": "center",
"top": 0,
"textStyle": {
"color": "#888",
"fontSize": 16,
"fontWeight": 600
}
},
{
"text": "Market Value",
"left": "center",
"top": "37%",
"textStyle": {
"fontSize": 15,
"fontWeight": 600,
"color": "#888"
}
},
{
"text": "Growth Share",
"left": "center",
"top": "57%",
"textStyle": {
"fontSize": 15,
"fontWeight": 600,
"color": "#888"
}
}
],
"tooltip": {
"trigger": "item"
},
"color": [
"#2563EB",
"#F97316",
"#F59E0B",
"#10B981",
"#047857",
"#64748B",
"#D4AF37"
],
"legend": {
"bottom": 0,
"left": "center",
"orient": "horizontal",
"data": [
"Nasdaq 100",
"Nifty 50",
"Next 50",
"Midcap 150",
"Smallcap 250",
"Debt",
"Gold"
],
"textStyle": {
"color": "#888"
}
},
"series": [
{
"name": "Growth Contribution",
"type": "pie",
"radius": [
"36%",
"58%"
],
"center": [
"50%",
"52%"
],
"startAngle": 180,
"clockwise": false,
"label": {
"show": true,
"position": "outside",
"formatter": "{b} ({c}%)",
"color": "#888"
},
"data": [
{
"name": "Nasdaq 100",
"value": 63.61
},
{
"name": "Nifty 50",
"value": 3.44
},
{
"name": "Next 50",
"value": 1.76
},
{
"name": "Midcap 150",
"value": 0.43
},
{
"name": "Smallcap 250",
"value": 2.0
},
{
"name": "Debt",
"value": 4.4
},
{
"name": "Gold",
"value": 24.36
},
{
"name": "__placeholder__",
"value": 100.0,
"itemStyle": {
"color": "transparent"
},
"label": {
"show": false
},
"tooltip": {
"show": false
},
"labelLine": {
"show": false
}
}
]
},
{
"name": "Market Value Allocation",
"type": "pie",
"radius": [
"36%",
"58%"
],
"center": [
"50%",
"48%"
],
"startAngle": 180,
"clockwise": true,
"label": {
"show": true,
"position": "outside",
"formatter": "{b} ({c}%)",
"color": "#888"
},
"data": [
{
"name": "Nasdaq 100",
"value": 39.59
},
{
"name": "Nifty 50",
"value": 20.77
},
{
"name": "Next 50",
"value": 9.54
},
{
"name": "Midcap 150",
"value": 9.46
},
{
"name": "Smallcap 250",
"value": 4.45
},
{
"name": "Debt",
"value": 5.85
},
{
"name": "Gold",
"value": 10.35
},
{
"name": "__placeholder__",
"value": 100.01,
"itemStyle": {
"color": "transparent"
},
"label": {
"show": false
},
"tooltip": {
"show": false
},
"labelLine": {
"show": false
}
}
]
}
],
"toolbox": {
"show": true,
"feature": {
"saveAsImage": {
"title": "Download Chart",
"show": true
}
},
"iconStyle": {
"borderColor": "#888"
}
}
}{
"title": {
"text": "1 Portfolio Drift",
"left": "center",
"top": 0,
"textStyle": {
"color": "#888",
"fontSize": 16,
"fontWeight": 600
}
},
"tooltip": {
"trigger": "axis",
"axisPointer": {
"type": "shadow"
}
},
"grid": {
"left": "15%",
"right": "15%",
"bottom": "10%",
"top": "16%",
"containLabel": true
},
"xAxis": {
"type": "value",
"name": "Drift %",
"nameLocation": "middle",
"nameGap": 30,
"nameTextStyle": {
"color": "#888"
},
"axisLabel": {
"color": "#888"
},
"splitLine": {
"lineStyle": {
"color": "#666"
}
}
},
"yAxis": {
"type": "category",
"data": [
"Gold",
"Debt",
"Smallcap 250",
"Midcap 150",
"Next 50",
"Nifty 50",
"Nasdaq 100"
],
"axisLabel": {
"color": "#888"
}
},
"series": [
{
"name": "Drift",
"type": "bar",
"label": {
"show": true,
"formatter": "{c}%",
"color": "#888"
},
"data": [
{
"value": 0.35,
"itemStyle": {
"color": "#D4AF37"
},
"label": {
"position": "left"
}
},
{
"value": 0.85,
"itemStyle": {
"color": "#64748B"
},
"label": {
"position": "left"
}
},
{
"value": -0.55,
"itemStyle": {
"color": "#047857"
},
"label": {
"position": "right"
}
},
{
"value": -0.54,
"itemStyle": {
"color": "#10B981"
},
"label": {
"position": "right"
}
},
{
"value": -0.46,
"itemStyle": {
"color": "#F59E0B"
},
"label": {
"position": "right"
}
},
{
"value": 0.77,
"itemStyle": {
"color": "#F97316"
},
"label": {
"position": "left"
}
},
{
"value": -0.41,
"itemStyle": {
"color": "#2563EB"
},
"label": {
"position": "right"
}
}
]
}
],
"toolbox": {
"show": true,
"feature": {
"saveAsImage": {
"title": "Download Chart",
"show": true
}
},
"iconStyle": {
"borderColor": "#888"
}
}
}Performance & Drift Observations
- Overall Portfolio: XIRR eased to 14.43% (from 16.92%). Nifty 50 was the only asset class whose XIRR rose, from 0.50% to 1.82%.
- Nasdaq 100 fell back. Its XIRR fell from 34.38% to 27.95%, and its allocation fell from 41.89% to 39.59%, even though the sleeve is still the largest source of gains.
- XIRR also fell sharply in the smaller Indian sleeves. Next 50 moved from 11.79% to 5.73%, Midcap 150 from 8.10% to 1.37%, and Smallcap 250 from 27.99% to 14.22%. These sleeves are only 1y 4m old, so their XIRRs swing more than the older ones.
- Nasdaq 100 and Gold together account for 49.94% of the portfolio’s current allocation, but have contributed 87.97% of its cumulative gains. The Capital-Efficiency Multiple (
Growth Share ÷ Allocation) shows Gold at 2.35x and Nasdaq at 1.61x, while Nifty sits at 0.17x. - Total Drift Decreases: With the large Nasdaq overweight gone, Total Drift narrowed from 3.30% to 1.97%.
Last month’s investment was planned to leave Nasdaq 100 at +1.15% overweight. A month later it sits at -0.41%, without selling anything. This is why I follow perpetual rebalancing rather than react to a single month’s move.
Drift Correction aka Monthly Investment
The table below consolidates the pre-investment state (Oct 30 EOD prices), the monthly investment allocation, and the planned post-investment state:
| Asset Class | Current | Pre Drift | New Invest | Post Invest | Post Drift | Target |
|---|---|---|---|---|---|---|
| Nasdaq 100 | 39.59% | -0.41% | 42.78% | 39.63% | -0.37% | 40.00% |
| Nifty 50 | 20.77% | +0.77% | 0.00% | 20.49% | +0.49% | 20.00% |
| Next 50 | 9.54% | -0.46% | 16.53% | 9.63% | -0.37% | 10.00% |
| Midcap 150 | 9.46% | -0.54% | 22.41% | 9.63% | -0.37% | 10.00% |
| Smallcap 250 | 4.45% | -0.55% | 18.27% | 4.63% | -0.37% | 5.00% |
| Debt | 5.85% | +0.85% | 0.00% | 5.77% | +0.77% | 5.00% |
| Gold | 10.35% | +0.35% | 0.00% | 10.21% | +0.21% | 10.00% |
| Total | 100.00% | 1.97% | 100.00% | 100.00% | 1.47% | 100.00% |
A new allocation of 1.39% of the pre-investment portfolio was planned to result in a drift correction of 0.50% (from 1.97% to 1.47%).
Definitions
- Asset Class: Underlying asset class part of the 1 Portfolio
- Current: Portfolio allocation before new investment (as of Oct 30 EOD)
- Pre Drift: Deviation from target at plan time (sum of positive values = total drift)
- New Invest: Percentage of this month’s investment directed to each asset class
- Post Invest: Estimated allocation after the investment
- Post Drift: Estimated drift after investment
- Target: Target allocation for the asset class
- Total Drift: Drift is calculated as the sum of positive deviations from target allocations
This chart shows how this month’s new investment moves each asset’s drift closer to its target line. No asset class moves further away this month.
{
"height": "700px",
"title": {
"text": "Drift Correction aka Monthly Investment",
"left": "center",
"textStyle": {
"color": "#888"
}
},
"tooltip": {
"trigger": "axis",
"axisPointer": {
"type": "shadow"
}
},
"legend": {
"data": [
"Pre Drift",
"Post Drift",
"Improvement",
"Improvement (Evaporated)",
"Worsening",
"New Water Level"
],
"bottom": 0,
"textStyle": {
"color": "#888"
}
},
"toolbox": {
"show": true,
"feature": {
"saveAsImage": {
"title": "Download Chart",
"show": true
}
},
"iconStyle": {
"borderColor": "#888"
}
},
"grid": {
"left": "3%",
"right": "4%",
"bottom": "15%",
"containLabel": true
},
"xAxis": {
"type": "category",
"data": [
"Nasdaq 100",
"Nifty 50",
"Next 50",
"Midcap 150",
"Smallcap 250",
"Debt",
"Gold"
],
"axisLabel": {
"interval": 0,
"rotate": 30,
"color": "#888"
}
},
"yAxis": {
"type": "value",
"name": "Drift (%)",
"min": -1.0,
"max": 1.0,
"axisLabel": {
"formatter": "{value}%",
"color": "#888"
},
"nameTextStyle": {
"color": "#888"
},
"splitLine": {
"lineStyle": {
"color": "#666"
}
}
},
"series": [
{
"name": "Pre Drift",
"type": "bar",
"data": [],
"itemStyle": {
"color": "#3b82f6"
}
},
{
"name": "Post Drift",
"type": "bar",
"data": [],
"itemStyle": {
"color": "#1e40af"
}
},
{
"name": "Improvement",
"type": "bar",
"data": [],
"itemStyle": {
"color": "#22c55e"
}
},
{
"name": "Improvement (Evaporated)",
"type": "bar",
"data": [],
"itemStyle": {
"color": "#22c55e",
"opacity": 0.4,
"decal": {
"symbol": "rect",
"color": "rgba(0,0,0,0.2)",
"dashArrayX": [
1,
0
],
"dashArrayY": [
2,
4
],
"rotation": 0.785
}
}
},
{
"name": "Worsening",
"type": "bar",
"data": [],
"itemStyle": {
"color": "#ef4444",
"opacity": 0.4,
"decal": {
"symbol": "rect",
"color": "rgba(0,0,0,0.2)",
"dashArrayX": [
1,
0
],
"dashArrayY": [
2,
4
],
"rotation": 0.785
}
}
},
{
"name": "New Water Level",
"type": "line",
"data": [],
"itemStyle": {
"color": "#1e40af"
},
"lineStyle": {
"type": "dashed",
"color": "#1e40af",
"width": 2
},
"markLine": {
"symbol": "none",
"silent": true,
"label": {
"show": false
},
"lineStyle": {
"type": "dashed",
"color": "#1e40af",
"width": 2
},
"data": [
{
"yAxis": -0.37
}
]
}
},
{
"name": "Empty",
"type": "bar",
"barWidth": "70%",
"stack": "main",
"data": [
-0.37,
0,
-0.37,
-0.37,
-0.37,
0,
0
],
"itemStyle": {
"color": "transparent"
},
"tooltip": {
"show": false
}
},
{
"name": "Neg Delta",
"type": "bar",
"barWidth": "70%",
"stack": "main",
"data": [
{
"value": -0.04,
"itemStyle": {
"color": "#22c55e"
}
},
0,
{
"value": -0.09,
"itemStyle": {
"color": "#22c55e"
}
},
{
"value": -0.17,
"itemStyle": {
"color": "#22c55e"
}
},
{
"value": -0.18,
"itemStyle": {
"color": "#22c55e"
}
},
0,
0
],
"tooltip": {
"show": false
}
},
{
"name": "Neg Base",
"type": "bar",
"barWidth": "70%",
"stack": "main",
"data": [
{
"value": -0.59,
"itemStyle": {
"color": "#3b82f6"
}
},
{
"value": -1.0,
"itemStyle": {
"color": "#1e40af"
}
},
{
"value": -0.54,
"itemStyle": {
"color": "#3b82f6"
}
},
{
"value": -0.46,
"itemStyle": {
"color": "#3b82f6"
}
},
{
"value": -0.45,
"itemStyle": {
"color": "#3b82f6"
}
},
{
"value": -1.0,
"itemStyle": {
"color": "#1e40af"
}
},
{
"value": -1.0,
"itemStyle": {
"color": "#1e40af"
}
}
],
"tooltip": {
"show": false
}
},
{
"name": "Pos Base",
"type": "bar",
"barWidth": "70%",
"stack": "main",
"data": [
0,
{
"value": 0.49,
"itemStyle": {
"color": "#1e40af"
}
},
0,
0,
0,
{
"value": 0.77,
"itemStyle": {
"color": "#1e40af"
}
},
{
"value": 0.21,
"itemStyle": {
"color": "#1e40af"
}
}
],
"tooltip": {
"show": false
}
},
{
"name": "Pos Delta",
"type": "bar",
"barWidth": "70%",
"stack": "main",
"data": [
0,
{
"value": 0.28,
"itemStyle": {
"color": "#22c55e",
"opacity": 0.4,
"decal": {
"symbol": "rect",
"color": "rgba(0,0,0,0.2)",
"dashArrayX": [
1,
0
],
"dashArrayY": [
2,
4
],
"rotation": 0.785
}
}
},
0,
0,
0,
{
"value": 0.08,
"itemStyle": {
"color": "#22c55e",
"opacity": 0.4,
"decal": {
"symbol": "rect",
"color": "rgba(0,0,0,0.2)",
"dashArrayX": [
1,
0
],
"dashArrayY": [
2,
4
],
"rotation": 0.785
}
}
},
{
"value": 0.14,
"itemStyle": {
"color": "#22c55e",
"opacity": 0.4,
"decal": {
"symbol": "rect",
"color": "rgba(0,0,0,0.2)",
"dashArrayX": [
1,
0
],
"dashArrayY": [
2,
4
],
"rotation": 0.785
}
}
}
],
"tooltip": {
"show": false
}
},
{
"name": "Pre Drift",
"type": "line",
"data": [
-0.41,
0.77,
-0.46,
-0.54,
-0.55,
0.85,
0.35
],
"itemStyle": {
"color": "#3b82f6"
},
"lineStyle": {
"opacity": 0
},
"symbol": "none"
},
{
"name": "Post Drift",
"type": "line",
"data": [
-0.37,
0.49,
-0.37,
-0.37,
-0.37,
0.77,
0.21
],
"itemStyle": {
"color": "#1e40af"
},
"lineStyle": {
"opacity": 0
},
"symbol": "none"
},
{
"name": "Improvement",
"type": "line",
"data": [
0.04,
"-",
0.09,
0.17,
0.18,
"-",
"-"
],
"itemStyle": {
"color": "#22c55e"
},
"lineStyle": {
"opacity": 0
},
"symbol": "none"
},
{
"name": "Worsening",
"type": "line",
"data": [
"-",
"-",
"-",
"-",
"-",
"-",
"-"
],
"itemStyle": {
"color": "#ef4444"
},
"lineStyle": {
"opacity": 0
},
"symbol": "none"
}
]
}- Moving towards 0 is improvement and moving away from 0 is worsening.
- Passive Dilution, for Nifty 50, Debt and Gold, isn’t new capital correcting the overweight — it’s the natural dilution of their share as the rest of the portfolio grows, since they received zero new investment this cycle.
Allocation Key Observations
The four underweight sleeves (Nasdaq 100, Next 50, Midcap 150 and Smallcap 250) all level out at -0.37%. Nifty 50, the fifth equity sleeve, is overweight and received nothing. For comparison, September brought four sleeves to a common level and October brought three.
The new investment was calculated using a Forward Water-Filling approach. Capital is distributed across underweight assets until the remaining underweights converge on a common “water level.”
Nasdaq 100
Nasdaq 100 received the largest share at 42.78%, but its drift only improved from -0.41% to -0.37%. With a 40% target, it needs a large share of new capital just to keep its weight as the portfolio grows.
Next 50 & Midcap 150
Next 50 (16.53%) and Midcap 150 (22.41%) continued to receive capital, moving from -0.46% and -0.54% to the water level.
Smallcap 250
Smallcap 250 received 18.27%, its first new capital since May 2026. It had been closer to target than the water level, and even-drift optimization kept new capital away until the others caught up. At -0.55% it is now the most underweight sleeve.
Nifty 50, Debt & Gold
No allocations were directed here as they are overweight. Their drift eases through passive dilution: Nifty 50 from +0.77% to +0.49%, Debt from +0.85% to +0.77%, and Gold from +0.35% to +0.21%.
Drift Correction History
Last month Nasdaq 100 received nothing and Nifty 50 received over half. This month that reversed. These percentages are not tactical allocation decisions or market forecasts. They are the mechanical output of the rebalancing algorithm after accounting for the portfolio’s current drift and the month’s available capital.
This table traces how the framework has mechanically shifted the flow of new capital month over month to correct portfolio drift.
| Asset Class | Target | Start Alloc | Apr 26 | May 26 | Jun 26 | Jul 26 | Aug 26 | Sep 26 | Oct 26 | Nov 26 | End Alloc |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Nasdaq 100 | 40.00% | 36.08% | 65.00% | 53.79% | 12.44% | 59.01% | 85.02% | 46.25% | 0.00% | 42.78% | 39.63% |
| Nifty 50 | 20.00% | 19.73% | 10.71% | 25.76% | 77.44% | 8.31% | 4.87% | 40.53% | 54.96% | 0.00% | 20.49% |
| Next 50 | 10.00% | 9.42% | 10.71% | 9.09% | 6.59% | 16.34% | 0.00% | 9.30% | 19.84% | 16.53% | 9.63% |
| Midcap 150 | 10.00% | 9.57% | 9.29% | 9.09% | 3.54% | 16.34% | 10.11% | 3.92% | 25.20% | 22.41% | 9.63% |
| Smallcap 250 | 5.00% | 4.80% | 4.29% | 2.27% | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% | 18.27% | 4.63% |
| Debt | 5.00% | 7.05% | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% | 5.77% |
| Gold | 10.00% | 13.36% | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% | 10.21% |
| Total | 100.00% | 100.00% | 100.00% | 100.00% | 100.00% | 100.00% | 100.00% | 100.00% | 100.00% | 100.00% | 100.00% |
| Total Post Drift | 5.41% | 4.89% | 3.67% | 2.76% | 1.60% | 1.68% | 1.90% | 2.27% | 1.47% |
{
"title": {
"text": "Historical Capital Allocation & Total Post Drift",
"left": "center",
"textStyle": {
"color": "#888"
}
},
"tooltip": {
"trigger": "axis",
"axisPointer": {
"type": "shadow"
}
},
"legend": {
"bottom": 0,
"textStyle": {
"color": "#888"
},
"data": [
"Nasdaq 100",
"Nifty 50",
"Next 50",
"Midcap 150",
"Smallcap 250",
"Debt",
"Gold",
"Total Post Drift"
]
},
"grid": {
"left": "3%",
"right": "4%",
"bottom": "15%",
"containLabel": true
},
"xAxis": {
"type": "category",
"axisLabel": {
"color": "#888"
},
"data": [
"Apr 26",
"May 26",
"Jun 26",
"Jul 26",
"Aug 26",
"Sep 26",
"Oct 26",
"Nov 26"
]
},
"yAxis": [
{
"type": "value",
"name": "Allocation %",
"max": 100,
"nameTextStyle": {
"color": "#888"
},
"axisLabel": {
"formatter": "{value}%",
"color": "#888"
},
"splitLine": {
"lineStyle": {
"color": "#666"
}
}
},
{
"type": "value",
"name": "Total Drift %",
"nameTextStyle": {
"color": "#888"
},
"axisLabel": {
"formatter": "{value}%",
"color": "#888"
},
"splitLine": {
"show": false
}
}
],
"color": [
"#2563EB",
"#F97316",
"#F59E0B",
"#10B981",
"#047857",
"#64748B",
"#D4AF37",
"#E11D48"
],
"series": [
{
"name": "Nasdaq 100",
"type": "bar",
"stack": "total",
"data": [
65.0,
53.79,
12.44,
59.01,
85.02,
46.25,
0.0,
42.78
]
},
{
"name": "Nifty 50",
"type": "bar",
"stack": "total",
"data": [
10.71,
25.76,
77.44,
8.31,
4.87,
40.53,
54.96,
0.0
]
},
{
"name": "Next 50",
"type": "bar",
"stack": "total",
"data": [
10.71,
9.09,
6.59,
16.34,
0.0,
9.3,
19.84,
16.53
]
},
{
"name": "Midcap 150",
"type": "bar",
"stack": "total",
"data": [
9.29,
9.09,
3.54,
16.34,
10.11,
3.92,
25.2,
22.41
]
},
{
"name": "Smallcap 250",
"type": "bar",
"stack": "total",
"data": [
4.29,
2.27,
0.0,
0.0,
0.0,
0.0,
0.0,
18.27
]
},
{
"name": "Debt",
"type": "bar",
"stack": "total",
"data": [
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0
]
},
{
"name": "Gold",
"type": "bar",
"stack": "total",
"data": [
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0
]
},
{
"name": "Total Post Drift",
"type": "line",
"yAxisIndex": 1,
"lineStyle": {
"width": 3
},
"data": [
4.89,
3.67,
2.76,
1.6,
1.68,
1.9,
2.27,
1.47
]
}
],
"toolbox": {
"show": true,
"feature": {
"saveAsImage": {
"title": "Download Chart",
"show": true,
"iconStyle": {
"borderColor": "#888"
}
}
},
"iconStyle": {
"borderColor": "#888"
}
}
}The 1.47% Total Post Drift is the lowest in this series.
Investment Stack
| Tool | Region | Type | Purpose |
|---|---|---|---|
| MF Central | India | Execution | Execution of Buy/Sell for Indian Mutual Funds directly with KRA agencies. |
| CAMS Online | India | Reporting | Generating the combined reporting (CAS) which is imported into RealValue Portfolio. |
| Interactive Brokers (IBKR) | International | Execution & Reporting | Execution and data source for Irish ETF tracking. |
| BHIM + ICICI Bank | International | Execution | Sending money from Indian bank account to US broker account (INR to USD) using FX Retail and Bharat Connect Forex. |
| RealValue FX Engine | International | Planning & Tracking | Computing the USD that we can send based on the allocated INR, and the true transaction cost. |
| RealValue Portfolio | All | Tracking | Tracking goals and asset classes, and computing the portfolio’s XIRR. |
| RealValue Family SIP Allocator | All | Planning | Used for dynamic monthly investment planning and drift correction allocation. |
Reflections
First Working Day of the Month
The plan, the FX remittance and the ETF purchase all landed on November 2, the first working day of the month. This is the First Working Day of the Next Month policy I moved to last month. The day had four domestic mutual fund transactions and one ANAU purchase that took the whole day from start to finish.
Back to International
Last month’s fully domestic investment was simple. This month brought back the FX remittance, TCS and live-market ETF buying, and the costs below are the price of keeping that exposure.
1. Buying USD (BHIM + ICICI)
| Time (Nov 2) | Source | Update |
|---|---|---|
| 09:48 | ICICI SMS | One-time AutoPay mandate created towards Axis Bank for ₹XXXX, RRN XXXX |
| 09:49 | ICICI SMS | Mandate of ₹XXXX raised by Axis Bank redeemed, RRN XXXX |
| 09:49 | Clearcorp SMS | FX Retail Trade No. XXXX: bought USD XXXX at a final price of ₹XXXX including bank fee, trade price ₹XXXX |
| 09:49 | ICICI SMS | Forex deal Trade No. XXXX available for utilisation |
| 09:53 | ICICI SMS | OTP XXXX for the Money2World request |
| 09:54 | ICICI SMS | Overseas fund transfer request XXXX for USD XXXX received and in process |
| 13:57 | ICICI SMS | Account XXXX credited ₹XXXX, BBPS remittance XXXX |
| 13:57 | ICICI SMS | Account XXXX debited ₹XXXX for USD XXXX |
| 15:52 | ICICI SMS | Overseas fund transfer request XXXX for USD XXXX processed |
| 16:23 | ICICI SMS | Overseas fund transfer request XXXX for USD XXXX credited to receiver account XXXX |
2. Notify IBKR
| Time (Nov 2) | Source | Update |
|---|---|---|
| 10:09 | IBKR notice | Intent to transfer USD XXXX via bank wire to account XXXX, confirmation number XXXX |
| 16:00 | IBKR notice | USD XXXX wire deposit for account XXXX received and available |
3. Execute Trade on IBKR
| Time (Nov 2) | Source | Update |
|---|---|---|
| 16:12 | IBKR | Bought ANAU with a limit order via SMART, executed on AQXECH |
That is about 6 minutes to initiate the transfer, approximately 6 hours for the money to land in IBKR, and another 6 minutes to buy with a limit order. On top of that, probably 15 minutes to update the paperwork for TCS recovery via salary TDS. Compared to all this, buying a mutual fund on MF Central takes about 2 minutes, though I still need to verify the units credit the next day.
Transaction Costs
With Nasdaq 100 back in the plan, this month’s FX remittance and ETF purchase cost 1.05% for this month’s volume, excluding TCS. That is a one-time cost, so here is how it compares with holding the Nasdaq 100 through an Indian mutual fund:
| ICICI Prudential NASDAQ 100 Index Fund (Direct Plan) | Irish ETF (ANAU) | |
|---|---|---|
| One-time cost | - | 1.05% |
| Annual cost (TER) | 0.53% | 0.14% |
The 0.39% annual TER difference covers the 1.05% in under three years, before counting the lower dividend tax. If my full monthly amount had gone to Nasdaq 100, the cost would have been about 0.72%, assuming the same brokerage.
The comparison assumes the local fund is open for fresh money. 3 Paths to Global Investing for Indians covers why local mutual funds aren’t always available and how Irish ETFs via LRS can substitute for them.
Taxation
| ICICI Prudential NASDAQ 100 Index Fund | Irish ETF (ANAU) | |
|---|---|---|
| US dividend withholding tax | 25% | 15% |
| LTCG tax (held 2+ years) | Up to 14.95% (with surcharge & cess) | Up to 14.95% (with surcharge & cess) |
| STCG tax (held under 2 years) | Up to 35.88% (with surcharge & cess) | Up to 35.88% (with surcharge & cess) |
Both surcharge-inclusive rates assume a 15% surcharge. Capital gains tax doesn’t change the comparison, since the same rules apply to both. Either way, I need to stay invested for at least 2 years to get LTCG treatment, which suits a long-term holding anyway. Dividend tax leakage is covered in What to Buy - Irish ETFs vs US ETFs.
Waiting for Gold and Debt
I am eagerly waiting for Total Drift to go below 1%, and for the day I can resume buying Gold. Gold has received no new capital in this series, and at a planned +0.21% it is now the closest of the overweight sleeves to its target. Debt, at a planned +0.77%, seems likely to take longer unless the equity sleeves rebound across the board.
Building in Public
Software Updates
| Project | Details |
|---|---|
| Xfina | Added parsers for public market data, including AMFI NAV history, NSE and NSE Indices, MCX, iShares, Tiingo, WSJ, MSCI and Nasdaq, for the Portfolio Engine to use. The web app also moved to xfina-ui, the theme and components shared across the xfina.dev sites. |
| Xfina Data | Published monthly central bank policy rates for India and the US, sourced from the BIS, to use as the risk-free rate when computing the Sharpe ratio. data.xfina.dev is now on xfina-ui, with a feedback card on every page and a dataset page that fits a phone. |
| Xfina Labs | The Portfolio Engine now has a design mock, to understand how a multi-asset portfolio would have behaved historically over a long time, using the available data sources. It is an innovative bring-your-own-data approach: you download the data from its source and import it, and it stays in your browser. Wherever the data can be republished, it has moved into Xfina Data. The figures are illustrative until Xfingine is connected. |
| Slidetake | A side track to fast-track video publishing: a markdown deck where every slide is a take. The story is in Building Slidetake. |
| Xsteer | Not resumed yet. |
New Content & Resources
| Title | Summary |
|---|---|
| Building Wealth Digest | The newsletter starts this month, covering this report and the other explorations I have done. |
| State of the 1 Portfolio (October 2026) - Slides | Last month’s report as a short slide deck, alongside decks for FX Retail via Bharat Connect, Irish vs US ETFs and Selecting the Global Indexes. I am planning to add videos for the book chapters and FX Retail as well. |
Work on The Global Indian Investor book is stalled. Content writing is taking a backseat while I build the infrastructure for the personal finance systems I am working on.
Transparency Note
This portfolio reflects my personal investment strategy and risk tolerance. It is not investment advice. All returns, allocations, and XIRR figures — including for international assets like Nasdaq 100 — are tracked and computed in INR, so currency movement is baked into the numbers rather than shown separately.