Risk-Free Rates
The risk-free rate is the baseline return the optimizer subtracts to form excess returns. It drives every reward-to-risk metric (Sharpe, Sortino, Treynor, Jensen's alpha) and the Maximum Sharpe objective. You choose it per request through a region and, where a curve exists, a tenor.
The contract
Each request carries a risk_free object with a region. Regions that expose a yield curve also take a tenor; regions that do not ignore it. The rate a run uses is the arithmetic mean of the daily annual yields over the run's price window. It is converted to the return frequency of the series and subtracted before any ratio is computed.
India (region IN)
The default region. Indian portfolios use a domestic sovereign risk-free rate; no tenor is required, and any tenor sent is ignored.
The rate is the daily yield of the Government of India 10-year bond, published by the Clearing Corporation of India (CCIL). FolioLab keeps this series in its own store, with daily history from March 1998, and adds each new value every night. A restated value is added beside the original rather than written over it, so a run made earlier gives the same answer against the values that existed at the time.
If the store cannot answer, the run uses the monthly India 10-year yield published by the OECD through FRED as a backup. A monthly value stands for about 21 trading days, so this backup is less precise than the daily series. If neither source answers, the run uses a configured default rate.
"risk_free": { "region": "IN" }United States (region US)
US portfolios pick a point on the US rate structure: either the overnight policy rate or a government constant-maturity tenor. Each comes from a daily FRED series. A US request that names no tenor uses the 10-year point.
| Tenor value | Maturity | Type |
|---|---|---|
FedFunds | Overnight policy rate | Policy rate |
1M | 1 month | Constant maturity |
3M | 3 month | Constant maturity |
6M | 6 month | Constant maturity |
1Y | 1 year | Constant maturity |
2Y | 2 year | Constant maturity |
3Y | 3 year | Constant maturity |
5Y | 5 year | Constant maturity |
7Y | 7 year | Constant maturity |
10Y | 10 year | Constant maturity |
20Y | 20 year | Constant maturity |
30Y | 30 year | Constant maturity |
"risk_free": { "region": "US", "tenor": "10Y" }A short tenor (overnight, 1M, 3M) is the conventional choice for Sharpe-style metrics; longer tenors suit a buy-and-hold horizon. Pick the maturity that matches your holding period.
Region must match the market
In a Monte Carlo run
A forward simulation takes the risk-free rate as a metric benchmark only. It inherits the rate the parent optimizer resolved and persisted (the default), takes an explicit forward assumption, or is switched off, in which case Sharpe-family metrics are reported as unavailable with a reason rather than silently assuming zero.
It is resolved once from persisted data and never looked up live, so a metric cannot change when you reload a result. It does not enter the wealth process: terminal percentiles, goal probability, depletion and drawdown are identical whatever it is set to. An investable cash sleeve and a stochastic short rate are separate model components and are not implemented.
See Monte Carlo output statistics for the metrics it governs.
For how the excess return then feeds each ratio, see the Sharpe Ratio and Performance Measures pages.
Not investment advice. Past performance is not indicative of future results.