Your US Stocks Are Up 9%. Your Rupiah Return Says 17%. Here's the Other 8 Points.
5 min read
5 min read
If you hold US stocks or a US index fund and check your portfolio in rupiah, the number on screen has probably grown faster than the market did. That is not your imagination, and it is not a bonus you earned. It is the rupiah, doing arithmetic on your behalf.
A portfolio priced in a foreign currency has two returns stacked on top of each other, not one.
Total IDR return = (1 + Asset return in USD) × (1 + IDR/USD change) − 1
The first term is what the market actually did. The second is what the exchange rate did between the day you bought and today. Multiplying them, rather than adding them, matters once the numbers get large, but the intuition is simpler: even a flat market can show a double-digit rupiah "gain" if the rupiah weakened enough in the meantime.
As of 4 August 2026, one US dollar buys roughly Rp 18,033, against roughly Rp 16,700 at the start of the year. That is a rupiah depreciation of about 8% year to date. The pair spent the first half of the year sliding further than that, touching a record low near Rp 18,247 in early June, before partly stabilising.
Over the same stretch, the S&P 500 was up roughly 8-9% in US dollar terms through late July 2026, depending on the exact date measured.
Put those two together and an Indonesian investor holding a plain US index fund, who did nothing unusual, was sitting on close to 17-18% in rupiah terms while the underlying market moved about half that.
Say you converted Rp 167,000,000 to US dollars on 1 January 2026 (roughly $10,000 at that day's rate) and put it into a US index fund tracking the S&P 500.
| USD | IDR equivalent | |
|---|---|---|
| 1 Jan 2026, invested | $10,000 | Rp 167,000,000 |
| 4 Aug 2026, if only the market moved (+9%) | $10,900 | Rp 182,030,000 (converted at the old rate) |
| 4 Aug 2026, actual value, actual rate | $10,900 | Rp 196,559,700 (converted at Rp 18,033) |
The market alone earned you about Rp 15 million. The exchange rate, on top of that, added roughly another Rp 14.5 million, purely from the rupiah buying fewer dollars than it used to. Your statement shows one number. It is really two.
This is the part worth sitting with, because it cuts against how a rising balance usually feels.
A currency effect is a valuation change, not new productive capital. It does not compound the way a stock's earnings growth does. It exists only as long as you hold the position and the exchange rate stays where it moved to, and it reverses, fully, if the rupiah later strengthens back. Converting the position to rupiah tomorrow locks it in; leaving it invested keeps it exposed to reversing just as easily as it appeared.
This is also precisely why unrealized numbers deserve more scrutiny than realized ones, a distinction covered in realized vs unrealized gains: a currency-driven paper gain is unrealized in a stronger sense than a normal one, because the thing that produced it can move against you without your underlying asset doing anything at all.
The rupiah's 2026 slide has tracked a fairly ordinary set of macro pressures: a wide policy-rate gap that still favours holding dollars, softer Indonesian foreign exchange reserves, and periodic bouts of emerging-market capital flight tied to global risk sentiment. None of that is specific to your portfolio. It is the same USD/IDR rate every foreign holding you own gets marked against, which is why it is worth tracking on its own rather than only inside a single position. NetWort's macro page tracks IDR/USD alongside the Fed funds rate and BI rate side by side, which is the more useful place to watch it than inferring it from a portfolio balance after the fact.
The math above works the same way for any foreign-currency asset you hold: pull the IDR/USD rate on your purchase date, pull today's rate, and divide the actual IDR return by (1 + the currency's move) to isolate the asset's own return.
NetWort's Gain Insights view does this automatically and lines it up next to your total change, under the label "Currency effect", so you are not doing the division by hand every time you check. Pairing it with your XIRR, which already accounts for timing, gives a return figure that reflects what you actually did, not what the rupiah did around you.