home / bankproducts

Products

Retail banking products. Each row is one product offered by one bank. Categories: current_account, savings_account, pillar_3a, vested_benefits, mortgage, credit_card, debit_card, term_deposit, wealth_management, securities_trading, etc.

Data license: CC-BY-4.0 · Data source: bankproducts.info

13 rows where bank_id = "cmv" sorted by bank_id descending

✎ View and edit SQL

This data as json, CSV (advanced)

Suggested facets: category, currency, client_type, target_group, access_tier

id bank_id ▲ category name currency client_type target_group description valid_from source_document_id bpg access_tier is_tailored notice_period_days iso_account_type age_range_min age_range_max age_range_label status
cmv:compte_courant_prive CMV SA (Caisse Mutuelle de la Vallée) cmv current_account Compte Courant Privé CHF private standard Compte privé avec limite de crédit possible. Particuliers.     BPG003R2F74K free 0           active
cmv:compte_combier CMV SA (Caisse Mutuelle de la Vallée) cmv current_account Compte Combier CHF private standard Compte privé positioné "Combier" (régional Vallée de Joux). Particuliers.     BPG003Z7H8AM free 0           active
cmv:compte_epargne CMV SA (Caisse Mutuelle de la Vallée) cmv savings_account Compte Épargne CHF private standard Compte épargne standard.     BPG003KZC379 free 0           active
cmv:compte_epargne_60plus CMV SA (Caisse Mutuelle de la Vallée) cmv savings_account Compte Épargne 60+ CHF private senior Compte épargne senior (60+).     BPG003F0TTMF free 0           active
cmv:compte_epargne_placement CMV SA (Caisse Mutuelle de la Vallée) cmv savings_account Compte Épargne Placement CHF private standard Compte épargne avec horizon de placement à moyen terme.     BPG00362D3GY free 0           active
cmv:compte_prive_25 CMV SA (Caisse Mutuelle de la Vallée) cmv current_account Compte Privé 25 CHF private youth Compte privé pour jeunes 14-25 ans. Forfait mensuel offert. Cartes Debit Mastercard, Crédit et Travel cash gratuites. Trafic paiements Suisse gratuit.     BPG0034JR9AZ free 0           active
cmv:compte_epargne_jeunesse CMV SA (Caisse Mutuelle de la Vallée) cmv savings_account Compte Épargne Jeunesse CHF private youth Compte épargne pour jeunes jusqu'à 25 ans. Retrait limite CHF 20000/mois, au-delà préavis 3 mois. Frais d'écriture: aucun. Bouclement annuel sans frais.     BPG003NED8CQ free 0           active
cmv:compte_maison CMV SA (Caisse Mutuelle de la Vallée) cmv current_account Compte Maison CHF private standard Compte spécifique pour propriétaires.     BPG00319YTFY free 0           active
cmv:hypotheque CMV SA (Caisse Mutuelle de la Vallée) cmv mortgage Financements immobiliers (Hypothèque) CHF private standard Hypothèque pour propriétaires. Rates "sur demande ou disponible sur notre site web" — pas dans le PDF Prestations.     BPG003090H25 pro 0           active
cmv:compte_courant_entreprises_chf CMV SA (Caisse Mutuelle de la Vallée) cmv current_account Compte Courant Entreprises CHF CHF business standard Compte courant pour entreprises et indépendants en CHF.     BPG003HDCE0K free 0           active
cmv:compte_courant_entreprises_me CMV SA (Caisse Mutuelle de la Vallée) cmv current_account Compte Courant Entreprises Monnaies Étrangères multi business standard Compte courant en monnaies étrangères (EUR/USD/autres).     BPG003AWJF6G free 0           active
cmv:compte_salaire_non_domicilie CMV SA (Caisse Mutuelle de la Vallée) cmv current_account Compte Salaire Non domicilié en Suisse CHF private standard Compte salaire pour personnes non-domiciliées en Suisse (frontaliers, travailleurs étrangers).     BPG003M68KDS free 0           active
cmv:debit_mastercard CMV SA (Caisse Mutuelle de la Vallée) cmv debit_card Carte Debit Mastercard CHF private standard Carte débit Mastercard liée aux comptes CMV. Gratuite pour Compte Privé 25 (jeunes). Trafic CMV gratuit, ATM CH gratuit, ATM étranger CHF 5/retrait.     BPG00383XQF0 free 0           active

Advanced export

JSON shape: default, array, newline-delimited, object

CSV options:

