Financial Literature

Reserve Bank of Australia

RBA statistical tables — Australia's cash rate, yields and exchange rates as stable CSV tables

For Australian rates and FX from the source — the cash rate target (F1.1), yields (F2), exchange rates (F11) — each a CSV whose URL never changes.

ratesfxmacroAustralia
Asset classesrates · fx · macro
Frequencydaily → monthly
History1990 → today
Limit · costNo key · static CSVs; a declared User-Agent is required
KeyNo key — No key, but scripts must send an identifying User-Agent — a generic browser string from a script is refused.
Formats · pull withcsv · xlsx — python, excel, sheets
LicenceCreative Commons BY 4.0: free to use and redistribute with attribution to the RBA.
RedistributeYes, with attribution
Best for“The RBA cash rate target and history” · “AUD/USD and the trade-weighted index from the source”
When to use it

Reach for it when…

For Australian rates and FX from the source — the cash rate target (F1.1), yields (F2), exchange rates (F11) — each a CSV whose URL never changes.

Not for: Australian CPI, GDP and jobs (the Australian Bureau of Statistics), ASX prices, anything intraday.

How to read it

Units, revisions, traps

Units. Rates in percent; AUD/USD in US dollars per Australian dollar (note the direction); TWI as an index.

Revisions. Not revised.

  • Ten metadata rows above the data; the row starting 'Series ID' is the header. Daily tables (F1, F2) use DD-Mon-YYYY dates; monthly tables (F1.1, F11.1) use DD/MM/YYYY.
  • AUD/USD is quoted as USD per AUD — the opposite direction from most Asian currencies.
  • A generic scripted User-Agent gets 403; a declared one is accepted.

Classic mistake: Reading a rising AUD/USD as a weaker Australian dollar.

How to use it in your own work

Three recipes

Each recipe: Python · Excel · Sheets, with how to read the result. Python recipes run under pandas; recipe 1 is re-run by the weekly check where the source allows it.

How to use it in your own work

Copy the snippet, change the series id, read the result the way the footer says. Replace YOUR_…_KEY with your own key where one is needed.

Recipe 1The cash rate target, daily

# table F1: money market rates, daily. Declare who you are; a generic scripted UA is refused.
import requests, pandas as pd, io
H = {"User-Agent": "Your Name [email protected]"}   # identify yourself; generic script user-agents are refused
r = requests.get("https://www.rba.gov.au/statistics/tables/csv/f1-data.csv", headers=H, timeout=30)
df = pd.read_csv(io.StringIO(r.text), skiprows=10)
df = df.rename(columns={df.columns[0]: "date"})
df["date"] = pd.to_datetime(df.date, format="%d-%b-%Y")
print(df.set_index("date")["FIRMMCRTD"].dropna().drop_duplicates().tail(8))   # cash rate target, only the changes
How to read the resultEight decisions a year; compare with the ABS quarterly CPI (the RBA targets 2–3% over time).

Recipe 2AUD/USD and the TWI

# table F11.1: exchange rates, monthly (dates are DD/MM/YYYY)
import requests, pandas as pd, io
H = {"User-Agent": "Your Name [email protected]"}   # identify yourself; generic script user-agents are refused
r = requests.get("https://www.rba.gov.au/statistics/tables/csv/f11.1-data.csv", headers=H, timeout=30)
df = pd.read_csv(io.StringIO(r.text), skiprows=10)
df = df.rename(columns={df.columns[0]: "date"})
df["date"] = pd.to_datetime(df.date, dayfirst=True)
print(df.set_index("date")[["FXRUSD", "FXRTWI"]].tail())
How to read the resultUSD per AUD. The TWI is the better measure of whether the currency is helping or hurting exporters.

Recipe 3Government bond yields

# table F2: capital market yields, daily
import requests, pandas as pd, io
H = {"User-Agent": "Your Name [email protected]"}   # identify yourself; generic script user-agents are refused
r = requests.get("https://www.rba.gov.au/statistics/tables/csv/f2-data.csv", headers=H, timeout=30)
df = pd.read_csv(io.StringIO(r.text), skiprows=10)
df = df.rename(columns={df.columns[0]: "date"})
print(df.set_index("date")[["FCMYGBAG2D", "FCMYGBAG10D"]].dropna().tail())   # 2y and 10y
How to read the resultAustralian yields track US yields more than domestic policy on most days; the spread to Treasuries is the AUD story.

Series → question map

The ids we use from RBA statistical tables, each with the question it answers. The catalog's compare view reads the concept tags behind these rows.

SeriesAnswersRegionConcept
F1 · FIRMMCRTDWhat is the RBA cash rate?Australiapolicy_rate
F11.1 · FXRUSDWhere is AUD/USD?Australiafx_usd
F2 · FCMYGBAG10DWhere is the 10-year Australian yield?Australiayield_10y
F2 · FCMYGBAG2DWhere is the 2-year Australian yield?Australiayield_2y

Compare with

Same question, different source: FRED, BOK ECOS, BOJ Time-Series Data. The compare view lines up coverage, frequency, history and access side by side and lists what the combination makes possible.

Open compare: RBA statistical tables · FRED · BOK ECOS →

Questions readers ask

Why does the RBA CSV return 403?

Their edge refuses generic scripted user-agents. Send a User-Agent naming you and a contact address.

Where is Australian CPI?

The Australian Bureau of Statistics (abs.gov.au), quarterly with a monthly indicator; FRED mirrors it.

Are the CSV URLs stable?

Yes — the table code is the filename (f1.1-data.csv, f11.1-data.csv, f2-data.csv).

Educational only — we explain, we never advise · snippet licence: public domain · corrections to [email protected], fixed within a day and logged in the changelog.