Portfolio Yield on Cost equals total annual dividend income divided by total cost basis, both converted to one currency, never an average of each holding's individual yield. Here is the full working.

Methodology · Updated October 2026

Yield on cost and the income forecast: the math behind the numbers

Income Refinery shows one figure for Portfolio Yield on Cost. A number worth trusting is a number worth checking, so here is every formula behind it, worked through with real figures. The same idea applies to rental property and other income. The second half explains how the forecast treats reinvestment, distribution growth and Coast FIRE.


Individual holding Yield on Cost

Yield on Cost for a single holding is simple: the income it pays each year, divided by what you paid for it.

Per holding Cost basis  = units × average cost per unit
Annual income = units × DPU per payment × payments per year
Yield on Cost = annual income ÷ cost basis × 100

An example. Buy 100 shares at $20 each. The shares pay $0.25 per share each quarter, which is $1.00 a year (the annual DPU).

Worked example Cost basis  = 100 × $20 = $2,000
Annual income = 100 × $0.25 × 4 = $100
Yield on Cost = $100 ÷ $2,000 = 5%

Equivalent shortcut: ($0.25 × 4) ÷ $20 = 5%

Units cancel out of that fraction, so the shortcut works: annual DPU divided by average cost per unit gives the same answer.

Portfolio Yield on Cost

A portfolio is not one holding, so combining individual Yields on Cost takes more care than it looks like it should. It's tempting to average each holding's own percentage, weighted by how much income it produces. That approach is wrong, and wrong in a specific, provable direction: it overstates the true figure, and overstates it more the more lopsided your holdings are.

Here is why. Weighting a yield by the income it produces means weighting by cost × yield, since income equals cost times yield. The weighted average becomes:

Σ(yield × cost × yield) ÷ Σ(cost × yield)

Every yield is doing double duty: once as the figure being averaged, once as part of its own weight. A holding yielding 10% does not just count for more income; it counts twice as hard for being high-yielding in the first place. A Cost × Yield² term was hiding inside what looked like a plain average.

The simplest correct calculation does not average the individual percentages directly:

Portfolio Yield on Cost Total annual income ÷ Total cost basis × 100

Take two holdings: $10,000 invested paying $1,000 a year (10%), and $90,000 invested paying $4,500 a year (5%). Add the income: $5,500. Add the cost: $100,000. Divide: 5.50%.

Equivalently, Portfolio Yield on Cost is the cost-basis-weighted average of the individual holding yields. The weighting section below shows why the two statements are the same.

Holdings without a cost or a known dividend

Average cost per unit is optional in Income Refinery. Plenty of holdings get added before you know, or bother to enter, what you paid. Yield needs two numbers, cost and income, so a holding that lacks either cannot contribute a yield.

Leaving out only one side distorts the result. If you count a holding's income but not its cost, the top of the fraction grows and the bottom does not, so the figure climbs for every incomplete holding. Income Refinery leaves an incomplete holding out of Portfolio Yield on Cost entirely, both its income and its cost. Its income still counts everywhere else: your dashboard total, your monthly calendar and your forecast.

A dividend of zero is not the same as a dividend nobody has entered. The calculation treats three cases differently:

Example Holding A: cost 100,000, income 5,000
Holding B: cost 100,000, known to pay nothing
Portfolio YoC = 5,000 ÷ 200,000 = 2.50%

If you simply do not know B's dividend, B drops out instead:
Portfolio YoC = 5,000 ÷ 100,000 = 5.00%, with a coverage note.

The figure discloses its coverage whenever some holdings are left out: Portfolio YoC: 5.42% · 8 of 10 holdings fully modelled. No note appears once every holding has both an average cost and a known dividend.

Portfolios saved before this distinction existed keep working. A holding with a positive dividend counts as known. A saved zero is ambiguous, since it may mean "pays nothing" or "never entered", so it stays unknown until you open the holding and enter 0 as its dividend.

Gross vs. net Yield on Cost

Dividends from US holdings are usually taxed at source before they reach you: withholding tax, deducted before the cash lands in your account. Gross Yield on Cost ignores that: it is the income the company declares, divided by your cost. Net Yield on Cost is what actually reaches you, same denominator, income reduced by the withholding rate.

