Free & Pro: Complete Reference

Income Refinery User Guide

Everything you need to set up your dividend tracker, add rental income and passive streams, configure live FX rates, and reach your financial independence number, for both the free and Pro versions.

Welcome!

Income Refinery is a free, private, browser-based passive income and dividend tracker. It consolidates dividend income from stocks, REITs, and ETFs across 30 global exchanges; rental property income; bond coupons; savings interest; and every other passive income stream into a single monthly dashboard, with no account, no cloud storage, and no subscription required. The free plan supports up to 10 holdings, 1 property, and 3 other income streams. Income Refinery Pro is a one-time purchase that adds unlimited capacity, JSON backup, Excel export, Portfolio Snapshots, an Income Over Time chart, Forecast & Projection (inline, three scenario bands), a What-If drawer with Hypothetical Portfolio builder, and advanced analytics for investors pursuing financial independence (FIRE).

This guide covers both versions in full. Features exclusive to Pro are marked with a Pro badge throughout. Not sure how Income Refinery compares to other dividend trackers? See our alternatives comparison.

Stored locally
Your saved portfolio stays in your browser. No accounts, no cloud storage and no Income Refinery backend. Market-data lookups are optional and run only when you request them. FX rate updates may contact external exchange-rate services automatically when rates are missing or stale.
30 Global Exchanges
Track holdings from NYSE, NASDAQ, LSE, ASX, TSX, HKEX, SGX, and 23 more exchanges worldwide, all in one dashboard.
Multi-Currency
Hold assets in any of 21 currencies. Live exchange rates (ECB-based, with a backup source) convert everything to your chosen base currency automatically. A currency with no live rate takes a rate you enter.
Monthly Calendar
See at a glance which months have income and which don't. Plan your portfolio to smooth out any seasonal gaps.
SECTION 1

Free vs Pro: At a Glance

Both versions share the same beautiful interface and all the core tracking features. Pro adds analytical depth — forecasting, scenario modelling, yield-on-cost tracking, and unlimited capacity, for investors who want to go further. See the Pro page for pricing.

Feature Income Refinery (Free) Income Refinery Pro  Pro
Capacity
Stock / REIT / Fund holdingsUp to 10Unlimited
Rental propertiesUp to 1Unlimited
Other income streamsUp to 3Unlimited
Core Dashboard
Monthly income calendar✓✓
30 global exchanges✓✓
Multi-currency + live FX rates✓✓
Monthly income target + progress bar✓ inline edit✓ + FI Target Drawer
FI Presets (Lean / Standard / Fat FI from spending)—✓ Pro
Tax Residence & per-treaty withholding rates—✓ Pro
Share Your Progress card (branded PNG)✓ live data only✓ + growth % from snapshots
FI Milestones strip (Lean / Standard / Fat FI)—✓ Pro
Dashboard (this month, average, progress, FI projections)—✓ Pro
Income Over Time chart (Analyse → History)—✓ Pro
Portfolio Snapshots (point-in-time records)—✓ Pro
Share any snapshot or milestone from History—✓ Pro
Blended yield on section headers—✓ Pro
Holdings: Data Entry
Ticker Lookup (8-source priority system)✓✓
Bulk import from Excel / CSV✓✓
Cost per Unit → Yield on Cost—✓ Pro
Notes field per holding—✓ Pro
Dividend Health Panel (DPU trend)—✓ Pro
Property & Other Income: Data Entry
Purchase Price → Net Rental Yield—✓ Pro
Current Value → feeds Portfolio Snapshots—✓ Pro
Capital Deployed → Income Yield—✓ Pro
Notes field on property & other income forms—✓ Pro
Views & Display
Card view with search & sort toolbar✓✓
≡ Table view (sortable columns)—✓ Pro
Analytics (Analyse ▾ dropdown)
Forecast & Projection (inline, three scenario bands)—✓ Pro
What-If: Capital Deployment & Distribution Change—✓ Pro
What-If: Hypothetical Portfolio builder—✓ Pro
What-If: Scenario Calendar—✓ Pro
Personalisation, Export & Backup
Dark & light theme✓✓
Custom title & logo (Branding)—✓ Pro
Data Management panel in Settings (JSON, Excel, CSV)—✓ Pro
JSON backup & restore—✓ Pro
Excel export (multi-sheet workbook)—✓ Pro
Snapshots CSV export—✓ Pro
API key integration (7 data sources)✓✓
Income Refinery Pro is a one-time purchase: no subscription. Visit incomerefinery.com/pro to upgrade.
SECTION 2

Getting Started with Income Refinery

These six steps are the same for both versions. You'll have your first income entry showing in just a few minutes.

1
Open the app in your browser
Double-click income_refinery.html (free) or income_refinery_pro.html (Pro): it opens directly in Chrome, Edge, Firefox, or Safari. No installation required and no internet needed to run the app itself. Pro opens on a Dashboard that shows this month's expected income, your average monthly income and your progress to target. With no income sources yet, it opens on a welcome screen with three choices: Import holdings from a spreadsheet, Add an income source, or Restore an existing backup.
2
Choose your theme & personalise
Click Settings & FX Rates in the header. Pick dark or light mode, set your base display currency (any of the 21 supported currencies), and optionally upload a logo and give the dashboard a personal name in the Branding section.
3
Set your FI target
Free: Click the income number in the hero panel, type your monthly goal directly. Pro: Click Set target or Adjust target on the Dashboard, or Adjust in the hero panel on the Income Sources tab, to open the FI Target Drawer. Choose a preset (Lean FI, Standard FI, or Fat FI, based on your monthly spending) or type a custom amount. The progress bar and projected FI date update instantly.
4
Add your first holding
Pro: Open the Income Sources tab first. On the welcome screen, click Import holdings from a spreadsheet to add many at once, or Add an income source to add one. Scroll to Stocks, REITs & Funds and click + Add Counter. Enter the ticker, select the exchange, and click Lookup to try auto-fetching dividend data. Fill in your units held, verify the DPU and payment months, then click ✓ Save Counter.
5
Refresh live FX rates
Click Live FX in the header to pull the latest rates (from the European Central Bank via Frankfurter, with a backup source if that is unavailable). No API key is needed. This ensures every foreign-currency holding displays accurately in your base currency.
6
Back up your data Pro
Pro users: Open Settings & FX Rates and scroll to the Data Management section at the top. Click ↓ Export JSON to save a re-importable backup of your portfolio, settings, snapshots and FX data. API keys are excluded by default unless you explicitly choose to include them; if you include them, keep the file private because those credentials are stored in it in plaintext. To restore, click ↑ Import JSON and select your file. Free users: Data is stored in the browser only with no backup option, which is one of the main reasons to upgrade to Pro. The one exception is Settings → Move to Pro, which saves your portfolio as a file for Pro.

Screenshot: Income Refinery Pro, Income Sources tab

IR
Income Refinery Pro
Stocks · Bonds · Real Estate · All streams · One view
Settings
Analyse ▾
+ Add income ▾
This Month
Average
Expected This Month
$4,280.50
Annual: $51,366 · 12 income sources · USD
Holdings: $2,840/mo
Property: $1,040/mo
Other: $400.50/mo
FI Target
$6,000/mo
$1,719.50 to go
71% of target
Adjust
FI Milestones
Lean FI (70%)
$4,200/mo ✓
Achieved today
Standard FI (100%)
$6,000/mo
~3.2 years · Aug 2029
Fat FI (150%)
$9,000/mo
~9.8 years · Mar 2035
JAN
$1,120
FEB
$480
MAR
$1,740
APR
no income
MAY
$920
JUN
$1,680
JUL
no income
AUG
$540
SEP
$1,680
OCT
no income
NOV
$480
DEC
$1,726
The Income Sources tab holds every holding, property and income stream; the Dashboard tab summarises them. Pro header: Settings · Analyse ▾ (History, Forecast, What-If) · + Add income ▾. Export and backup are in Settings → Data tab. The FI Milestones strip appears between the hero and calendar. Click Adjust in the hero to open the FI Target Drawer.

The Pro Dashboard

Pro opens on a Dashboard with two tabs: Dashboard and Income Sources. The Dashboard shows this month's expected income, your average monthly income, and your progress against your monthly target, with a 12-month income calendar below. Select a month to see what each source pays. Below the calendar, Financial Independence Projections show when you could reach Lean FI, Standard FI, Fat FI and Coast FIRE, using the Base scenario of your Forecast assumptions. In a custom target, the three levels show as percentages of your target. Further down, it splits your income across Stocks, REITs and funds, Property, and Other income, shows your snapshot progress, and links to the Forecast. Analyse (History, Forecast, What-If) and Settings sit in the top bar.