CREATE TABLE product (
    id                  TEXT PRIMARY KEY,  -- zkb:privatkonto, ubs:key4_banking
    bank_id             TEXT NOT NULL REFERENCES bank(id),
    category            TEXT NOT NULL,     -- current_account, savings_account, pillar_3a, vested_benefits,
                                           -- debit_card, credit_card, prepaid_card, package, ebanking,
                                           -- mortgage, wealth_management, term_deposit, securities_trading,
                                           -- fiduciary_deposit, safe_deposit, guarantee, leasing,
                                           -- financial_planning, personal_advisory, loyalty_program,
                                           -- digital_vault, fx_subscription, robo_advisory, self_directed_trading,
                                           -- metal_account, deposit_account, check
    name                TEXT NOT NULL,     -- bank's own product name
    currency            TEXT DEFAULT 'CHF',
    client_type         TEXT DEFAULT 'private',  -- private, business, institutional
    target_group        TEXT,              -- standard, young, children, students, seniors, eco, gift, rental_deposit, member
    description         TEXT,
    valid_from          TEXT,
    source_document_id  INTEGER REFERENCES source_document(id),
    bpg                 CHAR(12)        -- opaque global id, BPG003xxxxxx; populated post-load by bpg_assignments.sql
        CHECK (bpg IS NULL OR bpg GLOB 'BPG003[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]'),
    access_tier         TEXT NOT NULL DEFAULT 'free'  -- freemium gating: free public, pro/business paid
        CHECK (access_tier IN ('free', 'pro', 'business')),
    is_tailored         INTEGER             -- v2.6 (atom #278): mirrors CDS-AU (Australian Open Banking) isTailored.
                                            --   0 = pricing publicly published in a schedule (machine-readable, comparable);
                                            --   1 = negotiated per client (UHNW classical private banking, business loans);
                                            --   NULL = unknown / not yet classified (default for new loads).
                                            -- Distinguishes "we haven't crawled it" (NULL) from "bank deliberately
                                            -- doesn't publish because it's relationship-priced" (1) — three states
                                            -- that previously collapsed into "fee.amount IS NULL".
        CHECK (is_tailored IS NULL OR is_tailored IN (0, 1)),
    notice_period_days  INTEGER             -- v2.7 (atom #307): normalised withdrawal notice in days.
                                            --   0/NULL = on-demand; X = days notice. Conversion: months×30,
                                            --   years×365, days verbatim. Backfilled from
                                            --   product_feature.notice_period free-text by
                                            --   db/notice_period_backfill.sql.
        CHECK (notice_period_days IS NULL OR notice_period_days >= 0),
    iso_account_type    CHAR(4)             -- v2.8 (atom #308): ISO 20022 ExternalCashAccountType1Code.
                                            --   4-letter code from the official ISO enum: CACC (Current),
                                            --   SVGS (Savings), LOAN, SACC (Special), MOMA (Money Market),
                                            --   CHAR (Charges), CASH, etc.
                                            --   NULL for categories outside ISO scope: cards
                                            --   (debit/credit/prepaid), mandates (wealth_management,
                                            --   securities_trading, fiduciary_deposit), CH-specific
                                            --   (pillar_3a, vested_benefits, pension_account).
                                            --   Mapped from `category` by db/iso_account_type_backfill.sql.
                                            --   Backfill is conservative — when in doubt, leave NULL rather
                                            --   than force-fit a code that misrepresents the product.
        CHECK (iso_account_type IS NULL OR iso_account_type GLOB '[A-Z][A-Z][A-Z][A-Z]'),
    -- v3.1 (2026-08-12): age-cohort progression fields (atom #397). NULL = unrestricted.
    -- Populated by db/age_range_backfill.sql from product.name/description regex.
    age_range_min       INTEGER
        CHECK (age_range_min IS NULL OR (age_range_min >= 0 AND age_range_min <= 120)),
    age_range_max       INTEGER
        CHECK (age_range_max IS NULL OR (age_range_max >= 0 AND age_range_max <= 120)),
    age_range_label     TEXT,
    -- v3.3 (2026-08-12, PR #410): product-lifecycle status.
    status              TEXT NOT NULL DEFAULT 'active'
        CHECK (status IN ('active', 'legacy_bestand_only', 'retired'))
);
CREATE INDEX idx_product_bank ON product(bank_id);
CREATE INDEX idx_product_category ON product(category);
CREATE INDEX idx_product_lookup ON product(bank_id, category, client_type, target_group);
CREATE UNIQUE INDEX idx_product_bpg ON product(bpg) WHERE bpg IS NOT NULL;
CREATE INDEX idx_product_access_tier ON product(access_tier);
CREATE INDEX idx_product_is_tailored ON product(is_tailored) WHERE is_tailored IS NOT NULL;
CREATE INDEX idx_product_iso_account_type ON product(iso_account_type) WHERE iso_account_type IS NOT NULL;
CREATE INDEX idx_product_notice_period ON product(notice_period_days) WHERE notice_period_days IS NOT NULL;
CREATE INDEX idx_product_age_range ON product(age_range_min, age_range_max) WHERE age_range_min IS NOT NULL OR age_range_max IS NOT NULL;
CREATE INDEX idx_product_status ON product(status) WHERE status != 'active';
Powered by Datasette · Queries took 32.287ms · Data license: CC-BY-4.0 · Data source: bankproducts.info