Example · $10,000 cost, $600 gross income, 30% withholding Gross Yield on Cost = 600 ÷ 10,000 × 100 = 6.00%
Net income         = 600 × (1 − 0.30) = 420
Net Yield on Cost   = 420 ÷ 10,000 × 100 = 4.20%

Gross is the headline figure because it compares across investors regardless of tax situation: your residence has no bearing on what the company paid out. Net Yield on Cost sits in the details panel on the same figure. Click or tap the information button beside Portfolio YoC to see it, along with coverage and the currency basis.

For USD holdings, Income Refinery applies the US withholding default associated with your configured tax residence, unless you override the rate for that holding. You can set the rate on any single holding, and that rate always wins. Income Refinery does not work out each security's domicile or tax treatment for you. A fund domiciled outside the US, for example, may be taxed differently from the default, so set that holding's rate yourself. If you have not chosen a tax residence, USD holdings follow the optional 30% fallback setting instead. With a residence set, the residence rate always comes first, so the fallback is not used.

Withholding only ever touches income. It never touches cost basis: the capital you put in is not taxed by a foreign government, so reducing it to account for tax would be wrong.

Multiple currencies

Hold a US stock and a Singapore REIT in the same portfolio, and you have two currencies' worth of cost and income that need converting to one before you can add them together. You cannot combine $10,000 and S$10,000 into a single number without converting one first. Adding raw amounts across currencies is meaningless arithmetic, however tempting the sum looks.

Every holding's income and cost basis convert to your base currency before anything gets added. A UK holding costing £8,000 with £400 of annual income, and a US holding costing $20,000 with $1,000 of annual income, both become figures in your base currency before they are summed, and the resulting portfolio percentage is currency-free, since percentages are ratios, not amounts.

Currency conversion and withholding are separate steps. Income Refinery converts income and cost with the same tax-neutral exchange rate, then applies withholding to the income side only, afterward. Mixing the two steps would quietly tax your invested capital, which makes no economic sense.

Why cost basis uses today's FX rate

Converting a foreign holding's income into your base currency at today's exchange rate makes sense: you are asking what that income is worth right now. Converting its cost basis at today's rate is a different question, and a more debatable one: your cost basis represents money spent in the past, at whatever rate applied on the day you bought in.

Income Refinery does not currently record the exchange rate on your purchase date, only your cost per unit in whatever currency the holding trades in. Rather than invent a historical rate it does not have, the app converts cost basis at today's rate too, and treats the result as a current estimate rather than a historically precise figure. If the currency has moved a lot since you bought in, your displayed Yield on Cost moves with it, even though nothing about your actual investment changed.

Because of this, a Portfolio Yield on Cost that includes foreign-currency holdings is shown with an approximation sign (≈), and the details panel says why. If every holding is in your base currency, no sign appears. Income Refinery does not invent historical rates.

Storing the exchange rate when each holding is added, so cost basis could be fixed in base-currency terms from that point on, is a reasonable future improvement. It needs a new field on every holding, introduced carefully so that portfolios saved today keep loading.

Dividend reinvestment and historical DRIP

When a dividend buys more shares automatically instead of arriving as cash, that is dividend reinvestment (DRIP, for short). For Income Refinery's Yield on Cost calculation, reinvested dividends should be included in cumulative investment cost because they purchased additional shares. Tax-basis treatment can vary by jurisdiction and account type, so this page describes Income Refinery's own measure and is not tax guidance.

Income Refinery does not currently track individual purchase transactions. A holding has one Average Cost per Unit, which you set and update yourself. The app cannot reconstruct your historical DRIP cost basis. Update Average Cost per Unit using your broker's information. The amount that actually bought new shares can be smaller than the gross dividend, because withholding tax may be taken before the money is reinvested.

Two different ideas share the word "reinvestment". Keep them apart:

1 · Historical DRIP and cost basis Question: what happened to dividends I already received?
Matters for: Average Cost per Unit and Yield on Cost.
Tracked automatically: no. You update the cost yourself.

2 · Forecast reinvestment Question: what do I assume I will do with passive income in the future?
Matters for: the Forecast, Lean FI, FI, Fat FI, Coast FIRE and What-If dates.
Does it simulate past DRIP purchases: no.

The Forecast switch never changes your Yield on Cost, and your Yield on Cost never changes the Forecast. The forecast side has its own section further down: how forecast reinvestment works.

Yield on Cost vs. Yield on Original Capital

