Concepts and methodology

How to read identity, currencies, returns, dates and missing values. These rules apply to REST and downloads.

Identity

A fund is identified by run, its CMF RUN without the check digit, as text. A series is identified by run and serie: the same code, such as A, exists in many funds. clase describes commercial investor classification (Retail, APV or Alto Patrimonio); serie is the exact code returned in the response.

GET /meta returns the complete data.catalog, grouped by fund, with run, name, agf, vehicle, source and series. Each series includes serie, ticker, currency, clase, from and asOf. from is the first historical observation retained by that edition; asOf is the latest NAV observation, not the publication cutoff. from is null when that edition does not retain the endpoint and does not guarantee continuous history. ticker is the registered series symbol and can be null; it does not establish current exchange listing or quote availability.

GET /funds/{run} returns fund identity, compact data.series entries (serie, ticker, currency, clase, from and asOf) and the monthly data.portfolio; it does not accept base. GET /funds/{run}/series/{serie} returns financial details for one series, with period metrics in data.periods and NAV history in data.history.points. If you already know the RUN and series code, request its detail directly.

Currencies and base

nav is denominated in currency and netAssets in netAssetsCurrency; these can differ. currency identifies the NAV denomination and does not convert values.

base selects the currency for return and risk metrics: native uses each series denomination; CLP, USD or UF reexpress the history before calculation. It does not change nav or netAssets. data.base identifies the selected base; when metrics are not published for it, periods remain unavailable without substituting another base. For native with an unsupported denomination, base is null.

Returns and risk

Returns are the percentage change in NAV (12 = 12%), without reinvested distributions. status is available, partial when the series does not cover the period, or unavailable; for partial and unavailable, cumulative is null. annualized requires at least 365 days.

effectiveFrom and effectiveTo are the dates of the NAV observations actually used for each return in the selected base; they can differ from theoretical period boundaries. They are not publication dates. When an edition does not retain those endpoints, they are null; they are not reconstructed by assuming the return ends at meta.asOf.

unavailableReason is null when a return is available. INSUFFICIENT_HISTORY means history is too short; INSUFFICIENT_COVERAGE means insufficient observations or continuity; STALE_NAV means the NAV is too old; MISSING_FX_RATE means FX coverage is missing while the native window qualifies; PARTIAL_PERIOD means a partial window whose percentage is omitted; NOT_PUBLISHED means the edition contains neither the metric nor its diagnosis. Do not infer a more specific cause from null.

Each data.periods window groups return, volatility, sharpe and maxDrawdown for the same period. Volatility and Sharpe are annualized; maxDrawdown is the largest decline within that window. FFMM costs are already deducted from NAV: do not subtract TAC again.

TAC and portfolio

tac is the CMF synthetic annual cost rate, expressed as a percentage and available only for FFMM; tacAsOf is its date. GET /funds/{run} includes consolidated portfolio positions with their own month; portfolio.complete indicates whether full detail is established. Use /downloads with dataset=portfolio for all portfolios. portfolio=null for FI or when no portfolio is published; it does not mean an empty portfolio.

Dates and missing values

Dates use YYYY-MM-DD. navDate is the latest NAV observation date: an active series can have an old valuation, so check it before comparing.

meta.asOf is the common publication cutoff, or null when FFMM and FI have different cutoffs; check meta.publications. Gaps are not filled and periods are not extrapolated. null means unavailable, never zero.