Click Manage income sources or the Income Sources tab to add and edit holdings, properties and other income. A small ← Dashboard control at the top of that page takes you back. The Dashboard reads your data and never changes it. Holding amounts are after withholding tax, and rental amounts are after costs. A source with no exchange rate is left out of the totals, and the Dashboard says so.

Screenshot: Income Refinery (Free), header

IR
Income Refinery
Stocks · Bonds · Real Estate · All streams · One view
Settings & FX Rates
Live FX
Go Pro
The free version has three header buttons: Settings, Live FX, and the Go Pro upgrade link. Export and backup are available in Pro only.
SECTION 3

Dividend Data Sources & API Integration

The Lookup button tries eight sources in priority order, stopping as soon as it gets a result. The key message upfront: Yahoo Finance is the last resort, not the first. Set up any one better source and lookups become fast and reliable.

Yahoo Finance is heavily rate-limited for browser-based apps. It's always available as a fallback (Priority 8) but often fails. The easiest alternative, uploading a watchlist spreadsheet, requires no API key, no internet, and has no rate limits at all.
#SourceBest forHow to set upCost
1Watchlist SpreadsheetAny of the 30 exchanges: fastest, works offlineUpload via Settings → Dividend Lookup SourcesFree
2Twelve DataUS, EU, Asian exchanges including SGX · 800/day freePaste API key in SettingsFree tier
3EODHD70+ global exchanges: broadest international coveragePaste API key in Settings20/day free
4FMPUS & European stocks · 250/day freePaste API key in SettingsFree tier
5Alpha VantageUS stocks · 25/day freePaste API key in SettingsFree tier
6Polygon.ioUS stocks only · 5/min freePaste API key in SettingsFree tier
7MarketStackUS stocks only · very limited free tierPaste API key in Settings100/month
8Yahoo Finance (always-on fallback)Last resort: any ticker, but rate-limited and unreliableNothing to configureUnreliable
Best starting approach: Use the AI prompt in Section 15 to generate a watchlist spreadsheet, then upload it in Settings as Priority 1. Instant lookups, zero rate limits, no API key needed. Wondering how Income Refinery compares to other dividend trackers? See our alternatives comparison page.
SECTION 4

Personalise Your Passive Income Dashboard

Click Settings in the Pro header, or Settings & FX Rates in the free header, to open the settings panel.

Free: Settings Sections
1. Appearance
2. FX Rates & Preferences
3. Dividend Lookup Sources
Pro: Settings Tabs
Profile: Tax Residence, Currency, FX Rates
Data: Export JSON, Import JSON, Excel, Snapshots
Appearance: Theme, Branding (title & logo)
Lookup: Watchlist upload, API keys
Refer a Friend: Discount code, referral QR
Help: Guide links

Your FI Target and US withholding settings are in the FI Target Drawer (Pro: click Set target or Adjust target on the Dashboard, or Adjust in the hero on the Income Sources tab) or directly on the hero panel (free).

Profile tab: Tax Residence Pro

A significant feature: set your Tax Residence (e.g. Singapore, United Kingdom, Australia) and Income Refinery automatically applies the correct US withholding rate to all new holdings that pay in USD based on the IRS tax treaty between the US and your country.

Treaty rates applied automatically
Countries like the UK, Australia, and Canada enjoy 15% treaty rates on US dividends. Singapore has no treaty, so 30% applies. Setting your residence ensures every new holding gets the right rate from day one.
Per-holding override
The residence sets a default. Individual holdings can have their own withholding rate set in the Add/Edit form, useful for mixed portfolios or non-US securities in the same account. Gross and net Yield on Cost explains how withholding changes the yield.

Screenshot: Settings panel, Appearance & FX sections (free) + Branding section (Pro only)

Appearance
Dark (default)
Light
Branding
Upload
App Title
Alex's Income Dashboard
FX Rates & Preferences
1 GBP → USD
1.2700
1 EUR → USD
1.0850
1 AUD → USD
0.6450
1 HKD → USD
0.1280
1 JPY → USD
0.0067
1 CAD → USD
0.7300
Apply 30% US withholding tax on USD dividend & distribution income
Refresh Live FX Rates
✓ Live rates last fetched: 13/05/2026 · FX rate date: 2026-05-12 · Source: Frankfurter / European Central Bank
The Settings panel: free users see Appearance, FX Rates & Preferences, and Dividend Lookup Sources. The Branding section shown above (custom title and logo) is a Pro-only section not present in the free Settings panel.
Dark & Light Theme
Switch between the default dark mode and a clean light theme. Applies instantly, remembered across sessions.
Custom Dashboard Title Pro
Type a personal name in the Branding section such as "Alex's Portfolio" or "Our Family Income" — up to 80 characters, shown in the header.
Custom Logo Pro
Upload your own photo or logo to replace the default icon. Makes the dashboard feel like a custom app built just for you.
Monthly Target
Edit directly in the hero panel (Pro: on the Income Sources tab). Just click on the number and type your goal. The progress bar updates instantly. No Settings needed, available in both free and Pro.
Base Currency
Choose any of the 21 supported currencies. Every holding is converted to this currency for display, regardless of what it pays in.
US Withholding Tax
Non-US residents: tick this box to automatically deduct 30% from USD dividend income. Not applied to rental property income.
After changing your base currency, always click Refresh Live FX Rates to pull current rates for the new base. Rates you typed in yourself for currencies with no live rate are converted to the new base automatically. Then click Save Settings at the sticky bar at the bottom of the panel.
SECTION 5

Stocks, REITs & Funds

Free plan: up to 10 holdings. You can add, edit, and remove freely within this cap. Pro: unlimited. If your portfolio grows beyond 10 positions, upgrading removes this cap entirely.

Add any dividend-paying stock, REIT, ETF, closed-end fund, or investment trust here. Click + Add Counter to enter a holding manually, or Import Holdings to bring in multiple at once from a spreadsheet.

Screenshot: The Add Counter form, Pro version (extra fields highlighted)

Add Counter
Stock · REIT · ETF · CEF · Fund
Ticker Symbol
O
NYSE (default)
Lookup
✓ Found: Realty Income Corp · latest DPU USD 0.2635 · Monthly · Please verify before saving.
Display Name
Realty Income Corporation
Currency
USD
Units / Shares Held
500
DPU per Payment
0.2635
Cost per Unit Pro
0.00 · leave blank if unknown
optional · enables Yield on Cost
Frequency
Monthly (12×/yr)
Payment Months
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
Estimated Income / Month
$131.75 /mo avg (USD 131.75 × 12 payments/yr)
Notes Pro
optional · broker, account type, tax wrapper, reminders…
Free users see the same form without the two Pro-exclusive fields: Cost per Unit and Notes. The Income Preview at the bottom updates live as you type.

Dividend Counter Form Fields

1
Ticker & Exchange: Enter the ticker symbol (e.g. O, BATS.L, 2800.HK) and select the exchange, which also sets the currency. Then click Lookup to try auto-fetching dividend data. Always verify results before saving. For a currency with no live rate (Saudi riyal, Taiwan dollar, Russian rouble), an FX Rate field appears: enter how many units of your base currency one unit of that currency buys. The holding is not counted until you do.
2
Units / Shares Held: How many shares or units you currently own. Only you know this; the tracker can't fetch it from any data source.
3
DPU per Payment: Distribution Per Unit, per individual payment event. Use the latest payment, because Income Refinery treats it as your run-rate going forward. If a stock pays $0.75/share quarterly, enter 0.75, not the annual total of $3.00. Annual income is Units × DPU × payments per year.
4
Cost per Unit Pro: What you paid per share when you bought it. Entering this unlocks Yield on Cost: the income yield on your actual purchase price, not the current market price. A key metric for long-term dividend investors. See the full math behind the calculation if you want to check our working.
5
Payment Months: Select the frequency (Monthly, Quarterly, etc.) and month buttons auto-highlight. Click individual months to customise for irregular schedules. Annual income is the DPU times the number of payments you select, so irregular dividends are worth a read.
6
Notes Pro: Up to 200 characters for anything useful: broker, tax wrapper, account type, or a reminder to check the DPU each January. Shows on the card and in table view.