There is another useful metric once reinvestment enters the picture: Yield on Original Capital. It answers a different question from Yield on Cost.

Yield on Cost = income ÷ cumulative adjusted investment cost
Yield on Original Capital = income ÷ original external, out-of-pocket capital

Put $10,000 in, and after years of compounding your holdings pay $1,500 a year. If reinvestment has grown your cumulative cost to $13,000, Yield on Cost is about 11.5%. Yield on Original Capital divides the same $1,500 by the original $10,000 alone and comes out at 15%. Neither number is wrong. One shows the return on everything currently invested. The other shows how hard your original money is working, compounding included.

Income Refinery currently displays Yield on Cost. It does not show Yield on Original Capital, because it does not yet separate original money from reinvested money in its data. If that is ever added, it needs a label clear enough that nobody mistakes one figure for the other.

Buying more later, at a different price

Buy 100 shares at $10, then another 100 later at $20, and your total cost basis is $3,000: not $2,000 at the latest price, and not $4,000 at twice the first price. Average cost per share works out to $15, but that average is a consequence of the total, not something calculated first and multiplied back up.

Income Refinery's Average Cost per Unit field expects your blended average cost across every purchase of that holding, exactly what most brokers already show on your own statement. Add the second purchase by updating that one number to reflect the new blended average, and everything downstream follows correctly, because the math was already built to work from a single average-cost figure rather than assuming every unit was bought at the same price.

Selling part of a position

Income Refinery does not currently track transactions or tax lots. After a partial sale, update the remaining units and use the remaining average cost shown by your broker.

Do not subtract sale proceeds from cost basis. Sale proceeds and remaining investment cost are different concepts, and mixing them would distort your remaining Yield on Cost. Detailed tax accounting for sales varies by jurisdiction and is outside what Income Refinery tries to do.

Stock splits

A 2-for-1 split doubles your units and halves your price per share, and changes nothing else about your investment. Cost basis has to come out the other side unchanged, because a split does not put a single extra dollar into your pocket or take one out.

Before the split 100 units × $100 average cost = $10,000 cost basis
100 units × $5.00 annual DPU = $500 annual income
Yield on Cost = 5.00%

After a 2-for-1 split 200 units × $50 average cost = $10,000 cost basis (unchanged)
200 units × $2.50 annual DPU = $500 annual income (unchanged)
Yield on Cost = 5.00%

Because Yield on Cost is built from total income over total cost, and a split leaves both totals where they were, your Yield on Cost does not move because of a split. It moves only if the company's actual payout changes.

Fees and commissions

For Income Refinery's investment-cost measure, a $10,000 purchase with a $20 commission would normally be entered as $10,020 of total cost. Income Refinery has no separate field for commissions. If you want fees reflected, fold them into your Average Cost per Unit. The field works with whatever total you give it and cannot tell a fee from a share price. Tax treatment of fees varies by jurisdiction.

Return of capital

Some distributions, usually from REITs or certain funds, are not ordinary income at all: they are a return of your own capital, and can reduce your cost basis for tax purposes rather than count as income. Telling a return-of-capital distribution apart from an ordinary dividend takes information Income Refinery does not currently have; the characterisation usually only becomes clear well after the fact, on a tax statement. The app treats every distribution you enter as ordinary dividend income. If a meaningful share of your income is return of capital, your real after-tax position differs from what Yield on Cost shows, and that is worth knowing rather than guessing around.

Irregular dividends and frequency

Most holdings pay on a predictable schedule (monthly, quarterly, semi-annual, annual), and Income Refinery models annual income as DPU times however many payments you have told it to expect each year. That is a clean, accurate model for anything that pays the same amount on the same schedule.

It is a rougher fit for anything that does not: a one-off special dividend, a REIT whose payout changes every quarter, an ETF with genuinely variable distributions. The app does not try to guess at irregular payments or annualise a special dividend into a misleading recurring figure; it multiplies whatever DPU and payment count you have entered. If your holding's distributions vary meaningfully quarter to quarter, treat the resulting annual figure as an estimate built from your most typical payment, not a guarantee of what is coming.

Current Yield is a different number from Yield on Cost

These two get confused constantly, and they answer different questions. Yield on Cost divides income by what you paid. Current Yield divides the same income by what the holding costs today.

