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 September 30.
| Portfolio Strategy | Global Multi-Asset Passive Investing using Indian Mutual Funds & Irish ETFs | |||
| Equity Allocation | Target (2026-27) 85.00% (unchanged) | Current 83.59% ▲ 82.77% | India 41.70% ▼ 43.30% | US 41.89% ▲ 39.47% |
| 1 Portfolio | XIRR 16.92% ▼ 18.76% | Drift 3.30% ▲ 2.24% | New Investment 1.81% ▼ 2.02% | |
| Rebalancing Method | Perpetual Rebalancing | |||
What Changed This Month
September was another clear demonstration of why the 1 Portfolio uses perpetual rebalancing. Nasdaq 100 moved from -0.53% underweight to +1.89% overweight as its portfolio allocation rose to 41.89%. Meanwhile, Nifty 50 became the largest underweight at -1.24%.
Rather than selling Nasdaq or trying to predict which market will recover next, the framework simply redirected this month’s new capital toward the underweight domestic equity sleeves.
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 (September 2026) report, which was likewise published pre-investment — so this is a like-for-like comparison.
| Asset Class | Age | XIRR | Growth Share | Current Allocation (Sep 30 EOD) | Target Allocation (for TY 2026-27) | Drift |
|---|---|---|---|---|---|---|
| Nasdaq 100 | 4y 3m | 34.38% ▲ 33.72% | 65.81% ▲ 55.02% | 41.89% ▲ 39.47% | 40.00% | +1.89% ▲ -0.53% |
| Nifty 50 | 4y 3m | 0.50% ▼ 4.10% | 0.74% ▼ 5.46% | 18.76% ▼ 19.18% | 20.00% | -1.24% ▼ -0.82% |
| Next 50 | 1y 3m | 11.79% ▼ 27.26% | 2.58% ▼ 4.60% | 9.22% ▼ 9.61% | 10.00% | -0.78% ▼ -0.39% |
| Midcap 150 | 1y 3m | 8.10% ▼ 24.79% | 1.81% ▼ 4.29% | 9.12% ▼ 9.72% | 10.00% | -0.88% ▼ -0.28% |
| Smallcap 250 | 1y 3m | 27.99% ▼ 42.61% | 2.78% ▼ 3.27% | 4.61% ▼ 4.79% | 5.00% | -0.39% ▼ -0.21% |
| Debt | 4y 3m | 7.16% ▼ 7.61% | 3.82% ▲ 3.61% | 5.75% ▼ 5.78% | 5.00% | +0.75% ▼ +0.78% |
| Gold | 4y 3m | 33.00% ▼ 38.22% | 22.46% ▼ 23.75% | 10.66% ▼ 11.46% | 10.00% | +0.66% ▼ +1.46% |
| Total | 16.92% ▼ 18.76% | 100.00% | 100.00% | 100.00% | +3.30% ▲ +2.24% |
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).
- 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": 65.81
},
{
"name": "Nifty 50",
"value": 0.74
},
{
"name": "Next 50",
"value": 2.58
},
{
"name": "Midcap 150",
"value": 1.81
},
{
"name": "Smallcap 250",
"value": 2.78
},
{
"name": "Debt",
"value": 3.82
},
{
"name": "Gold",
"value": 22.46
},
{
"name": "__placeholder__",
"value": 99.99,
"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": 41.89
},
{
"name": "Nifty 50",
"value": 18.76
},
{
"name": "Next 50",
"value": 9.22
},
{
"name": "Midcap 150",
"value": 9.12
},
{
"name": "Smallcap 250",
"value": 4.61
},
{
"name": "Debt",
"value": 5.75
},
{
"name": "Gold",
"value": 10.66
},
{
"name": "__placeholder__",
"value": 100.0,
"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.66,
"itemStyle": {
"color": "#D4AF37"
},
"label": {
"position": "left"
}
},
{
"value": 0.75,
"itemStyle": {
"color": "#64748B"
},
"label": {
"position": "left"
}
},
{
"value": -0.39,
"itemStyle": {
"color": "#047857"
},
"label": {
"position": "right"
}
},
{
"value": -0.88,
"itemStyle": {
"color": "#10B981"
},
"label": {
"position": "right"
}
},
{
"value": -0.78,
"itemStyle": {
"color": "#F59E0B"
},
"label": {
"position": "right"
}
},
{
"value": -1.24,
"itemStyle": {
"color": "#F97316"
},
"label": {
"position": "right"
}
},
{
"value": 1.89,
"itemStyle": {
"color": "#2563EB"
},
"label": {
"position": "left"
}
}
]
}
],
"toolbox": {
"show": true,
"feature": {
"saveAsImage": {
"title": "Download Chart",
"show": true
}
},
"iconStyle": {
"borderColor": "#888"
}
}
}Performance & Drift Observations
- Overall Portfolio: XIRR eased to 16.92% (from 18.76%), largely driven by the broader correction in the domestic Indian markets. Nifty 50 remains the primary laggard, dropping its XIRR to 0.50%.
- Nasdaq 100 continued to outperform, with its XIRR increasing to 34.38% from 33.72%. This strong relative performance pushed its portfolio allocation from 39.47% to 41.89%, moving it from a -0.53% underweight position all the way to +1.89% overweight.
- Gold and Debt both saw their portfolio XIRRs decline. Gold fell from 38.22% to 33.00%, while Debt eased from 7.61% to 7.16%. However, Gold continued to make a disproportionately large contribution to the total portfolio gains.
- Nasdaq 100 and Gold together account for 52.55% of the portfolio’s current allocation, but have contributed 88.27% of its cumulative gains. This yields a massive Capital-Efficiency Multiple (
Growth Share ÷ Allocation): Gold punches at 2.11x its weight, and Nasdaq at 1.57x, while Nifty currently sits at 0.04x. - Total Drift Increases: Due to Nasdaq’s outperformance, Total Drift widened further from 2.24% to 3.30%.
This is precisely why the portfolio does not chase performance. High growth contribution does not change the target allocation; it simply causes the outperforming asset to become increasingly overweight until new capital is redirected elsewhere.
Drift Correction aka Monthly Investment
The table below consolidates the pre-investment state (Sep 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 | 41.89% | +1.89% | 0.00% | 41.15% | +1.15% | 40.00% |
| Nifty 50 | 18.76% | -1.24% | 54.96% | 19.40% | -0.60% | 20.00% |
| Next 50 | 9.22% | -0.78% | 19.84% | 9.40% | -0.60% | 10.00% |
| Midcap 150 | 9.12% | -0.88% | 25.20% | 9.40% | -0.60% | 10.00% |
| Smallcap 250 | 4.61% | -0.39% | 0.00% | 4.53% | -0.47% | 5.00% |
| Debt | 5.75% | +0.75% | 0.00% | 5.65% | +0.65% | 5.00% |
| Gold | 10.66% | +0.66% | 0.00% | 10.47% | +0.47% | 10.00% |
| Total | 100.00% | 3.30% | 100.00% | 100.00% | 2.27% | 100.00% |
A new allocation of 1.81% of the pre-investment portfolio was planned to result in a drift correction of 1.03% (from 3.30% to 2.27%).
Definitions
- Asset Class: Underlying asset class part of the 1 Portfolio
- Current: Portfolio allocation before new investment (as of Sep 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 — or, in the case of Smallcap 250’s passive dilution, further from — its target line.
{
"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": -2.0,
"max": 2.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.6
}
]
}
},
{
"name": "Empty",
"type": "bar",
"barWidth": "70%",
"stack": "main",
"data": [
0,
-0.6,
-0.6,
-0.6,
-0.39,
0,
0
],
"itemStyle": {
"color": "transparent"
},
"tooltip": {
"show": false
}
},
{
"name": "Neg Delta",
"type": "bar",
"barWidth": "70%",
"stack": "main",
"data": [
0,
{
"value": -0.64,
"itemStyle": {
"color": "#22c55e"
}
},
{
"value": -0.18,
"itemStyle": {
"color": "#22c55e"
}
},
{
"value": -0.28,
"itemStyle": {
"color": "#22c55e"
}
},
{
"value": -0.08,
"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
}
}
},
0,
0
],
"tooltip": {
"show": false
}
},
{
"name": "Neg Base",
"type": "bar",
"barWidth": "70%",
"stack": "main",
"data": [
{
"value": -2.0,
"itemStyle": {
"color": "#1e40af"
}
},
{
"value": -0.76,
"itemStyle": {
"color": "#3b82f6"
}
},
{
"value": -1.22,
"itemStyle": {
"color": "#3b82f6"
}
},
{
"value": -1.12,
"itemStyle": {
"color": "#3b82f6"
}
},
{
"value": -1.53,
"itemStyle": {
"color": "#1e40af"
}
},
{
"value": -2.0,
"itemStyle": {
"color": "#1e40af"
}
},
{
"value": -2.0,
"itemStyle": {
"color": "#1e40af"
}
}
],
"tooltip": {
"show": false
}
},
{
"name": "Pos Base",
"type": "bar",
"barWidth": "70%",
"stack": "main",
"data": [
{
"value": 1.15,
"itemStyle": {
"color": "#1e40af"
}
},
0,
0,
0,
0,
{
"value": 0.65,
"itemStyle": {
"color": "#1e40af"
}
},
{
"value": 0.47,
"itemStyle": {
"color": "#1e40af"
}
}
],
"tooltip": {
"show": false
}
},
{
"name": "Pos Delta",
"type": "bar",
"barWidth": "70%",
"stack": "main",
"data": [
{
"value": 0.74,
"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,
0,
{
"value": 0.1,
"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.19,
"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": [
1.89,
-1.24,
-0.78,
-0.88,
-0.39,
0.75,
0.66
],
"itemStyle": {
"color": "#3b82f6"
},
"lineStyle": {
"opacity": 0
},
"symbol": "none"
},
{
"name": "Post Drift",
"type": "line",
"data": [
1.15,
-0.6,
-0.6,
-0.6,
-0.47,
0.65,
0.47
],
"itemStyle": {
"color": "#1e40af"
},
"lineStyle": {
"opacity": 0
},
"symbol": "none"
},
{
"name": "Improvement",
"type": "line",
"data": [
"-",
0.64,
0.18,
0.28,
"-",
"-",
"-"
],
"itemStyle": {
"color": "#22c55e"
},
"lineStyle": {
"opacity": 0
},
"symbol": "none"
},
{
"name": "Worsening",
"type": "line",
"data": [
"-",
"-",
"-",
"-",
0.08,
"-",
"-"
],
"itemStyle": {
"color": "#ef4444"
},
"lineStyle": {
"opacity": 0
},
"symbol": "none"
}
]
}- Moving towards 0 is improvement and moving away from 0 is worsening.
- Passive Dilution, for Nasdaq 100, 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
Nifty 50, Next 50, and Midcap 150 perfectly leveled out at -0.60%. With Nasdaq 100 having flipped heavily overweight, the focus naturally returned entirely to domestic equity for this cycle’s investments.
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.”
The available capital was sufficient to bring the three most-underweight equity sleeves to a common water level of -0.60%. Smallcap 250 was already closer to target at -0.39%, so it received no capital this month.
Nifty 50, Midcap 150 & Next 50
These three sleeves received 100% of the new investment to pull them out of significant underweights, all successfully hitting the -0.60% water level.
Smallcap 250
Receiving zero allocation this month, the drift for Smallcap 250 experienced Passive Dilution: when an overweight or slightly underweight asset receives no new capital, its portfolio weight naturally falls as new capital is added elsewhere. Its drift passively widened from -0.39% to -0.47%.
Nasdaq 100, Debt & Gold
No allocations were directed here as they are overweight.
Drift Correction History
This month also proved exactly why the perpetual rebalancing framework is essential. By mechanically executing the math, we let the framework naturally shift weight to whichever side of the portfolio is trailing. Because of Nasdaq’s strong leap, it absorbed none of the new capital, and the domestic market correctly received 100% of the top-up.
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. Notice how wildly the allocation swings to adapt to market movements.
| Asset Class | Target | Start Alloc | Apr 26 | May 26 | Jun 26 | Jul 26 | Aug 26 | Sep 26 | Oct 26 | End Alloc |
|---|---|---|---|---|---|---|---|---|---|---|
| Nasdaq 100 | 40.00% | 36.08% | 65.00% | 53.79% | 12.44% | 59.01% | 85.02% | 46.25% | 0.00% | 41.15% |
| Nifty 50 | 20.00% | 19.73% | 10.71% | 25.76% | 77.44% | 8.31% | 4.87% | 40.53% | 54.96% | 19.40% |
| Next 50 | 10.00% | 9.42% | 10.71% | 9.09% | 6.59% | 16.34% | 0.00% | 9.30% | 19.84% | 9.40% |
| Midcap 150 | 10.00% | 9.57% | 9.29% | 9.09% | 3.54% | 16.34% | 10.11% | 3.92% | 25.20% | 9.40% |
| Smallcap 250 | 5.00% | 4.80% | 4.29% | 2.27% | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% | 4.53% |
| Debt | 5.00% | 7.05% | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% | 5.65% |
| Gold | 10.00% | 13.36% | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% | 10.47% |
| Total | 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% |
{
"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"
]
},
"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
]
},
{
"name": "Nifty 50",
"type": "bar",
"stack": "total",
"data": [
10.71,
25.76,
77.44,
8.31,
4.87,
40.53,
54.96
]
},
{
"name": "Next 50",
"type": "bar",
"stack": "total",
"data": [
10.71,
9.09,
6.59,
16.34,
0.0,
9.3,
19.84
]
},
{
"name": "Midcap 150",
"type": "bar",
"stack": "total",
"data": [
9.29,
9.09,
3.54,
16.34,
10.11,
3.92,
25.2
]
},
{
"name": "Smallcap 250",
"type": "bar",
"stack": "total",
"data": [
4.29,
2.27,
0.0,
0.0,
0.0,
0.0,
0.0
]
},
{
"name": "Debt",
"type": "bar",
"stack": "total",
"data": [
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
]
},
{
"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
]
}
],
"toolbox": {
"show": true,
"feature": {
"saveAsImage": {
"title": "Download Chart",
"show": true,
"iconStyle": {
"borderColor": "#888"
}
}
},
"iconStyle": {
"borderColor": "#888"
}
}
}Investment Stack
With zero new international investments this month, the stack remains simpler and completely focused on domestic execution.
| 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 | Reporting | Sourcing data for Irish ETF tracking, as no new executions were made this month. |
| 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
The Simplicity of Domestic Investments
This month’s investment process was incredibly uneventful and simple, primarily because 100% of the capital was routed to domestic equities. Without any TCS involved, the full allocated capital was available for immediate investment.
It was a stark reminder that if Indian Mutual Funds were accessible for Nasdaq 100, life would be an order of magnitude simpler with fewer moving parts. I would gladly accept a somewhat higher Total Expense Ratio (TER) to avoid the operational overhead of:
- Using FX Retail
- Dealing with Bank / BHIM failures
- Experimenting with multiple Forex options
- Buying ETFs manually during live market hours
- Tracking additional data beyond the automated CAMS CAS file
- Tracking TCS paid manually
- Working with the company payroll team to adjust TCS via Form 122
Unfortunately, the SEBI limits on international mutual funds force us down the direct equity route. Speaking of which, I am still struggling to get the bank to deduct the right TCS for last month’s LRS transaction.
Shifting the Investment Calendar
Previously, I experimented with the Salary Day = Investment Day philosophy, but it has introduced several friction points:
- Unpredictable Credit Timing: Salaries don’t always land at the start of the day; they sometimes arrive close to market cut-off times. This forces me to compulsively check my phone to see if the money has landed yet.
- Statement Lag for Xsteer: The new cashflow planner I am building (Xsteer) needs to support planning before the salary credit. HDFC Bank statements only reflect the credit on the following day.
- Double Work: I’ve ended up downloading statements on two consecutive days just to reconcile everything, wasting precious time.
- Skewed Monthly Calendar: Since salary deposit dates fluctuate around weekends and holidays, some calendar months record two investments while the subsequent month records zero, messing up tracking charts. Sometimes, a single month’s investment execution even spills over across two different calendar months.
Given these difficulties, I am switching back to a clean First Working Day of the Next Month policy. This shift brings back certainty. I can sit down for a single, focused session to execute everything—credit card bills, investments, and other payments—all at once. The objective isn’t to invest at the theoretically perfect moment. It is to have a deterministic process that requires almost no attention.
The ultimate goal remains the same: bring the total time spent managing personal finance to a sub-hour level, just once a month.
Building in Public
New Content & Resources
| Title | Summary |
|---|---|
| Building Wealth Digest | Added a subscription card to the site this month for my upcoming monthly newsletter covering the latest updates, learnings, and tools from my open-source financial stack. The setup is done and I already see some subscriptions rolling in! I will probably wait to build a bit more quorum before I start sending out the first issue. |
| State of the 1 Portfolio (September 2026) - Video | A detailed review of the ‘1 Portfolio’ as of September 2026, covering a dip in Nifty 50, Gold’s continued outperformance, the perpetual rebalancing strategy, and an update on the FX remittance route debacle. |
| 3 Ways Indian Investors Can Invest Globally - Video | A companion video to Chapter 2 of the book, comparing Mutual Funds, Indian ETFs, and direct LRS investing for global exposure. |
Software Updates
| Project | Details |
|---|---|
| Xfina | Added support for SBI forex card rate sheets, older ICICI monthly CSV exports, and HDFC credit card Excel exports (switched from CSV to Excel since Excel is the main format used across other credit cards). Also introduced automatic format detection. |
| Xfina Data | Published & Auto-syncing. Published and now auto-syncing data daily. The 4 core datasets required for Portfolio Engine and Xsteer have been loaded in. Crucially, the RealValue Portfolio tool on sakthipriyan.com has now been switched over to use these live Inflation and SBI TT rates directly from Xfina Data. |
| Xfina Labs | In Progress. Building the Portfolio Engine, a multi-asset browser-based backtesting tool. This project is currently prioritized over Xsteer because I want to make the underlying xfingine robust and far more capable before integrating it deeply into Xsteer. |
| Xsteer | In Progress. Work in progress, nothing has been formally shipped yet. I am researching further and refining the core ideas before getting the initial version out. |
(Note: I have moved all these repositories to their own dedicated xfina-dev and xsteer-in organizations this month!)
Given all this heavy progress across the software infrastructure stack, I couldn’t spend any time writing the next chapter for The Global Indian Investor book. That is something I actively need to carve out time for going forward.
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.