Importing Holdings from a Spreadsheet

Click Import Holdings to add many holdings at once. The importer accepts two kinds of file, and you can start with the simpler one. A simple summary has one row per holding. A richer history has several rows for the same ticker, one for each dividend event, so that Income Refinery can also see the dividend trend and work out how often, and in which months, each holding pays.

The minimum is a ticker and a number of units. Each holding needs a Ticker (or Symbol) and Units (or Shares, or Quantity) on at least one of its rows. You do not need nine columns. A file with only Ticker and Units is accepted, and so is a file that adds a DPU, a Frequency, or an Ex-Date and a Payment Date.

Optional columnWhat it does
NameThe display name of the holding.
CurrencyA three-letter code such as USD or SGD. When it is blank, the currency comes from the exchange suffix (D05.SI is SGD), then from an Exchange column, and otherwise it is USD.
ExchangeHelps settle the ticker suffix and currency when the ticker has none.
DPU (also Dividend Per Unit, Dividend Per Share)The cash paid per unit for one payment, not the total received and not the annual figure. A written 0 is kept as a real zero. A blank is kept as unknown.
FrequencyMonthly, Quarterly, Semi-Annual or Annual. It sets how many payments a year the holding makes.
Payment MonthsThe months in which cash arrives, as numbers (for example 2,5,8,11) or names.
Ex-DateThe ex-dividend date of a dividend event.
Payment DateThe date the cash was, or is expected to be, paid.
FX RateOnly for a currency with no live rate (Saudi riyal, Taiwan dollar, Russian rouble): how many units of your base currency one unit of that currency buys.

Several rows for one ticker. Repeat the ticker on every dividend event. At least one of the rows must have Units. Repeating the same Units on every row is recommended, especially for a spreadsheet made by an AI assistant. Rows are grouped by ticker, so ten rows for the same ticker become one holding.

Ex-Date and Payment Date. The Ex-Date identifies the dividend event and puts the events in order, so the newest event sets the DPU. The Payment Date is when the cash is expected or was paid, and it is preferred when working out which month the cash arrives in. When a row has both, they are kept separately: an Ex-Date of 28 March with a Payment Date of 15 April is a March event whose cash arrives in April. A row that has only a Payment Date is still a dated event, and the Payment Date puts it in order. Only a row with neither date is read as the holding's own current DPU rather than as a dividend event.

File types and capacity. Import Holdings reads XLSX, XLS, XLSM, CSV and TSV files up to 20 MB. On the free plan the finished portfolio can hold up to 10 holdings. Holdings are counted after the rows have been grouped by ticker, and an update to a holding you already have does not take a new slot. Several history rows for one ticker are one holding and use one slot, so twenty rows for a single ticker do not use twenty slots.

How the DPU and the Payment Schedule Are Worked Out

The DPU is the latest payment, not an average. Income Refinery takes the most recent known cash payment per share or unit as the DPU and uses it as a forward run-rate. Annual income for a holding is Units × current DPU × payments per year, then adjusted for withholding tax and currency conversion as set up in Settings. This is a planning assumption, not a prediction of what the issuer will pay. If a payout changes, update the DPU.

Earlier payments are kept separately as history. When a Lookup or an import supplies several dated payments, the newest sets the DPU, and the earlier ones feed the Pro Dividend Health Panel and the payment pattern. An average of past payments is never used as the forward DPU. For example, if the last four payments were 0.20, 0.25, 0.25 and 0.25 (newest first), the DPU is 0.20, the earlier average is 0.25, the Dividend Health Panel shows a Potential cut of 20%, and a quarterly holding earns 0.80 per unit a year.

Frequency says how often a holding pays. Payment Months says when. They are different facts. A Frequency of Quarterly gives four payments a year, and that count is what annual income uses, but it does not prove that the payments fall in March, June, September and December. Payments per year and payment months come from the first of these that applies:

1
Payment Months you entered or imported.
2
Actual Payment Date history. The Payment Dates give the real cash months, but only when there is enough history to be sure: roughly twelve months of a monthly payer, four quarters, three semi-annual payments or two annual payments. A few recent dates are not enough, and one unusual extra payment does not change the count. If only some events have a Payment Date and those dates point to a different frequency from the Ex-Date history as a whole, the broader Ex-Date history is used and the import preview says the payment dates were incomplete.
3
An explicit Frequency (Monthly, Quarterly, Semi-Annual or Annual), for the number of payments a year. Used on its own it gives no months, so the months it shows are a placeholder and are marked approximate.
4
Ex-Date history, as an estimate. The cash usually arrives some weeks after the ex-date, so months worked out this way are marked estimated.
5
The schedule the holding already has, when you update it with Import Holdings in Merge mode and the file gives no schedule.
6
Quarterly, as a disclosed fallback, for a new holding in Import Holdings when nothing above applies. The import preview marks it assumed so you can correct it.

Once saved, a holding whose months are estimated, approximate or assumed keeps that note. The holding shows (estimated), (approx.) or (assumed) beside its payment months. In Pro, the Excel Holdings sheet has a Schedule Basis column and a Data Quality warning for the same holdings, and the calendar carries a note that actual cash timing may differ. Annual income is not changed by any of this, because it already uses the expected number of payments a year.

Lookup. Lookup uses the newest payment as the DPU. The payment dates support the schedule only when they are enough to confirm it. Lookup does not always know the schedule: when it finds a DPU but cannot confirm the schedule, it reports a Partial match and leaves the Frequency for you to choose before you can save a new holding. Always check the Frequency and months before saving.

Quick Search Pro. The Add by ticker bar shows a result as Verified when both the DPU and the schedule are confirmed, and one-click Add is available. When the DPU is found but the schedule is not, the result shows as Partial with the note Payment schedule could not be confirmed, no annual estimate is shown, and one-click Add is switched off. Quick Search never assumes Quarterly. Choose Customise & add, set the payment frequency, then save.

Import Holdings and the Watchlist. The priority list above applies to both. A DPU on a row with neither an Ex-Date nor a Payment Date is the holding's current DPU; otherwise the newest dated event supplies it (by Ex-Date, or by Payment Date when the row has no Ex-Date), and the older events supply the trend. A written 0 is kept as a real zero and a blank is kept as unknown. The preview marks from pay dates (real Payment Dates), estimated (from Ex-Dates), approximate (from the Frequency only), assumed (Quarterly fallback) and kept (the holding's existing schedule), so you can see every assumption before you confirm.

Excel export Pro. The Holdings sheet exports the same current DPU, payments per year and payment months you see in the app, with a Schedule Basis column beside the months, and the annual income on the Summary and Calendar sheets matches the dashboard.

Search, Sort & the ≡ Table View

Once holdings are added, a search and sort toolbar appears above the list. Type any part of a name or ticker to filter instantly, and use the sort dropdown to order by income, DPU, name, or units held.

≡ Table View Pro

Pro users can click ≡ Table in the section header to switch from card view to a compact, sortable table. Every column (Name, Currency, DPU, Units, Annual Income, % of total, Yield on Cost, and trend indicator) is clickable to sort ascending or descending. Invaluable for comparing a large portfolio at a glance.

Dividend Health Panel Pro

After a successful Lookup, Pro users see a Dividend Health Panel above the holding's card. It compares each holding's latest dividend payment with the average of the earlier payments (up to eight events) and labels it Growing, Stable or Potential cut. That average is a historical figure for this check only. It is separate from the DPU your income is built from, which is always the latest payment.

A holding is flagged as a Potential cut when its latest payment is at least 5% below that average. It is labelled Growing when it has at least three payments, the latest is at least 3% above the average of the earlier ones, and at least 60% of the steps from one payment to the next were flat or higher. Both are screening signals, not confirmation that an issuer has cut or raised its distribution. Payments are not matched by season, and special distributions are not removed, so an unusually large earlier payment can make a normal one look like a drop. Check the issuer's announcement before you act.

The check compares positive payments only. Payments of zero are left out of it, so it does not show a past suspension and does not confirm that payments were uninterrupted. A DPU you have recorded as zero is shown separately as DPU zero.

If a holding's current DPU is recorded as zero, the panel shows DPU zero instead of Stable or Growing, with a note to verify with the issuer. A zero can mean a suspended or discontinued distribution, or it can be a figure that was entered wrongly, so Income Refinery does not call it a confirmed suspension. A DPU you left blank is unknown, not zero, and is never flagged this way.

Screenshot: Holdings section, Pro view with blended yield, Table toggle, and Dividend Health Panel