Bought at $10, now priced at $20, paying $1 a year Yield on Cost  = 1 ÷ 10 × 100 = 10.00%: frozen at your purchase price
Current Yield   = 1 ÷ 20 × 100 = 5.00%: moves with the share price

Current Yield is annual DPU divided by the current market price. It does not need your cost basis. A holding with a price and a dividend but no average cost still shows its Current Yield, and shows no Yield on Cost. The two are labelled separately on purpose. Using today's price for Yield on Cost erases the benefit of having bought early.

The weighting principle, stated plainly

Every section above comes back to one rule: Portfolio Yield on Cost is a weighted average of individual Yields on Cost, but only when the weights are each holding's cost basis, as a share of your total cost basis. Weight by anything else, income, market value, number of holdings, and you get a different, incorrect number: something other than capital would be deciding how much a holding's yield counts.

Written as cost-weighting, it is identical to the simpler total-over-total formula used throughout this page. That is not a coincidence: it is the same statement, twice.
Σ(yield × cost-weight) = Σ(income) ÷ Σ(cost), always

Income-weighting is not a smaller mistake than market-value-weighting or holding-count-weighting. It is a different wrong answer, arrived at from a different wrong idea.

Net Rental Yield and Other Income yield

Yield on Cost is for stocks, REITs and funds. Income Refinery applies the same idea, income divided by what you put in, to the two other kinds of income that carry a cost: rental property and Other Income.

Rental property. Net Rental Yield compares a year of net rent with what the property cost you.

Per property Annual net rent = (monthly gross rent − monthly operating costs) × 12
Cost basis = purchase price + one-time costs
Net Rental Yield = annual net rent ÷ cost basis × 100

Operating costs are whatever you entered. If they include mortgage payments, the yield reflects what you actually keep, so it will be lower than the conventional net yield, which leaves financing out.

One-time costs are one optional total, in the property's currency: stamp duty, legal and agent fees, renovation, furnishing. They are part of what the property cost you, so they belong in the cost basis, and they lower the yield. They do not change your income or the property's value. They count only when a purchase price is entered.

Worked example Purchase price $500,000 · one-time costs $50,000
Gross rent $2,500 a month · operating costs $500 a month
Annual net rent = ($2,500 − $500) × 12 = $24,000

Without one-time costs: $24,000 ÷ $500,000 = 4.80%
With one-time costs: $24,000 ÷ $550,000 = 4.36%

The yield can be zero or negative. A property whose costs exceed its rent shows a negative yield: net rent of -$10,000 a year on a $500,000 cost basis is -2.00%. Income Refinery shows it instead of hiding it.

The portfolio figure follows the same rule as Portfolio Yield on Cost. It adds up annual net rent across properties that have a purchase price, adds up their cost bases, and divides once, in your base currency, converting each property's rent and cost with the same exchange rate. It never averages the percentages. A property without a purchase price is left out of both sides of this figure, and its rent still counts in your income.

Why not average Property A: cost basis $110,000 ($100,000 + $10,000), net rent $10,000 a year = 9.09%
Property B: cost basis $400,000, net rent $20,000 a year = 5.00%
Average of the two percentages = 7.05%
Portfolio = $30,000 ÷ $510,000 = 5.88%

This is a yield on cost, not on today's value. The optional Current Market Value feeds your portfolio snapshots and has no effect on the yield, for the same reason Current Yield is a different number.

Other Income. The yield on an Other Income item is its annual income divided by the capital deployed in it, such as the balance in a savings account or the cost of a bond. Capital deployed is optional. The portfolio figure again divides total income by total capital: $1,000 a year on $10,000 and $4,500 a year on $90,000 give $5,500 ÷ $100,000 = 5.50%. Items without capital are left out of both sides of the yield, and their income still counts everywhere else.

How Income Refinery models reinvestment in forecasts

The forecast answers one question: how could my passive income evolve under these assumptions? It is an income forecast. It is not a portfolio-value model, a Monte Carlo simulation or a retirement-withdrawal calculator. Its results are projections from the assumptions you enter, not predictions.

Income Refinery deliberately uses a portfolio-level reinvestment assumption. When Reinvest passive income is on, the model assumes that passive income from all of these sources is available to reinvest in future income-producing assets:

Income Refinery does not try to predict which security, REIT, property or account receives that money. It assumes the money earns the yield you enter as Yield on new & reinvested capital.

