Skip to main content

sedlabanki

Central Bank of Iceland — SDMX balance sheets + new credit, key interest rates via gagnabanki, and FX intervention (kaup/sala, turnover, reserves, ISK/EUR).

Source facts

Repository
jokull/icelandic-data
Last source activity
September 10, 2026 at 15:02
Detected SKILL.md language
English
Stars
54
Forks
4

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
sedlabanki
description
Central Bank of Iceland — SDMX balance sheets + new credit, key interest rates via gagnabanki, and FX intervention (kaup/sala, turnover, reserves, ISK/EUR).
# Seðlabanki Íslands (Central Bank of Iceland) **Requires:** Tier 0 (core) for SDMX and FX; Tier 2 (browser) for the gagnabanki interest-rate scrape. Monetary and financial statistics: interest rates, balance sheets, and new credit. **Important:** Both sedlabanki.is and gagnabanki.is are JavaScript SPAs (Blazor / Angular). Simple HTTP fetches return empty HTML shells. Use Playwright for data extraction. ## Data Scope Three core datasets covering Iceland's monetary system: ### 0. Key Interest Rates (Meginvextir Seðlabankans) **Type:** Daily observations **Period:** Jan 2007 - present (18+ years) **Frequency:** Daily (business days) Central Bank policy rates: - **Meginvextir / Key rate** (7-day term deposit rate) — the main policy rate since 2014 - **Vextir á daglánum / Overnight lending rate** - **Vextir á viðskiptareikningum / Current account rate** - Also: 7-day collateralised lending, 28-day CBI CDs, REIBOR rates **Source:** gagnabanki.is Power BI embed (report key: `interests`) ### Data Portal: gagnabanki.is The Central Bank's data portal at `gagnabanki.is` is an Angular SPA wrapping Power BI reports. **Architecture:** - Config API: `GET https://gagnabanki.is/api/config` — returns all report IDs, time series keys, filters - Embed token: `GET https://gagnabanki.is/api/embed/{groupId}/{reportId}` - Group ID: `05060786-7f48-4442-8981-314b262d68a7` - Data flows through Power BI's WABI backend (`*.pbidedicated.windows.net`) **Interest Rate Report:** - Config key: `interests` - Report ID (live): `2b28c90f-7da7-4fd0-bd9b-f87ffeddbb07` - Dataset: `e75e5a3b-6118-4899-a266-62550d1b32e4` - Default series: keys 24, 28, 17923 - All series keys: `[17923, 28, 75, 55, 24, 3459, 17922, 4125, 289, 3460, 3461, 3458]` **Extraction method:** Playwright intercepts Power BI `querydata` responses from `*.pbidedicated.windows.net`. Data arrives in DSR (DataShapeResult) format with compressed values. ```bash # Fetch interest rates to CSV uv run python scripts/sedlabanki_rates.py # Output as JSON uv run python scripts/sedlabanki_rates.py --json ``` **Output:** `data/processed/sedlabanki_rates.csv` with columns: date, series, value ### 1. Balance Sheets (Efnahagur innlánsstofnana) — via SDMX **Type:** Stock (end-of-month positions) **Period:** Sept 1993 - present (387+ months, 32 years) **Frequency:** Monthly Full balance sheet of deposit-taking institutions: - **Assets** (Eignir) - Domestic: Loans (indexed/non-indexed), deposits, securities, derivatives - Foreign: Same breakdown for foreign-held assets - **Liabilities** (Skuldir) - Deposits (demand/term), debt securities, borrowing, equity ### 2. New Credit (Ný útlán) — via Library Download **Type:** Flow (net new lending minus prepayments) **Period:** Jan 2013 - present (155+ months, 13 years) **Frequency:** Monthly New lending by sector and index type: - **Sectors:** Non-financial corps (by industry), Financial corps, Government, Households - **Household detail:** Mortgages (fixed/floating rate), car loans - **Index types:** Indexed (verðtryggð), Non-indexed, Foreign currency ### 3. FX Intervention (Gjaldeyriskaup/-sala) — via XML Time Series **Type:** Flow (daily CBI FX purchases/sales, market turnover) + stock (reserves) **Period:** Daily series since Jan 2009; reserves monthly since Jan 1994 **Frequency:** Daily (business days), aggregated monthly downstream CBI foreign-exchange intervention — the answer to "did the CBI defend the króna?" questions (e.g. the COVID 2020-21 period and the 2025 carry-trade era): - **TS 285** Gjaldeyrissala SÍ í ISK — CBI *sales* of foreign currency, M.kr. (positive = CBI sells FX) - **TS 287** Gjaldeyriskaup SÍ í ISK — CBI *purchases* of foreign currency, M.kr. - **TS 284** Heildarvelta á innlendum gjaldeyrismarkaði — total interbank FX market turnover, M.kr. - **TS 282** Same turnover, M.eur - **TS 4064** Evra, skráð miðgengi — official EUR mid rate (ISK per EUR), daily - **FX reserves** (Gjaldeyrisforði) — from the CBI's own balance sheet workbook ("Sedlabanki" sheet, row "Liðir til skýringar: Gjaldeyrisforði"), monthly M.kr. **Source:** `https://sedlabanki.is/xmltimeseries/Default.aspx` — plain HTTP, **directly fetchable** (no Playwright, no gagnabanki proxy) for the daily series. The reserves workbook is a `sedlabanki.is/library` item fetched through the gagnabanki proxy (see Download URLs). **Fetch:** `uv run python scripts/sedlabanki_fx.py fetch` **Output:** `data/processed/sedlabanki_fx_intervention.csv` — monthly rows with `date, net_purchases_mkr, turnover_mkr, reserves_mkr, isk_per_eur, item_en`. `net_purchases_mkr` = kaup − sala (negative = CBI net seller, defending the króna; positive = accumulating reserves). Reserves and ISK/EUR are month-end; the daily flow series are summed per month. **Known COVID-era pattern (verified against this data):** the CBI was a heavy net SELLER of FX from March 2020 through spring 2021 (net −132.7 bn kr in 2020, −22.7 bn kr in 2021; monthly peaks Oct 2020 −38.3 bn kr), selling reserves to support the króna as ISK/EUR rose from ~135 (Dec 2019) to a trough ~164 (Oct 2020), then recovered to ~146-150 through 2021. It flipped to a net BUYER from 2025 (67.9 bn kr bought in 2025, matching the 67.9 ma.kr. stated in Peningamál 2026/1). ## API **Portal:** `https://gagnabanki.is/report/monetary` **Download Proxy:** `https://gagnabanki.is/api/download` (POST) > ### ⚠️ `fr.sedlabanki.is` is not fetchable directly — the proxy is mandatory > > The SDMX host resolves (`217.151.180.10`, a Vodafone Iceland xDSL pool address) > but **black-holes on both 80 and 443** from the public internet: connections > hang until timeout rather than being refused. It has never been publicly > reachable — archive.org has zero captures of it, ever. > > The server itself is alive and serving current data. Seðlabanki's own backend > reaches it, so **every SDMX fetch must go through > `POST https://gagnabanki.is/api/download`**, which performs the GET from inside > their network. This is a hard requirement, not a convenience wrapper. > > The SDMX URL below is therefore a **proxy payload, not a URL you can curl**. > If you `curl` it directly you will get a `ConnectTimeout` and conclude the > service is dead. It isn't. > > The block mechanism (geo-restriction, source-IP allowlist, or a public A record > fronting a firewalled host) is **unverified** — only the effect is established. ## Download URLs | Dataset | URL Type | Direct? | URL | |---------|----------|---------|-----| | Balance Sheets | SDMX | ❌ **proxy only** | `https://fr.sedlabanki.is/sdmx/v2/table/IS2_EXT/INN_BALANCE_SHEETS_TOTAL/1.0?format=xlsx` | | New Credit | Library | ✅ direct | `https://sedlabanki.is/library?itemid=b73e42d6-ba32-4eb3-b39e-1c70d2e45aec` | | FX market (daily) | XML time series | ✅ **direct** | `https://sedlabanki.is/xmltimeseries/Default.aspx?DagsFra=2009-01-01&GroupID=8&Type=csv` | | EUR mid rate (daily) | XML time series | ✅ **direct** | `https://sedlabanki.is/xmltimeseries/Default.aspx?DagsFra=2009-01-01&TimeSeriesID=4064&Type=csv` | | CBI balance sheet (reserves) | Library | ❌ **proxy only** | `https://sedlabanki.is/library?itemid=c0126d81-fd88-42bd-aee3-449e09b9089f` | ### XML Time Series endpoint (`xmltimeseries`) Separate from the SDMX service: a simple public GET at `sedlabanki.is` (NOT `www.` — that host 301s), returning `Type=csv` as a **headerless semicolon CSV**: `group;group_name;series_id;;series_name;description;date;value`. Dates are `M/D/YYYY h:mm:ss AM` — parse with `%m/%d/%Y %I:%M:%S %p`. Parameters: `DagsFra`/`DagsTil` (`YYYY-MM-DD`, or `LATEST`/`TODAY`), `GroupID` or `TimeSeriesID`, `Type=xml|csv`. See the full catalog at `https://sedlabanki.is/gagnatorg/xml-gogn/` (GroupID 8 = "Velta á gjaldeyrismarkaði", the FX market group; the official mid rates are GroupID 9). ## Fetching Data ```bash # Balance Sheets (32 years of monthly stock data) curl 'https://gagnabanki.is/api/download' \ -X POST -H 'Content-Type: application/json' \ --data-raw '{"url":"https://fr.sedlabanki.is/sdmx/v2/table/IS2_EXT/INN_BALANCE_SHEETS_TOTAL/1.0?format=xlsx"}' \ -o data/raw/sedlabanki/balance_sheets.xlsx # New Credit (13 years of monthly flow data) curl 'https://gagnabanki.is/api/download' \ -X POST -H 'Content-Type: application/json' \ --data-raw '{"url":"https://sedlabanki.is/library?itemid=b73e42d6-ba32-4eb3-b39e-1c70d2e45aec"}' \ -o data/raw/sedlabanki/newcredit.xlsx ``` ## Data Structure ### Balance Sheets Excel Layout - Sheet: `INN_BALANCE_SHEETS_TOTAL` - Row 3: Date headers (1993-09, 1993-10, ...) - Row 4+: Balance sheet line items with hierarchy (indented) - Column B: Row labels (Icelandic / English) - Column C+: Monthly values in M.kr. **Key line items:** ``` Eignir samtals / Assets, total Innlendar eignir / Domestic assets Lán / Loans Útlán / Loans outstanding Niðurfærslur / Provisions (negative) Erlendar eignir / Foreign assets Skuldir samtals / Liabilities, total Innlán / Deposits Markaðsskuldabréf / Debt securities issued Eigið fé / Equity ``` ### New Credit Excel Layout - Sheet: `I` - Row 10: Header with "M.kr." and dates - Row 11+: Sector rows - Repeating blocks for: Total, Non-indexed, Indexed, Foreign currency **Sector hierarchy:** ``` Ný útlán / New credit (total) ├── Atvinnufyrirtæki / Non-financial corporations │ ├── Landbúnaður / Agriculture │ ├── Fiskveiðar / Fisheries │ ├── Iðnaður / Manufacturing │ └── ... ├── Fjármálageiri / Financial corporations ├── Hið opinbera / Government ├── Heimili / Households │ ├── Lán með veði í íbúð / Mortgage loans │ │ ├── Breytilegir vextir / Floating rate │ │ └── Fastir vextir / Fixed rate │ └── Bílalán / Car loans └── Erlendur aðili / Non-residents ``` ### FX Intervention CSV Layout `data/processed/sedlabanki_fx_intervention.csv` — one row per month: | Column | Type | Meaning | |--------|------|---------| | date | date (YYYY-MM-01) | month (flows are monthly sums; stocks are month-end) | | net_purchases_mkr | float | CBI kaup − sala, M.kr. **negative = CBI net seller of FX** | | turnover_mkr | float | interbank FX market total turnover, M.kr. | | reserves_mkr | float | month-end FX reserves (Gjaldeyrisforði), M.kr. | | isk_per_eur | float | month-end official EUR mid rate | | item_en | str | descriptive label of the row | ### CBI Balance Sheet Excel Layout (for reserves) - Sheets: `FAME Persistence2`, `Sedlabanki` - `Sedlabanki` sheet: row 9 = date headers (`1994-01-31 00:00:00`, …), row 60 = `Liðir til skýringar: Gjaldeyrisforði (erlendar eignir, a-f)` — the FX reserves memo line, M.kr. ## Processing Pipeline ```bash # Process balance sheets + new credit to tidy CSVs uv run python scripts/sedlabanki.py # Fetch FX intervention data (raw + processed monthly CSV) uv run python scripts/sedlabanki_fx.py fetch # List the daily FX series available upstream uv run python scripts/sedlabanki_fx.py list ``` **Outputs:** - `data/processed/sedlabanki_newcredit.csv` - New credit by sector - `data/processed/sedlabanki_balance_sheets.csv` - Balance sheet items - `data/processed/sedlabanki_fx_intervention.csv` - FX intervention (monthly) ## Icelandic Terms | Icelandic | English | |-----------|---------| | Innlánsstofnanir | Deposit institutions (banks) | | Efnahagur | Balance sheet | | Eignir | Assets | | Skuldir | Liabilities | | Útlán | Loans (outstanding) | | Ný útlán | New credit (flow) | | Innlán | Deposits | | Verðtryggð | Indexed (to inflation) | | Óverðtryggð | Non-indexed | | Heimili | Households | | Atvinnufyrirtæki | Non-financial corporations | | Gjaldeyriskaup | FX purchases (CBI buys foreign currency) | | Gjaldeyrissala | FX sales (CBI sells foreign currency) | | Gjaldeyrisforði | FX reserves | | Velta á gjaldeyrismarkaði | FX market turnover | | Skráð miðgengi | Official mid rate | ## Data Notes 1. **Stock vs Flow:** Balance sheets are end-of-month stocks; New credit is monthly flow (new loans minus prepayments) 2. **Indexation:** Icelandic loans are either indexed to CPI (verðtryggð) or non-indexed. This distinction is critical for analyzing credit conditions. 3. **Provisional data:** Latest months are provisional, revised when annual accounts published 4. **Units:** All values in M.kr. (million ISK) 5. **Source:** Data collection per Act 92/2019 on the Central Bank of Iceland 6. **Encoding.** Icelandic chars (þ, ð, æ, ö) appear in sector names (Heimili, Atvinnufyrirtæki, verðtryggð) across both SDMX exports and the gagnabanki Power BI payload. Read CSV with `encoding="utf-8"` (the Excel-derived files are `utf-8-sig`); write JSON with `ensure_ascii=False`. 7. **FX sign convention.** In `sedlabanki_fx_intervention.csv`, `net_purchases_mkr` = kaup − sala, so a **negative** value means the CBI *sold* FX that month (net) — the direction that defends/dampens the króna. Series 285 (sala) and 287 (kaup) are both reported as positive numbers upstream; the sign appears only in the net column. 8. **FX provisional data.** The daily FX market numbers are provisional ("nýjustu tölur eru bráðabirgðatölur") and revised; the daily series update each business day at 16:00 with a two-day lag. 9. **Reserves workbook layout is positional.** The `Sedlabanki` sheet reserves row (60) and date row (9) are assumed by row number in `scripts/sedlabanki_fx.py`. If the CBI reorders the workbook, the reserves column breaks — the health test only catches reachability, not the row numbers.
View on GitHub
This SKILL.md is very large, so SkillsMP previews the first section here. View on GitHub