Stocks, REITs & Funds 8 Blended yield: 6.2%
≡ Table
Import
+ Add Counter
8 of 8
◆ Dividend Health: Realty Income (O) · last 8 payments
$0.2550 · $0.2565 · $0.2580 · $0.2600 · $0.2610 · $0.2620 · $0.2630 · $0.2635   ↑ Steady upward trend
Realty Income Corporation
O · USD · 500 units · $0.2635/payment · Monthly · YoC: 7.1%
$131.75
/mo avg
✕
Enbridge Inc.
ENB.TO · CAD · 300 units · CA$0.9150/payment · Quarterly · YoC: 8.3%
$207.80
/mo avg
✕
Pro: Section header shows blended yield and the ≡ Table toggle. The Dividend Health Panel shows recent DPU history. Each card shows Yield on Cost when a cost was entered.

Supported Stock Exchanges: 30 Global Markets

The Add Holding dropdown lists all 30 exchanges below, and choosing one sets the currency for you. Twenty-seven of them trade in a currency with a live rate. Three, Tadawul (SAR), TWSE (TWD) and MOEX (RUB), have no live rate: for those, the form asks you to type the exchange rate yourself, and the holding is not counted until you do. London prices are quoted in pence (GBp), which Lookup does not apply; for a London holding, enter the DPU in pounds and keep the currency as GBP. The same applies to any security quoted in cents or another sub-unit.

ExchangeSuffixExample TickersCurrency
NYSEnoneO, UTF, T, ETYUSD
NASDAQnoneMSFT, AAPL, QCOMUSD
SSE: Shanghai.SS600036.SSCNY
Euronext Paris.PAAIR.PA, BNP.PAEUR
JPX: Tokyo.T7203.T, 8306.TJPY
SZSE: Shenzhen.SZ000333.SZCNY
HKEX: Hong Kong.HK2800.HK, 0823.HKHKD
NSE: India.NSRELIANCE.NS, TCS.NSINR
LSE: London.LBATS.L, LGEN.L, RIO.LGBP
BSE: Bombay.BO500325.BOINR
TSX: Toronto.TOENB.TO, TD.TO, BCE.TOCAD
Deutsche Börse.DEALV.DE, SIE.DEEUR
Tadawul: Saudi Arabia.SR2222.SR (Aramco)SAR
KRX: Korea.KS005930.KS (Samsung)KRW
SIX: Switzerland.SWNESN.SW, ROG.SWCHF
ASX: Australia.AXCBA.AX, VAS.AX, BHP.AXAUD
TWSE: Taiwan.TW2330.TW (TSMC)TWD
Nasdaq Nordic: Stockholm.STERIC-B.ST, VOLV-B.STSEK
B3: Brazil.SAPETR4.SA, VALE3.SABRL
JSE: Johannesburg.JOSOL.JO, NPN.JOZAR
BME: Madrid.MCSAN.MC, IBE.MCEUR
BIT: Milan.MIISP.MI, ENI.MIEUR
MOEX: Moscow.MESBER.ME, GAZP.MERUB
Bursa: Malaysia.KLPBBANK.KL, KLCC.KLMYR
SGX: Singapore.SIAJBU.SI, O5RU.SISGD
SET: Thailand.BKPTT.BK, SCB.BKTHB
IDX: Indonesia.JKBBCA.JK, TLKM.JKIDR
PSE: Philippines.PSSM.PS, BDO.PSPHP
TASE: Tel Aviv.TAESLT.TA, NICE.TAILS
WSE: Warsaw.WAPKN.WA, PKO.WAPLN
SECTION 6

Rental Properties

Free plan: up to 1 rental property. If you own multiple properties, Pro removes this limit entirely.

Click + Add Property to track net rental income from any property in any currency. FX conversion to your base currency is handled automatically.

1
Property Name: A descriptive label you'll recognise: "London Flat", "Miami Condo", "Toronto Duplex Unit 1".
2
Currency & FX Rate: The currency rent is paid in. The FX rate auto-fills from your last live refresh. For a currency with no live rate, the field starts blank and you enter the rate yourself; the property is not counted until you do.
3
Monthly Gross Rent: What tenants pay each month before any deductions.
4
Monthly Operating Costs: A combined figure covering mortgage repayments, management fees, insurance, and maintenance reserves. The Net Income Preview at the bottom updates live as you type.
5
Purchase Price Pro: The price you paid, enabling automatic Net Rental Yield calculation displayed on the property card. See how Net Rental Yield is worked out.
6
Current Value Pro: Today's estimated market value of the property. This feeds the Portfolio Snapshots auto-fill, so your snapshot's portfolio value is accurate without manual entry every month.
7
One-time Costs Pro: Optional. One total for everything you paid once to buy and set up the property: stamp duty, legal and agent fees, renovation, furnishing. It is added to the purchase price when working out Net Rental Yield, so the yield reflects what the property really cost you. It does not change your income or the property's value.
8
Notes Pro: Up to 200 characters for reminders: managing agent contact, lease end date, planned works, etc.
Properties are assumed to pay every month of the year. For seasonal or short-term rental income, enter an annualised monthly average as the net figure. Pro users also get a ≡ Table View for properties, sortable by gross rent, costs, net income, annual total, and rental yield.
SECTION 7

Tracking Bonds, Savings & Other Passive Income Streams

Free plan: up to 3 other income streams. Pro: unlimited. If you hold multiple bonds, savings accounts, and royalty streams, Pro lets you track all of them.

This section handles everything that isn't a stock or a property. Choose from 12 categories, then fill in the amount, currency, and payment schedule. The Capital Deployed field Pro lets you record the capital behind each stream so the app can calculate your yield on that capital.

Amount is the income you receive per payment event, not the annual total. The app calculates your annual figure by multiplying by the number of payments per year, so a bond paying $500 each June and December is entered as $500 Semi-annual, not $1,000 Annual. This is the same convention as the DPU field in Holdings.

HYSA / CD / Savings
High-yield savings accounts, certificates of deposit, term deposits. Set Monthly frequency and enter the monthly interest amount.
Treasury / Muni Bonds
Government bonds and savings bonds in any currency. Use Semi-Annual or Annual frequency to match the coupon schedule.
Corporate Bonds
Bond coupon payments from corporate issuers. Enter the coupon amount per event and select payment months.
Private Credit
Direct lending funds, private debt platforms, or structured credit vehicles. The custom month picker handles irregular schedules.
401k / IRA / Pension
Monthly pension payments, Social Security distributions, annuity income, or retirement fund withdrawals.
And 7 more categories…
Peer Lending, Social Security, Royalties, Digital Products, Annuities, Business Income, and a catch-all Other for anything that doesn't fit neatly elsewhere.
Don't overlook this section. Many investors focus only on dividends and miss the bigger picture. Adding savings interest, bond coupons, and any other regular income streams gives you the complete view of what your capital is actually earning.
SECTION 8

Data Management & Backup Pro

All export and backup functions are exclusive to Income Refinery Pro and are found in Settings → Data tab. Free has no backup or restore. The one exception is the Move to Pro tab in Free Settings, which saves your portfolio as a file for Pro (see Moving from Free to Pro below).
Pro users: please read this carefully

All your data is stored in your browser's local storage, not a cloud save. Clearing your browser cache, switching browsers, or using a different device will erase everything unless you have a JSON backup. Always export before clearing cache, and keep dated copies in cloud storage.

↓ Export JSON Pro
Creates a re-importable backup of your portfolio, settings, snapshots and FX data. This is your primary backup. The only export that can be re-imported. API keys are excluded by default unless you explicitly choose to include them. If you tick Include API keys in backup, keep the file private because those credentials are stored in it in plaintext.
↑ Import JSON Pro
Restores from a previously-exported JSON file. Replaces all current data. Confirms before overwriting. Works on any device with the Pro app file. On a new device, the Pro welcome screen also offers Restore an existing backup.
Export Excel Pro
Multi-sheet Excel workbook with summary, forecast, holdings, property, other income, calendar and FX details. For printing, sharing with an adviser, or external analysis. Cannot be re-imported.
Snapshots CSV Pro
Exports your portfolio snapshot history as a CSV file for analysis in Excel or Google Sheets.

Moving from Free to Pro

Free and Pro use the same data format, so your portfolio comes with you. Your holdings, properties, other income, currencies, exchange rates, payment months, targets and withholding setting all carry over, with their record IDs. Nothing is removed, and nothing is filled in for you: cost basis and market prices are Pro fields that Free does not have, so they start empty until you add them.

