Source documents
Data license: CC-BY-4.0 · Data source: bankproducts.info
4 rows where bank_id = "aikb" sorted by valid_from descending
This data as json, CSV (advanced)
Suggested facets: valid_from, parsed_at, valid_from (date), parsed_at (date)
| id | bank_id | title | valid_from ▲ | language | filename | parsed_at | bpg |
|---|---|---|---|---|---|---|---|
| 604 | Appenzeller Kantonalbank aikb | AIKB Konditionen Anlageloesungen (website) | 2026-04-01 | de | 85a9647b4026_konditionen-anlageloesungen.md | 2026-06-04 | BPG002SNTQVT |
| 605 | Appenzeller Kantonalbank aikb | AIKB Konditionen Courtagen (website) | 2026-04-01 | de | 6da89ab94efb_konditionen-courtagen.md | 2026-06-04 | BPG002G26FCG |
| 606 | Appenzeller Kantonalbank aikb | AIKB APPKB-Invest Fondssparplan (website) | 2026-04-01 | de | c84e2d7520eb_appkb-invest.md | 2026-06-04 | BPG002ACYYF1 |
| 10 | Appenzeller Kantonalbank aikb | Produktseiten appkb.ch | 2026-01-01 | de | appkb.ch-product-pages | 2026-04-08 | BPG002AK0VSK |
Advanced export
JSON shape: default, array, newline-delimited, object
CREATE TABLE source_document (
id INTEGER PRIMARY KEY AUTOINCREMENT,
bank_id TEXT NOT NULL REFERENCES bank(id),
title TEXT, -- Preisübersicht und Konditionen
valid_from TEXT, -- YYYY-MM-DD
language TEXT DEFAULT 'de',
filename TEXT, -- preisverzeichnis.pdf
parsed_at TEXT, -- YYYY-MM-DD
bpg CHAR(12) -- opaque global id, BPG002xxxxxx; populated post-load by bpg_assignments.sql
CHECK (bpg IS NULL OR bpg GLOB 'BPG002[0-9A-HJKMNP-TV-Z][0-9A-HJKMNP-TV-Z][0-9A-HJKMNP-TV-Z][0-9A-HJKMNP-TV-Z][0-9A-HJKMNP-TV-Z][0-9A-HJKMNP-TV-Z]')
);
CREATE INDEX idx_source_document_bank ON source_document(bank_id);
CREATE UNIQUE INDEX idx_source_document_bpg ON source_document(bpg) WHERE bpg IS NOT NULL;