Why one pool? Income Refinery plans passive income across a whole household or portfolio. It does not simulate individual brokerage transactions. A dividend from one company need not go back into that company. Rent may buy shares. Bond coupons may buy a REIT. Savings interest may join another income-producing asset. The future destination of that cash is unknowable, so the forecast pools the passive income you choose to reinvest and models it at one assumed yield. That keeps the model easy to follow while letting income compound across every stream. It is an assumption, not a prediction. Income Refinery does not claim DRIP purchase-date accuracy.

Only money you actually receive is reinvested. Holdings count after the withholding rate Income Refinery already applies. Rental income counts after the property costs you entered. Other income counts as the dashboard shows it. Tax you never received and gross rent you never kept are not reinvested.

The forecast has six assumptions, and each means one thing:

The monthly sequence. The forecast smooths income into months and uses one order of steps everywhere:

Each month 1. Each income bucket changes on its own assumption: holdings and the future-investment pool use Annual DPU / distribution growth, property uses Annual net rental income growth, and Other Income uses Annual Other Income growth.
2. This month's passive income is counted once: holdings + property + other + future pool.
3. Capital invested = monthly new external capital + positive passive income, if Reinvest passive income is on.
4. That capital × Yield on new & reinvested capital ÷ 12 joins the future pool and earns from next month.

A negative total is not negatively reinvested. If property costs outrun your other income and the month's total falls below zero, nothing is taken out of the future pool: only new external capital, if any, is invested. The forecast still reports the negative total as it is. Each annual rate in step 1 is converted to its equivalent monthly rate, so 5% a year compounds to exactly 5% after twelve months.

Internally the model keeps four buckets: existing holdings, existing property, existing other income and the future-investment pool. The dashboard shows one total.

Reinvesting does not reduce reported income. The forecast measures passive income generated, not cash kept after reinvesting. Say your portfolio generates $3,000 a month and you reinvest all of it. The forecast still reports $3,000 a month generated, not $6,000 and not $0. Reinvesting changes what the money will earn in later months. It does not erase the income you already earned.

One switch, every feature. Reinvest passive income applies to the Base forecast, Lean FI, FI, Fat FI, Coast FIRE, the What-If FI dates, the projected date on the share card and the Excel export. The three scenarios do not change it, because reinvesting is a choice you make, not a market outlook. They differ in distribution growth and yield only. Rental growth, Other Income growth and Reinvest passive income describe your own income, so every scenario uses them as you set them:

Yield on new & reinvested capital

This is the assumed income yield on money invested after the forecast starts. It applies whether that money comes from fresh contributions or from passive income you reinvest.

Example Monthly new contribution: $1,000
Passive income reinvested: $2,000
Yield on new & reinvested capital: 6%

Capital invested that month = $1,000 + $2,000 = $3,000
Added annual income ≈ $3,000 × 6% = $180 a year, about $15 a month

Under the monthly sequence above, that $15 a month starts counting from the next month. If Reinvest passive income is off, only the $1,000 of new capital is invested. If a forecast has no new capital and reinvestment is off, this yield has no effect.

How Income Refinery models income growth

Income Refinery separates passive income into components because they do not grow in the same way. Dividends, rent and interest rarely rise at the same rate, and some of them fall. The forecast therefore keeps the streams apart internally, each on its own assumption, and still shows you one total projected passive income.

What controls each component Stocks, REITs and Funds: Annual DPU / distribution growth
Rental property: Annual net rental income growth
Other Income: Annual Other Income growth
Future investments: Annual DPU / distribution growth, starting from the Yield on new & reinvested capital

Stocks, REITs and Funds. Distribution growth applies to your existing holdings. Future investments, the pool funded by new contributions and reinvested income, use the same rate, because the model treats them as security income. The rate can be negative to model cuts. At -5% a year, a $1,000 a month distribution stream is about $950 a month after one year, before any reinvestment or new capital. A negative rate does not touch rental income or Other Income, which keep their own assumptions.

Rental property. Income Refinery already defines property income as net rent: gross rent minus the operating costs you entered. The rental growth setting grows or shrinks that net stream. It does not model rent increases, expense inflation or vacancy separately, which keeps the model easy to follow. The value can be positive, zero or negative.

Other Income. One portfolio-level assumption covers your existing Other Income streams together: interest and savings accounts, fixed deposits, bonds, royalties, pensions and annuities, business or side income, and anything else you entered. Income Refinery does not ask for a separate rate for each item, to keep the forecast understandable.

