← Back to app

Calculation Methodology

Version 1.0 · Last updated: October 2026

RealReturn calculates real, inflation-adjusted returns and compares them against benchmarks. This page explains exactly how.

1. Nominal return

The nominal return is calculated as the percentage change from the purchase value to the current value in the same currency:

Nominal return = (Current value − Cost basis) / Cost basis × 100%

Where Cost basis = quantity × purchase price and Current value = quantity × current price.

For positions denominated in a foreign currency, both the price change and the exchange-rate change contribute to the nominal return in the user's base currency.

2. Real (inflation-adjusted) return

We apply the Fisher equation to convert a nominal return to a real return:

1 + r_real = (1 + r_nominal) / (1 + r_cumulative_inflation)

The inflation used is the cumulative CPI for the position's currency over the exact holding period — not the latest annual rate scaled by days. The currency of each position determines which price index is used: TRY positions use actual month-by-month TÜFE data chained from the purchase date to today (sourced from TCMB/TÜİK via proxy). For USD, EUR, and GBP positions, the World Bank annual CPI rate (WDI: FP.CPI.TOTL.ZG) is used; it is distributed proportionally across the holding period. Annual-rate results for non-TRY currencies are approximate and are flagged with "~" in the UI. This matters especially for long holding periods in high-inflation environments, where a single annual rate extrapolated backwards can diverge significantly from actual cumulative inflation.

Where CPI data is not yet available for the most recent period (publication lag typically ranges from a few weeks to a few months for monthly series, up to a year for annual series), the gap is filled by extrapolating with the latest known rate. These estimates are flagged with "~" in the UI. Where no CPI data exists at all, the UI shows "—" rather than silently using a fallback.