Same website address, same browser
If Pro opens from the same website address as Free, in the same browser, it finds your portfolio by itself. Pro keeps a recovery copy of your Free portfolio in the browser, writes the portfolio back in the Pro format, and shows a short note that it is ready. Nothing is exported or imported.
Anywhere else: move it with a file
Pro is a downloaded file, so it normally opens from a different place, and browsers keep each place's data apart. In Free, open Settings → Move to Pro and choose Export for Pro. In Pro, open Settings → Data and choose Import your Free portfolio. Pro shows what is in the file, and what it would replace, before it changes anything, and keeps a recovery copy of the data it replaces.
API keys
The transfer file never contains API keys. If you use Dividend Lookup, enter your key again in Pro under Settings → Lookup. Keys already saved in Pro on that device are kept.
Good backup habits: Export JSON after every session. Use dated filenames: income_refinery_2026-05-25.json. Store two or three recent copies in Google Drive, Dropbox, or iCloud so you can restore from any device.
SECTION 9

Share Your Progress

Both versions include a Share your progress button in the hero panel (Pro: on the Income Sources tab), just below your monthly income total. Clicking it opens the Share Your Progress modal, which generates a branded PNG image of your income dashboard that you can download or post directly to social media.

Aspect Ratios
Choose between 1:1 (Instagram square), 16:9 (Twitter/LinkedIn landscape), or 9:16 (Instagram/TikTok story). The card redraws instantly.
Hide Dollar Amounts
Tick the Hide dollar amounts checkbox to share only percentages, with no exact income, threshold or portfolio figures visible. Pro On the three fixed USD milestone cards (Coffee Money, Four Figures and Five Figures) it also removes the percentage, which shows Achieved instead. See Achievement Cards below.
Social Platforms
Buttons for WhatsApp, X (Twitter), Facebook, LinkedIn, Reddit, and Instagram. Your image downloads automatically; attach it to your post for maximum impact. Reddit opens with a plain title already filled in: choose a community, open the Images tab and attach the card, and check that community's rules on self-promotion first.
Growth % from Snapshots Pro
Once you have 2 or more portfolio snapshots, the Pro share card automatically shows your income growth percentage since your first snapshot, a powerful signal for the FIRE community.
Achievement Cards Pro
When you reach a milestone, the banner offers a Share button. Every milestone you reach is also listed in Analyse ▾ → History with the date you reached it and its own Share button, so you can share it again at any time. The card is made from the record saved when you reached it: the income, the threshold, the currency and the date. Later changes to your portfolio, target, base currency or exchange rates do not alter it. The fixed milestones (Coffee Money at USD 100, Four Figures at USD 1,000 and Five Figures at USD 10,000) are set in US dollars, so a card in another base currency also shows the USD amount and the rate used.

With Hide dollar amounts ticked, those three cards show Achieved in place of a percentage, and leave off the income, the threshold, the USD equivalent and the exchange rate. A percentage of a threshold everyone knows would give your income away: 135.0% of Four Figures is about USD 1,350 a month. The achievement name and the date stay on the card, so it still tells people that you reached the milestone. A name such as Four Figures says your income was at least that level, even though the exact amount is hidden. The same applies to the text that goes with the card when you share it. Other achievement cards, such as Halfway or Lean FI, keep their percentage, because it is measured against a target that only you know.
Include Website URL Pro
The Pro share card includes an optional incomerefinery.com watermark on the image, and the text posted with the card carries your referral link (ticked by default). Untick to leave both out.
The image is generated entirely in your browser using the Canvas API, so no data is uploaded anywhere. The download and Copy Image buttons work offline.
SECTION 10

Portfolio Snapshots Pro

Exclusive to Income Refinery Pro. Found in Settings → Data tab → Portfolio Snapshots.

A snapshot is a point-in-time record of your monthly income and portfolio value. Captured once a month, they build a historical record of your progress toward financial independence, and power the Income Over Time chart. Without snapshots the History chart has nothing to plot, so capturing your first one is worth doing on day one.

Click Capture Snapshot in Settings → Portfolio Snapshots to open the snapshot form. The app auto-fills monthly income and portfolio value from your current data; you can edit either field before saving.