Rent can fall. Suppose your net rent is $2,000 a month and you set annual rental growth to -5%. After one year it is about $1,900 a month, before any reinvestment. The setting is scenario modelling, not a prediction of what rent will do.

Other Income can fall too. Suppose Other Income is $1,000 a month and you set annual Other Income growth to -10%. After one year it is about $900 a month. This changes the original stream itself. If Reinvest passive income is on, the cash it produces along the way can still be reinvested under the portfolio-level assumption.

Growth and reinvestment are different things. Take $2,000 a month of net rent, 3% rental growth, Reinvest passive income on, and a 5.5% Yield on new & reinvested capital. Two separate effects follow. The rent stream itself grows by about 3% a year, to about $2,060 a month after one year. And the rent you receive can also be reinvested into future income-producing investments earning 5.5%. The 3% is not the yield on reinvested money, and the 5.5% is not rent growth. The same applies to Other Income.

Income can start below zero. Net rental income is rent minus costs, so it is negative when costs exceed rent. The dashboard shows that, and the forecast starts from the same signed figure. If your streams add up to a loss, the forecast reports the loss, and a falling stream can leave a milestone out of reach.

How the rates compound. Each annual rate is converted to its monthly equivalent, so 5% a year compounds to exactly 5% after twelve months, and -5% a year to exactly -5%. A rate of 0% leaves the stream exactly where it is. This differs from the Yield on new & reinvested capital, which is a yield, not a growth rate, and is simply divided by twelve for the monthly figure.

Ranges and defaults. Annual DPU / distribution growth, Annual net rental income growth and Annual Other Income growth all accept values from -50% to +20% a year. All three start at 0%. A portfolio that earns most of its income from rent or interest shows little growth at 0%, unless you add new capital, turn on reinvestment or set a growth rate.

How Income Refinery defines Coast FIRE

Traditional Coast FIRE usually asks whether today's investment portfolio can grow into a large enough retirement nest egg by a chosen retirement age, with no further contributions.

Income Refinery's income-based Coast FIRE model asks a different question: if I stop adding new external money today, when could my existing passive-income system reach my FI income target? This is deliberately not the conventional definition. Income Refinery is built around passive-income sufficiency, not retirement-portfolio withdrawal. If your passive income reaches the target you chose, you may be able to retire whatever your age. Income Refinery does not model a retirement age or a withdrawal rate.

The assumptions:

If no mechanism can raise your income (no positive growth in any stream that has income, and no reinvestment), the app says Coast FIRE is not reached under current assumptions. It does not invent a date. A falling stream is never a mechanism: negative growth only pulls income down, and with reinvestment on it can leave the target out of reach.

Example · computed with the same forecast function the app uses Current passive income: $3,000 a month, all from Stocks, REITs and Funds
FI target: $5,000 a month
Monthly new capital: ignored (forced to $0)
Distribution growth: 2% · Rental and Other Income growth: 0% · Yield on new & reinvested capital: 5.5%

Reinvest passive income ON: about 6 years 11 months
Reinvest passive income OFF: about 25 years 10 months (growth alone)

With reinvestment on, the $3,000 a month is assumed to go back into investments earning 5.5%, and the holdings income also grows at 2%. The model finds the month when total projected income reaches $5,000. With it off, only the 2% growth lifts income, so the same target takes far longer.

Where the income comes from matters. Suppose $1,000 of the $3,000 is rent. With rental growth at 0%, rent stays flat, so only the other $2,000 grows. With reinvestment on, the target is reached in about 7 years 5 months. With reinvestment off, it is not reached within 30 years. These are projections from stated assumptions, not forecasts of what will happen.

What we checked before shipping this

A formula nobody tests is just a guess with decimal places. Before this went live, we ran the exact scenarios worked through on this page against the actual functions:

and confirmed that the numbers check out.

D
Darren C
Creator, Income Refinery

See it on your own portfolio

Enter an average cost per unit on any holding in Income Refinery Pro and Portfolio Yield on Cost appears automatically, gross and net, with a coverage note. Pro also includes the Forecast engine described above.

See Income Refinery Pro Back to the Guide
No account needed · Your saved portfolio stays local · Optional market lookups and FX updates may contact external data services.