When a portfolio contains positions in multiple currencies, each position's nominal return is first converted to the user's base currency (using the purchase-date FX rate stored at entry and today's live rate), then deflated with the base currency's cumulative inflation. The aggregate real return is the cost-weighted average of these per-position real returns in base currency. The dashboard shows "—" only when FX or inflation data are missing for the entire portfolio.

Inflation data coverage by base currency:

CurrencyInflation seriesPrecision
TRYTCMB/TÜİK monthly TÜFE (via OECD)Monthly
EUREurostat HICP (prc_hicp_midx, base 2015=100)Monthly
SEKEurostat HICPMonthly
NOKEurostat HICPMonthly
DKKEurostat HICPMonthly
USDWorld Bank WDI (FP.CPI.TOTL.ZG)Annual (~)
GBPWorld Bank WDIAnnual (~)
CADWorld Bank WDIAnnual (~)
AUDWorld Bank WDIAnnual (~)
CHFEurostat HICP (fallback: World Bank WDI)Monthly / Annual (~)
JPYWorld Bank WDIAnnual (~)
NZDWorld Bank WDIAnnual (~)

Inflation series selection rule: The series used is determined by the user's base currency and country. For EUR-base users in a eurozone country (e.g. Germany, France, Finland), that country's own Eurostat HICP series is used rather than the Euro area aggregate. For EUR-base users whose country is not a eurozone member, the Euro area (EA) HICP is used as the representative series. The label in the UI always reflects the actual series: "Germany HICP", "France HICP", "Euro area HICP", etc. — not a generic label.

"Annual (~)" means the year-by-year rate is interpolated using the holding-period formula; results are marked "~" in the UI when the approximation spans more than a few months.

A positive real return means the investment grew faster than inflation — purchasing power increased. A negative real return means inflation eroded the gains.

3. Currency adjustment

When an asset is priced in a currency different from the user's base currency, we convert using the exchange rate at the time of purchase and at the current date. The real return is then calculated in the base currency, so both price appreciation and currency fluctuations are reflected.

The same principle applies to benchmark comparisons: the benchmark is converted to the position's currency before the return is computed. A benchmark's currency is read from the Yahoo Finance meta.currency field — it is never inferred from the ticker symbol. When benchmark currency equals position currency, no conversion is applied.

4. Benchmark comparison

RealReturn supports several benchmarks. For each position, the benchmark is calculated as if the same amount had been invested in the chosen benchmark on the purchase date. Multiple purchases of the same asset, partial sales and closed positions are not yet modelled.

The benchmark return is always expressed in the position's currency before comparison. For example, S&P 500 (USD) vs. a TRY position uses the USD/TRY rate at purchase date and current date; a BIST100 (TRY) benchmark vs. a USD position divides by the USD/TRY rate. If the required exchange rate is unavailable, the benchmark card shows "—" rather than using the raw price silently.

Available benchmarks:

The benchmark return is then inflation-adjusted using the same Fisher equation so comparisons are apples-to-apples.

Inflation data accuracy note: For Turkey, monthly TÜFE series from TÜİK/TCMB (via OECD) are used; the last few weeks before the publication date are estimated with the most recent annual rate. For all other countries, the source is World Bank WDI (FP.CPI.TOTL.ZG) — annual averages for past years, with the current year extrapolated using the last published rate. WDI is typically 1–2 years delayed; the "est." marker appears when recent periods rely on extrapolation. MSCI World is proxied by URTH ETF on Yahoo Finance (adjusted close, dividends reinvested, USD-denominated; converted to the base currency via FX).

5. Opportunity cost

The opportunity cost (or gain) is the difference between what the benchmark would have returned and what the user's investment actually returned, expressed in the base currency:

Opportunity cost = Benchmark value today − Actual portfolio value today

A positive number means you "missed" this amount by choosing your investment over the benchmark. A negative number means you beat the benchmark.

6. Data sources

Data typeSourceUpdate frequency
Stock and ETF pricesYahoo Finance (via proxy)15-min delay during market hours
Turkish mutual funds (TEFAS)TEFAS APIEnd of day
Cryptocurrency pricesCoinGecko API~5 minutes
Exchange ratesFrankfurter API (ECB data)Daily
Gold & silver spot pricesgold-api.com~5 minutes
CPI / inflation dataWorld Bank API (WDI)Annual rate; lag up to 1 year
Deposit / savings ratesCentral bank publicationsUpdated when rates change

All data is provided for informational purposes only. Prices may be delayed or inaccurate. Past data is not guaranteed to be complete. See our Terms of Use.

7. Rounding and precision

Monetary values are displayed rounded to 2 decimal places in the UI. Internal calculations use full floating-point precision. Returns are shown as percentages rounded to 2 decimal places.

8. Limitations

Hesaplama Yöntemi

Sürüm 1.0 · Son güncelleme: Ekim 2026

RealReturn, enflasyona göre düzeltilmiş gerçek getirileri hesaplayarak kıyaslama ölçütleriyle karşılaştırır. Bu sayfa tam olarak nasıl yapıldığını açıklar.

1. Nominal getiri

Nominal getiri, aynı para biriminde satın alma değerinden bugünkü değere yüzdesel değişim olarak hesaplanır:

Nominal getiri = (Güncel değer − Maliyet) / Maliyet × 100%

Maliyet = adet × alış fiyatı ve Güncel değer = adet × güncel fiyat.

2. Reel (enflasyona göre düzeltilmiş) getiri

Nominal getiriyi reel getiriye dönüştürmek için Fisher denklemi kullanılır:

1 + r_reel = (1 + r_nominal) / (1 + r_kümülatif_enflasyon)

Kullanılan enflasyon, yıllık oran ölçeklenmesi değil; pozisyonun para biriminin tam tutma süresi boyunca kümülatif TÜFE/CPI'ıdır. Her pozisyon için hangi fiyat endeksinin kullanılacağını o pozisyonun para birimi belirler: TRY pozisyonları için TCMB/TÜİK kaynaklı aylık TÜFE verileri alış tarihinden bugüne zincirlenip bileşik hesaplanır. USD, EUR ve GBP pozisyonları için Dünya Bankası yıllık CPI oranı (WDI: FP.CPI.TOTL.ZG) kullanılır; tutma süresine orantılı olarak dağıtılır. TRY dışı para birimleri için yıllık oran tabanlı sonuçlar yaklaşıktır ve arayüzde "~" ile işaretlenir. Bu, özellikle uzun vadeli yatırımlarda ve yüksek enflasyon dönemlerinde kritik öneme sahiptir.

En güncel döneme ait CPI verisi henüz yayınlanmamışsa (yayın gecikmesi aylık seriler için birkaç hafta ile birkaç ay, yıllık seriler için bir yıla kadar uzayabilir), eksik dönem bilinen son oran ile tahmin edilir. Bu tahmini değerler arayüzde "~" ile işaretlenir. Hiç CPI verisi yoksa arayüz sessizce bir değer göstermek yerine "—" gösterir.

Portföyde birden fazla para biriminde pozisyon varsa her pozisyonun nominal getirisi önce temel para birimine çevrilir (alış tarihindeki kayıtlı kur ve bugünkü canlı kur kullanılarak), ardından temel para biriminin kümülatif enflasyonuyla düzeltilir. Dashboard toplam reel getirisi, bu pozisyon başına temel para birimi reel getirilerinin maliyet ağırlıklı ortalamasıdır. "—" yalnızca portföyün tamamı için kur ya da enflasyon verisi eksikse gösterilir.

Temel para birimine göre enflasyon verisi kapsamı:

Para birimiEnflasyon serisiHassasiyet
TRYTCMB/TÜİK aylık TÜFE (OECD üzerinden)Aylık
EUREurostat HICP (prc_hicp_midx, baz 2015=100)Aylık
SEKEurostat HICPAylık
NOKEurostat HICPAylık
DKKEurostat HICPAylık
USDDünya Bankası WDI (FP.CPI.TOTL.ZG)Yıllık (~)
GBPDünya Bankası WDIYıllık (~)
CADDünya Bankası WDIYıllık (~)
AUDDünya Bankası WDIYıllık (~)
CHFEurostat HICP (yedek: Dünya Bankası WDI)Aylık / Yıllık (~)
JPYDünya Bankası WDIYıllık (~)
NZDDünya Bankası WDIYıllık (~)

Enflasyon serisi seçim kuralı: Kullanılan seri, kullanıcının temel para birimi ve ülkesine göre belirlenir. EUR tabanı + avro bölgesi ülkesi (ör. Almanya, Fransa, Finlandiya): o ülkenin kendi Eurostat HICP serisi kullanılır, Avro bölgesi toplamı değil. EUR tabanı + avro bölgesi dışı ülke: temsili seri olarak Avro bölgesi (EA) HICP kullanılır. Arayüzdeki etiket her durumda gerçek seriyi yazar: "Germany HICP", "France HICP", "Euro area HICP" vb.

"Yıllık (~)" ifadesi, tutma süresi formülüyle yıllık oranın interpolate edildiğini gösterir; yaklaşımın birkaç ayı aşması halinde arayüzde "~" işareti görünür.

Pozitif reel getiri, yatırımın enflasyondan hızlı büyüdüğü anlamına gelir — satın alma gücü arttı. Negatif reel getiri, enflasyonun kazancını eritti demektir.

3. Kur düzeltmesi

Varlık, kullanıcının temel para biriminden farklı bir para biriminde fiyatlanıyorsa, alım tarihi ve bugünkü kur kullanılarak dönüşüm yapılır. Reel getiri temel para biriminde hesaplanır; böylece hem fiyat değişimi hem de kur hareketleri yansıtılır.

Aynı ilke kıyaslama karşılaştırmaları için de geçerlidir: kıyaslamanın para birimi, Yahoo Finance meta.currency alanından okunur; sembol adından tahmin edilmez. Kıyaslama para birimi pozisyon para birimiyle aynıysa dönüşüm uygulanmaz. Farklıysa kıyaslama fiyatı, her iki tarihte de pozisyonun para birimine çevrilerek karşılaştırma yapılır.

4. Kıyaslama ölçütü karşılaştırması

RealReturn çeşitli kıyaslama ölçütlerini destekler. Her pozisyon, alış tarihinde aynı tutarla seçtiğin kıyaslamaya yatırılmış gibi hesaplanır. Aynı varlığa yapılan ek alımlar, kısmi satışlar ve kapanmış pozisyonlar henüz modellenmiyor.

Kıyaslama getirisi, karşılaştırmadan önce her zaman pozisyonun para birimine çevrilir. Örneğin S&P 500 (USD) ile TL pozisyon karşılaştırılırken alım tarihi ve bugünkü USD/TRY kuru kullanılır; BIST100 (TRY) ile USD pozisyon karşılaştırılırken TRY fiyat USD'ye bölünür. Gerekli kur verisi alınamazsa kıyaslama kartı ham fiyatla sessizce devam etmek yerine "—" gösterir.

Kıyaslama getirisi de aynı Fisher denklemiyle enflasyona göre düzeltilir; karşılaştırmalar tutarlı bir temelde yapılır.

Enflasyon verisi doğruluğu: Türkiye için TÜİK/TCMB'nin aylık TÜFE serisi (OECD üzerinden) kullanılır; yayın gecikmesinden önceki son haftalar son yıllık oranla tahmin edilir. Diğer tüm ülkeler için kaynak Dünya Bankası WDI'dır (FP.CPI.TOTL.ZG) — geçmiş yıllar için yıllık ortalamalar, cari yıl için son yayımlanan oranla extrapolasyon. WDI tipik olarak 1–2 yıl gecikmeli yayınlanır; yakın dönem extrapolasyona dayanıyorsa "~tahmini" işareti görünür. MSCI World, Yahoo Finance'teki URTH ETF ile temsil edilir (adjusted close, temettü dahil, USD bazlı; FX üzerinden baz para birimine çevrilmiştir).

5. Fırsat maliyeti

Fırsat maliyeti (veya kazancı), kıyaslama ölçütünün ne kadar getireceği ile yatırımın gerçekte ne kadar getirdiği arasındaki fark olup temel para biriminde ifade edilir:

Fırsat maliyeti = Kıyaslama bugünkü değeri − Gerçek portföy bugünkü değeri

Pozitif sayı, kıyaslama yerine bu yatırımı seçerek bu kadar "kaçırdığın" anlamına gelir. Negatif sayı, kıyaslamayı geçtiğin anlamına gelir.

6. Veri kaynakları

Veri türüKaynakGüncelleme sıklığı
Hisse senedi ve ETF fiyatlarıYahoo Finance (proxy üzerinden)Borsa saatlerinde 15 dk gecikme
Türk yatırım fonları (TEFAS)TEFAS APIGün sonu
Kripto para fiyatlarıCoinGecko API~5 dakika
Döviz kurlarıFrankfurter API (ECB verisi)Günlük
Altın ve gümüş spot fiyatlarıgold-api.com~5 dakika
TÜFE / enflasyon verisiDünya Bankası API (WDI)Yıllık oran; bir yıla kadar gecikme
Mevduat / tasarruf oranlarıMerkez bankası yayınlarıOranlar değiştiğinde güncellenir

Tüm veriler yalnızca bilgi amaçlıdır. Fiyatlar gecikmeli veya hatalı olabilir. Ayrıntılar için: Kullanım Koşulları.

7. Yuvarlama ve hassasiyet

Parasal değerler arayüzde 2 ondalık basamağa yuvarlanarak gösterilir. İç hesaplamalar tam kayan noktalı hassasiyetle yapılır. Getiriler yüzde olarak 2 ondalık basamağa yuvarlanarak gösterilir.

8. Sınırlamalar