1
Snapshot Date: Defaults to today. You can back-date a snapshot if you missed a month.
2
Monthly Income: Auto-filled from your current dashboard total. Edit if you want to record a different figure (e.g. actual received vs. projected).
3
Portfolio Value: Auto-filled as the sum of your holdings cost basis, property values (from the Current Value field), and capital deployed in other income streams. Override with your authoritative total if you track it elsewhere (e.g. your broker's reported market value).
4
Component Breakdown: Optional expandable section. Shows income and value broken down across Holdings, Property, and Other Income streams. Auto-filled; edit individual rows if needed.
5
Note: Up to 200 characters of context: "After Apr dividend run", "Rebalanced to 60/40", "Bought VICI at $18.40". Shows in the History chart tooltip.
Monthly Reminder
Tick Monthly capture reminder in Settings → Portfolio Snapshots to get a browser notification at the start of each month. Keeps your history consistent.
Included in JSON Backup
All snapshots are automatically included in your JSON backup export. They're restored alongside all other data when you import a backup.
CSV Export
Export your full snapshot history as a CSV file via Settings → Data tab → Snapshots CSV. Useful for building your own charts in Excel or Google Sheets.
SECTION 11

Income Over Time Pro

Exclusive to Income Refinery Pro. Open via Analyse ▾ → History in the header.

The Income Over Time chart is a full-screen view that plots your portfolio snapshot history as a line chart: your passive income journey in one glance. It requires at least one saved snapshot to display data; two or more reveal the trend line.

Portfolio Value Overlay
Click Portfolio Value in the chart toolbar to overlay your portfolio value as a second line. See income and net worth growing together over time, a compelling visual for your FIRE journey.
Inflation-Adjusted View
Click Inflation-Adjusted to adjust historical income to today's purchasing power. Set your assumed inflation rate (default 3%/yr) with the inline input. Gives a more honest view of real income growth.
Share from History
The Share button at the top of the History view makes a card from your latest figures. Below the chart, the Snapshots and Milestones list gives every snapshot and every milestone you have reached its own Share button. That card shows the row as it was on its date: the income in the currency it was recorded in, growth from your first snapshot up to that date, and progress against the target saved with the snapshot. It never shows today's figures or a projected date. Sharing from the list starts with dollar amounts hidden; untick the box to show them.
The Income Over Time chart and the Share card both become significantly more powerful once you have several months of snapshots. Capture one on the first of each month and the chart tells your full story within a few months.
SECTION 12

Forecast & Projection Pro

Exclusive to Income Refinery Pro. Open via Analyse ▾ → Forecast in the header, or the Forecast & projection row on the Dashboard. The Forecast appears as an inline collapsible panel on the Income Sources tab, with no separate page or modal.

The Forecast & Projection engine is Income Refinery Pro's answer to the most important question in passive income investing: "When will I reach financial independence?" It takes your current income as the baseline and projects it forward simultaneously under three scenario bands: Conservative (the floor), Base (your own assumptions), and Optimistic (the ceiling), giving you a realistic range rather than a single optimistic line. Open it via Analyse ▾ → Forecast; it appears as an inline collapsible panel directly on the main dashboard.

Conservative scenario
Keeps your capital, yield, rental growth, Other Income growth and reinvestment assumptions, but removes positive holding-distribution growth. If your Base distribution growth is negative, that decline is kept. The cautious end of the range, not a guarantee.
Base scenario
Your own assumptions: the capital, yield, growth rate, and reinvestment settings you enter. The most likely path.
Optimistic scenario
+2% distribution growth above your base setting, +25% yield on new capital, and distributions reinvested. The ceiling.

Click Show assumptions to expand the inputs panel. Your settings are saved between sessions.

Forecast & Projection Assumptions

1
Monthly New Capital: New money you plan to invest each month. Set to 0 if you are not actively adding to your portfolio.
2
Target Yield on New Capital: The average annual income yield you expect on new investments. Typically 4–7% for a diversified dividend or income portfolio. It applies to fresh contributions and to income you reinvest alike; a worked example shows how.
3
Annual DPU / Distribution Growth: How much you expect existing distributions to grow year-on-year. Quality dividend growers typically increase payouts 2–5% annually. How growth is applied to each income stream is set out in the methodology.
4
Reinvest Distributions: When enabled, income received is added back to capital each month, compounding growth across the projection horizon. See how the forecast models reinvestment, including which income streams count.
5
Projection Horizon: 2, 5, 10, 15, 20, 25, or 30 years. The chart and all milestone dates update instantly.

Financial Independence Tiers (Lean, Standard & Fat FI)

Within the assumptions panel, you can set the percentage thresholds for each FI tier; these feed directly into the FI Milestones strip on the Income Sources tab and the projected FI date in the Target Drawer. The defaults match most FIRE community conventions but are fully adjustable.

Forecasts are for planning purposes only. They assume consistent capital deployment and constant yields, neither of which is guaranteed. Treat projections as directional guides, not definitive timelines.
SECTION 13

What-If Scenario Modeller Pro

Exclusive to Income Refinery Pro. Open via Analyse ▾ → What-If in the header. Opens as a side drawer.

The What-If drawer is Income Refinery Pro's scenario planning tool: a side drawer that lets you model hypothetical changes to your portfolio before committing real capital. It has three interconnected parts: a Hypothetical Portfolio builder, two focused scenario cards (Capital Deployment and Distribution Change), and a live Scenario Calendar that shows the combined 12-month income impact visually. Open it via Analyse ▾ → What-If.

Hypothetical Portfolio Builder

The top section of the drawer lets you add fictional income sources to model "what if I bought this?" without touching your real portfolio. Nothing added here affects your actual data.

+ Holding
Add a hypothetical stock, REIT, or ETF. Enter the ticker (optional), units, DPU per payment, currency, and payment frequency. The form shows the same frequency chips as the main Add Holding form.
+ Property
Add a hypothetical rental property with a label and monthly net income. Useful for modelling "what if I bought a second property that generates $1,500/mo net?"
+ Other Income
Add a hypothetical income stream with a label, amount per payment, currency, and frequency (Monthly, Quarterly, or Annual). Model a bond, HYSA, or any other income source.

Each item you add appears in the list below the form buttons. The Scenario Calendar updates immediately to show how the hypothetical income stacks up against your actual portfolio month by month. Remove any item with its × button.

Capital Deployment & Distribution Change Scenarios

Two cards sit below the Hypothetical Portfolio, each modelling a different type of change to your portfolio:

1
Capital Deployment: Enter a lump sum and the annual yield you expect to earn on it. Instantly see the additional monthly income that capital would generate. Useful for deciding whether to deploy cash sitting in a savings account.
2
Distribution Change: Enter a percentage (positive for an increase, negative for a cut). Applies uniformly to your existing Stocks, REITs and Funds distributions only; Property and Other Income are unchanged. A quick stress-test: "What happens to my income if my holdings cut distributions by 20%?"
3
Combined Impact: A summary card shows the net result of all three inputs together: the hypothetical portfolio items, the capital deployment, and the distribution change. Answers the compound question: "Would buying these two holdings plus deploying $100k survive a 20% distribution cut?"

Scenario Calendar: 12-Month Income View

The Scenario Calendar at the bottom of the drawer is the most useful part for day-to-day planning. It renders a 12-month calendar showing your modelled total income per month: your real holdings plus all the hypothetical items you've added. Months with no income are highlighted. Use it to check for seasonal gaps before committing to a new position.

A typical workflow: add a few holdings you're researching (using + Holding), check the Scenario Calendar to see which months they fill, then use the Distribution Change card to stress-test the combined portfolio against a cut. All three tools update instantly, with no save or submit button.
SECTION 14

FI Milestones Pro

Exclusive to Income Refinery Pro.

The FI Milestones strip appears automatically between the hero and the monthly calendar on the Income Sources tab. It shows three financially independent income levels, calculated from your monthly target, and tells you how far away each one is, updated in real time every time you add or edit a holding.

FI Milestones
Lean FI: 70% of target
$4,200/mo ✓ Achieved
Basic needs covered · $50,400/yr
Standard FI: 100% of target
$6,000/mo · ~3.2yr
Projected: Aug 2029 · $72,000/yr
Fat FI: 150% of target
$9,000/mo · ~9.8yr
Projected: Mar 2035 · $108,000/yr
Lean FI shows when basic needs are covered; Standard FI is your target income; Fat FI is a comfortable cushion above it. Achieved milestones highlight in green. Achieved milestones turn green.

The milestone percentages (70% for Lean, 150% for Fat) are configurable in the Forecast panel's assumptions section. Projected dates are driven by your Forecast assumptions, so they update as you adjust your monthly capital contributions and expected yield.

SECTION 15

AI Prompts: Let Your LLM Do the Legwork

If you hold many positions, entering them one by one can be tedious. Use these ready-made prompts with your favourite LLM, tested on Claude and Gemini. Prompt 1 is all you need to get started: it generates one row per dividend event (with units, and with ex-dates and payment dates where they can be verified) which the importer uses to bulk-add your holdings and populate the Pro Dividend Health Panel in a single operation. Prompt 2 is optional: use it if you want a dedicated Priority 1 Watchlist to power the Lookup button with a fast, offline cache. In Pro, the welcome screen links straight to this section.

Recommended workflow: Start with Prompt 1: generate the CSV and click Import Holdings. Your counters are added with units, payment months, DPU, and trend history all in one go. If you later want faster offline Lookup as you add new tickers, generate Prompt 2 and upload it as the Priority 1 Watchlist in Settings.

Prompt 1: Holdings Import (one row per event → Import Holdings + DPU trend)

Generates one row per dividend payment event per holding, with units on every row. Use this with the Import Holdings button in the Holdings section. The importer automatically groups rows by ticker (one counter is created per holding) and collects the dated events to populate the Pro Dividend Health Panel and DPU trend. No separate watchlist upload is needed. The prompt asks for about 24 months of real events per ticker, which is enough for the importer to confirm how often each holding pays even when a payment is missing. The newest event becomes the DPU, and the Dividend Health Panel looks at the newest eight. The optional columns are not mandatory: a field the assistant cannot verify should be left blank. Verify dividend amounts, currencies, dates and payment schedules against issuer, fund or broker records before importing.

For the simplest import, Ticker and Units are enough to start. The prompt below asks an AI assistant for a richer version with dividend history, Ex-Dates and Payment Dates where they can be verified. Optional fields should be left blank rather than guessed.

Name the dividend column DPU. The importer reads a column called DPU, DPS, Dividend Per Share or Distribution Per Unit as a per-unit figure. A column called Amount, Dividend, Distribution or Payout might hold the total cash you received, so it is not read as DPU: the preview says so, and the DPU stays blank until you enter it. A DPU of 0 is kept as a real zero; a blank is kept as unknown.

Holdings Import Prompt: use with Import Holdings
Please generate a CSV spreadsheet of my current stock/REIT/fund holdings, with their recent dividend history. This will be imported into Income Refinery using the Import Holdings button. REQUIRED FORMAT Use exactly these column headers in this order: Ticker | Name | Currency | Units | DPU | Frequency | Payment Months | Ex-Date | Payment Date GENERAL RULE One row per dividend/distribution event. Repeat Ticker, Name, Currency and Units on every row for that ticker. COLUMNS - TICKER: Exchange-suffixed format (e.g. O for NYSE, BATS.L for LSE, 2800.HK for HKEX, ENB.TO for TSX) - NAME: Full company/fund name - CURRENCY: 3-letter currency code the dividend is paid in (USD, GBP, AUD, HKD, CAD, etc.) - UNITS: My actual shares/units held, as a plain number (e.g. 500). Repeat the same value on every row for that ticker - DPU: Cash dividend or distribution per share/unit for THAT event, as a decimal (e.g. 0.2635). Not the total cash received, not annualised, not a yield percentage, not an average. Write 0 only when the payment was genuinely zero. Leave it blank if you cannot verify it - FREQUENCY: Monthly, Quarterly, Semi-Annual, or Annual. Leave it blank if uncertain - PAYMENT MONTHS: Comma-separated month numbers in which the cash is actually paid (e.g. 2,5,8,11 for a quarterly payer that pays in February, May, August and November). Do NOT write 3,6,9,12 just because the Frequency is Quarterly. Fill it in only when it is verified from issuer information or reliable Payment Dates, otherwise leave it blank - EX-DATE: The ex-dividend (or ex-distribution) date of that event, in YYYY-MM-DD format. Leave it blank if you cannot verify it - PAYMENT DATE: The date the cash was or will be paid for that event, in YYYY-MM-DD format. Never copy the Ex-Date into this column. Leave it blank if you cannot verify it HISTORICAL WINDOW For each ticker, provide about 24 months of real events, newest first: roughly 24 rows for a monthly payer, 8 for quarterly, 4 for semi-annual and 2 for annual. Do not invent, estimate or pad any event. If fewer reliable events exist, return only those. SPECIAL OR EXTRAORDINARY DISTRIBUTIONS Include the event as its own row, but do not use it to decide Frequency or Payment Months. There is no Special column. SUSPENDED OR ZERO DIVIDENDS Only if a reliable source confirms that the dividend is suspended, add one current summary row with DPU 0 and a blank Ex-Date and Payment Date. Otherwise never write 0. DATA QUALITY Do not fabricate anything. Leave unknown fields blank rather than guessing. Keep different exchange listings of the same company as separate tickers. OUTPUT Plain CSV only, no explanation, no markdown, just data starting with the header row. MY HOLDINGS: (Replace this with your own holdings, one per line) O · NYSE · 500 shares MSFT · NASDAQ · 200 shares ENB.TO · TSX · 300 shares BATS.L · LSE · 400 shares 2800.HK · HKEX · 2000 units CBA.AX · ASX · 150 shares

You do not need two years of history. Ticker and Units are enough. DPU, Frequency, Payment Months, Ex-Date and Payment Date give Income Refinery better information, but leaving a field blank is safer than guessing. More spreadsheet rows do not mean more holdings. Ten historical rows for the same ticker are grouped into one holding.

Prompt 2: Watchlist Pro (one row per event → Priority 1 Watchlist)

Generates one row per dividend payment event per holding, without units. Upload this in Settings → Dividend Lookup Sources → Priority 1 Watchlist so the Lookup button resolves any ticker instantly from your own file: offline, no rate limits, no API key needed. It also feeds the Dividend Health Panel when you run Lookup on an existing counter. For initial dashboard setup, Prompt 1 covers both import and DPU trend in one step; Prompt 2 is most useful for keeping the Lookup cache fresh as you add new tickers over time. Ex-Date must be filled on every row: rows without one are excluded from trend analysis. Lookup matches the ticker exactly as written, so keep the exchange suffix in the file (for example D05.SI). A plain symbol is matched to a suffixed one only when that is unambiguous and the currencies agree. If your file holds the same symbol on two exchanges, such as ABC.SI and ABC.L, a lookup for ABC.SI uses only the ABC.SI rows, and a lookup for plain ABC finds nothing in the file.

Watchlist Prompt: upload in Settings → Priority 1 Watchlist
Please generate a CSV watchlist for my stock/REIT/fund holdings. This will be uploaded to Income Refinery as the Priority 1 Watchlist to power dividend lookup and DPU trend analysis. REQUIRED FORMAT Use exactly these column headers in this order: Ticker | Name | Currency | Dividend Per Unit | Ex-Date | Payment Date | Frequency Rules for each column: - Ticker: Exchange-suffixed format (e.g. O for NYSE, BATS.L for LSE, 2800.HK for HKEX, ENB.TO for TSX) - Name: Full name of the stock, REIT, ETF, or fund - Currency: 3-letter currency code - Dividend Per Unit: Cash dividend per unit per individual payment event, as decimal (e.g. 0.2635). Per-payment, NOT annualised - Ex-Date: Ex-dividend date in YYYY-MM-DD format (e.g. 2025-09-15). REQUIRED; do not leave blank, since rows without an ex-date are excluded from trend analysis - Payment Date: Actual payment date in YYYY-MM-DD if known; leave blank otherwise - Frequency: Monthly, Quarterly, Semi-Annual, or Annual CRITICAL: One row per dividend event. For each counter, provide at least the most recent 12 months of reliable events, preferably up to 18 months, as separate rows, newest first. If fewer exist, return all the reliable events and do not invent any. Always fill in Ex-Date; it is required for the Dividend Health Panel to detect DPU trends. Do not omit any counter even if data is uncertain, include the row with what you know. OUTPUT FORMAT: Plain CSV only, no explanation, just data starting with the header row. MY COUNTERS: (Replace with your own holdings) O · NYSE · 500 shares MSFT · NASDAQ · 200 shares ENB.TO · TSX · 300 shares BATS.L · LSE · 400 shares 2800.HK · HKEX · 2000 units CBA.AX · ASX · 150 shares
AI-generated dividend data is based on historical public information and may not reflect the most recent changes (cuts, specials, suspensions). Always cross-check against your broker statements or the company's investor relations page before finalising your entries. Verify dividend amounts, currencies, dates and payment schedules against issuer, fund or broker records before importing.
SECTION 16

API Keys for Live Dividend Data

API keys are entered directly in Settings → Dividend Lookup Sources. Paste a key in the relevant field, click Save Settings, and the Lookup button uses it automatically from that point on. All keys are stored locally on your device, never sent anywhere except directly to the API provider when you do a Lookup. JSON backups leave your keys out unless you tick Include API keys in backup, and importing a backup without keys keeps the keys already on your device.

Referral disclosure: Some of the sign-up links in the table below may be referral links. If you sign up through them, Income Refinery may receive a small commission at no cost to you. This helps support the project. You are always free to sign up directly through each provider's website instead.
#APIBest forFree limitSign up
2Twelve DataUS, EU, Asian exchanges including SGX800/daytwelvedata.com
3EODHD70+ global exchanges: broadest international coverage20/dayeodhd.com
4Financial Modeling PrepUS and European stocks250/dayfinancialmodelingprep.com
5Alpha VantageUS stocks (NYSE / NASDAQ)25/dayalphavantage.co
6Polygon.ioUS stocks only5/minpolygon.io
7MarketStackUS stocks only100/monthmarketstack.com
Mostly US Stocks
Start with a Watchlist upload plus Alpha Vantage. The 25/day free tier is plenty for most portfolio sizes covering NYSE and NASDAQ.
Mixed International
Combine Watchlist upload + Twelve Data + EODHD. Together they cover nearly all 30 exchanges in the dropdown.
Just Getting Started
Use the AI prompt to generate your watchlist, upload it in Settings. No API key needed: instant lookups for every holding, zero rate limits.
SECTION 17

Tips & Good Habits

Watch for calendar gaps
Notice which months show "no income"? Consider holdings that pay in those months to smooth your cash flow across the full year.
Refresh FX before reviewing
Click Live FX before your monthly review to ensure all foreign-currency figures are current. The app auto-refreshes if rates are more than 24 hours old.
Update DPU when dividends change
When a company raises or cuts its dividend, click the pencil icon on the holding, update the DPU, and save. The calendar and averages recalculate instantly.
Don't overlook savings interest
High-yield savings, T-bills, and money market funds are passive income too. Add them to Other Income for your true total picture.
Make ↓ JSON a habit
End every session with ↓ JSON. Store backups in cloud storage. Never clear your browser cache without exporting first, ever.
Use descriptive names
Instead of "Bond A" or "Savings 1", use names like "US 10Y Treasury Nov 2025" or "DBS Multiplier SGD". Makes the dashboard much easier to read at a glance.
Local by design
Your saved portfolio stays in your browser. Income Refinery does not upload it to an Income Refinery backend. Market-data lookups are optional and run on request. FX rate updates may contact external exchange-rate services automatically when rates are missing or stale.
Try the Pro analytics
Curious when you could reach financial independence? The Dashboard, Forecast, What-If and History tools in Income Refinery Pro show where you stand and when you could get there. One-time purchase, no subscription.
You're all set! Income Refinery grows with your portfolio. Start with whatever you have today, even just one holding, and build from there. Watching that monthly income number climb toward your target is one of the most satisfying things in personal finance. Happy investing!
SECTION 18

Refer a Friend

Love Income Refinery? Share it with a friend and you can both come out ahead: they get a bigger discount on Pro, and you earn a referral reward for every friend who joins. It costs nothing to set up and takes about a minute.

Two ways to share

The public code: no sign-up needed
Just want to pass on a deal? Share the code WELCOME10 with anyone. It gives them 10% off Income Refinery Pro instantly at checkout, with no registration required on your part.
Your own code: bigger discount, plus a reward for you Pro
Register for your own unique referral code and your friend gets a larger $10 discount: and you earn a referral reward for every friend who joins. Worth doing if you plan to share with more than one person.

Setting up your own code

1
Register for your unique code. Head to incomerefinery.com/refer and sign up for the Refer a Friend programme. There's no application review or traffic threshold, just genuine enthusiasm for the product and at least one friend who might find it useful.
2
Add your code in Settings → Refer a Friend Pro. Open Settings, click the Refer a Friend tab, and paste your unique code into the Your Discount Code field. It's shown on your Share card alongside a QR code so referrals can use it at checkout. Your code is stored locally on your device only.
3
Share it however suits you. Send your code in a message, drop it in a group chat, post it on social media, or use the ready-made link incomerefinery.com/pro/?discount=YOURCODE, which applies the discount automatically at checkout so your friend doesn't even need to type the code.
Let your Share card do the work for you. Pro Once you've added your code, open the Share Your Progress modal and tick "Include my referral QR code": it's on by default whenever a code is set. Your share card then includes a scannable QR code that takes anyone straight to the Pro page with your discount already applied. Post a progress update, and you've quietly opened the door for a friend to start their own journey. The Reddit button asks whether to post without the QR, because many communities remove referral codes as promotion.
This is a genuine refer-a-friend programme, not an influencer partnership. Anyone using Income Refinery is welcome to take part. For full programme details, visit incomerefinery.com/refer.
SECTION 19

Frequently Asked Questions

Yes. The free version requires no account, no email address, and no credit card. It supports up to 10 dividend holdings, 1 rental property, and 3 other income streams. It includes live FX rates, a 12-month income calendar, multi-currency support, and dividend lookup using your own API keys. The paid Income Refinery Pro is a one-time purchase (no subscription) that removes all limits and adds a Dashboard, JSON backup, Excel export, Forecast & Projection, What-If modelling, Dividend Health Panel, and more.
The free version tracks up to 10 holdings, 1 rental property, and 3 other income streams, with no general backup or export (one narrow export, Move to Pro, carries your portfolio into Pro). Income Refinery Pro (one-time purchase) adds: unlimited holdings, properties, and income streams; a Dashboard with FI projections; JSON backup and restore; Excel export; Forecast & Projection engine; What-If Scenario Modeller; FI Milestones (Lean, Standard, Fat FI); Dividend Health Panel; Yield on Cost; table view; and Notes fields across all forms. Both versions share the same core dashboard, live FX rates, 30 global exchanges, and 8-source dividend lookup system. See the full feature comparison table above.
Yes, this is one of Income Refinery's core differentiators. It tracks three categories: (1) dividend-paying stocks, REITs, ETFs, and funds across 30 global exchanges; (2) rental properties with gross rent, operating costs, and net income; and (3) 12 types of other passive income including savings interest, Treasury and municipal bonds, corporate bonds, private credit, royalties, digital product income, pensions, and annuities. All streams are unified into a single monthly total and converted to your chosen base currency. No other free dividend tracker consolidates all three income types without a subscription.
Income Refinery uses an 8-source priority pipeline: (1) your own uploaded watchlist spreadsheet (works offline, no rate limits, no API key needed); (2) Twelve Data (800/day free); (3) EODHD (70+ global exchanges, 20/day free); (4) Financial Modeling Prep (250/day free); (5) Alpha Vantage (25/day free); (6) Polygon.io (5/min free); (7) MarketStack (100/month free); and (8) Yahoo Finance as an always-on fallback. All API key fields are available on both free and Pro plans. See Section 3 for the full breakdown.
Data backup is a Pro feature. Open Settings and click the Data tab. Click ↓ Export JSON to save a re-importable backup of your portfolio (holdings, properties and income streams), settings, snapshots and FX data. API keys are excluded by default unless you explicitly choose to include them. If API keys are included, keep the backup private because those credentials are stored in the file in plaintext. To restore on any device, open Settings → Data tab → ↑ Import JSON and select your backup file. On a new device, the Pro welcome screen also offers Restore an existing backup. Excel export is also available for sharing or printing but cannot be re-imported. Free has no general backup or export, which is one of the main reasons to upgrade to Income Refinery Pro. The one exception is Settings → Move to Pro, which saves your portfolio as a file for Pro.
Yes. Free and Pro use the same data format, so your holdings, properties, other income, currencies, exchange rates, payment months, targets and withholding setting all carry over, and nothing is removed or changed. If Pro opens from the same website address as Free in the same browser, it finds your portfolio by itself. Otherwise, in Free open Settings, then Move to Pro, and choose Export for Pro; then in Pro open Settings, then Data, and choose Import your Free portfolio. Pro shows a summary of the file before it replaces anything and keeps a recovery copy of what it replaces. The file leaves out API keys, so enter your key again in Pro if you use Dividend Lookup. Cost basis and market prices start empty until you add them.
Portfolio Snapshots (Pro only) are point-in-time records of your monthly income and portfolio value, captured in Settings → Data tab → Portfolio Snapshots. Each stores your total passive income, portfolio value (auto-filled from your holdings, property Current Value, and capital deployed), and an optional note. Over time they build a historical record that powers the Income Over Time chart and the growth percentage shown on your Share card. Capture one on the first of each month; it takes under a minute and tells your full FIRE story within a few months.
Both free and Pro versions include a Share your progress button in the hero panel (in Pro, on the Income Sources tab). Clicking it generates a branded PNG of your dashboard: choose 1:1 (Instagram square), 16:9 (landscape), or 9:16 (story) and optionally hide exact dollar amounts. Share directly to WhatsApp, X, Facebook, LinkedIn, Reddit, or Instagram; or download and copy the image. The Pro version additionally shows income growth percentage when you have two or more portfolio snapshots, includes an optional incomerefinery.com watermark, and can add a referral QR code linking to a discounted Pro signup; see Refer a Friend. It also lists every snapshot and every milestone you have reached in History, each with its own Share button, and that card shows the figures as they were on that date. In Pro, hiding amounts on a Coffee Money, Four Figures or Five Figures achievement card replaces its percentage with the word Achieved, because a percentage of a known USD threshold would reveal your income; the achievement name and date stay visible, so the card still shows the milestone was reached. All generation happens in your browser and nothing is uploaded.
Mostly yes. Once the required app assets are available in the browser, normal data entry, editing and calculations do not require an Income Refinery backend, and the dashboard keeps working without a connection. An internet connection is needed only for live FX rate refresh (rates are cached for 24 hours) and online dividend or market lookups. Excel and spreadsheet functions use SheetJS 0.20.3: the free app loads it from a locally hosted file on this site (/app/xlsx.full.min.js), and Pro embeds it and starts it only when you use Excel functionality. Neither loads it from a third-party site. If you upload your watchlist spreadsheet and refresh FX rates while online, day-to-day tracking needs no further lookups.
The Forecast & Projection engine is a Pro feature. It projects your passive income forward using five adjustable assumptions: monthly new capital deployed, target yield on new capital, annual distribution growth rate, whether distributions are reinvested, and the projection horizon (2–30 years). It calculates when you will reach Lean FI (70% of target), Standard FI (100%), and Fat FI (150%), and displays these as dated milestones and a visual bar chart. All values update instantly as you adjust assumptions. How the forecast models reinvestment and growth is explained in the methodology article. See Section 12 for the full walkthrough.
The What-If drawer (Pro, open via Analyse ▾ → What-If) has three parts. The Hypothetical Portfolio builder lets you add fictional holdings, properties, and income streams to model purchases you are researching, without touching your real portfolio. The Capital Deployment card calculates how much additional monthly income a lump sum would generate at a given yield. The Distribution Change card applies a uniform percentage increase or cut to your existing Stocks, REITs and Funds distributions only; Property and Other Income are unchanged. A Scenario Calendar shows the combined 12-month income impact of all inputs simultaneously. See Section 13 for the full walkthrough.
Yes. Income Refinery is a responsive web app that works in any modern mobile browser: Safari on iOS and Chrome on Android. The dashboard, income calendar, forms, and analytics panels all adapt to smaller screens. Because it runs in the browser, it can be saved to your home screen via the browser's Add to Home Screen option for app-like quick access. All features work the same on mobile as on desktop.
Income Refinery is the only major dividend and passive income tracker that requires no account, no email, and no signup. It also uniquely consolidates all three passive income types (dividends, rental, and other streams) in one dashboard. Most alternatives focus on dividends only and require account registration. See our detailed alternatives comparison page for a side-by-side breakdown against Sharesight, Snowball Analytics, Portfolio Visualizer, TrackYourDividends, DivTracker, and more.