{
  "format": "dataset-manifest/1",
  "slug": "bank-sample-database",
  "version": 1,
  "seed": "flagship:bank-sample-database:1k",
  "engine": 2,
  "engineVersion": "1.0.0",
  "spec": {
    "format": "dataset/1",
    "engine": 2,
    "slug": "bank-sample-database",
    "name": "Bank sample database",
    "tagline": "Customers, accounts and a transaction ledger, cards, ATM and card payments, transfers, loans, mortgages and branches.",
    "description": "A retail bank with twenty branches over five years, 2021 to 2025. Customers open checking and savings accounts, and every account’s balance is exactly its ledger: deposits and interest in, withdrawals and fees out, summed from the transactions table. Accounts carry cards; ATM withdrawals come in multiples of $20 and card payments go through merchants’ terminals. A transfer, a standing order and an overdraft link never point an account at itself. A loan payment is principal plus interest and comes after the loan starts; a mortgage’s down payment is 5 to 30% of the property value; a credit line’s balance never passes its limit. Every customer has one address and one KYC document, and every transaction comes after its account was opened.",
    "domain": "banking",
    "shape": "ledger",
    "useCases": [
      "sql-practice",
      "bi-dashboards",
      "test-fixtures"
    ],
    "keywords": [
      "bank",
      "accounts",
      "transactions",
      "ledger",
      "sample database"
    ],
    "locale": "en_US",
    "license": "CC0-1.0",
    "version": 1,
    "seed": "flagship:bank-sample-database",
    "tables": {
      "accounts": {
        "description": "Rows for the accounts table.",
        "rows": 20,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "account_number": {
            "kind": "pattern",
            "pattern": "##########",
            "unique": true
          },
          "balance": {
            "kind": "decimal",
            "min": 0,
            "max": 1000000,
            "scale": 2
          },
          "branch_id": {
            "kind": "fk",
            "ref": "branches.id",
            "skew": "long-tail"
          },
          "customer_id": {
            "kind": "fk",
            "ref": "customers.id",
            "skew": "long-tail"
          },
          "opened_date": {
            "kind": "date",
            "from": "2010-01-01",
            "to": "2020-12-31"
          },
          "status": {
            "kind": "enum",
            "values": [
              "open",
              "frozen",
              "closed"
            ],
            "weights": [
              92,
              1,
              7
            ]
          },
          "type": {
            "kind": "enum",
            "values": [
              "checking",
              "savings",
              "business"
            ],
            "weights": [
              60,
              32,
              8
            ]
          }
        }
      },
      "addresses": {
        "description": "Rows for the addresses table.",
        "rows": 12,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "city": {
            "kind": "place.city"
          },
          "country": {
            "kind": "constant",
            "value": "United States"
          },
          "customer_id": {
            "kind": "fk",
            "ref": "customers.id",
            "unique": true
          },
          "postal_code": {
            "kind": "place.postcode"
          },
          "state": {
            "kind": "place.regionCode"
          },
          "street": {
            "kind": "location.streetAddress"
          }
        }
      },
      "atm_machines": {
        "description": "Rows for the atm_machines table.",
        "rows": 60,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "branch_id": {
            "kind": "fk",
            "ref": "branches.id",
            "skew": "flat"
          },
          "cash_balance": {
            "kind": "decimal",
            "min": 5000,
            "max": 120000,
            "scale": 2
          },
          "location_description": {
            "kind": "enum",
            "values": [
              "Branch lobby",
              "Drive-through",
              "Supermarket",
              "Train station",
              "Shopping mall",
              "Airport"
            ]
          },
          "status": {
            "kind": "enum",
            "values": [
              "in_service",
              "out_of_service"
            ],
            "weights": [
              95,
              5
            ]
          }
        }
      },
      "atm_transactions": {
        "description": "Rows for the atm_transactions table.",
        "rows": 80,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "amount": {
            "kind": "int",
            "min": 0,
            "max": 480,
            "distribution": "long-tail"
          },
          "atm_id": {
            "kind": "fk",
            "ref": "atm_machines.id",
            "skew": "long-tail"
          },
          "card_id": {
            "kind": "fk",
            "ref": "cards.id",
            "skew": "long-tail"
          },
          "timestamp": {
            "kind": "datetime",
            "from": "2021-01-01",
            "to": "2025-12-31",
            "dayProfile": "waking"
          },
          "transaction_type": {
            "kind": "enum",
            "values": [
              "withdrawal",
              "balance_inquiry"
            ],
            "weights": [
              85,
              15
            ]
          }
        }
      },
      "audit_logs": {
        "description": "Rows for the audit_logs table.",
        "rows": 20,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "action": {
            "kind": "enum",
            "values": [
              "create",
              "update",
              "view",
              "delete"
            ],
            "weights": [
              20,
              40,
              38,
              2
            ]
          },
          "employee_id": {
            "kind": "fk",
            "ref": "employees.id",
            "skew": "long-tail"
          },
          "record_id": {
            "kind": "int",
            "min": 1,
            "max": 50000
          },
          "table_name": {
            "kind": "enum",
            "values": [
              "accounts",
              "customers",
              "loans",
              "cards",
              "transfers"
            ]
          },
          "timestamp": {
            "kind": "datetime",
            "from": "2021-01-01",
            "to": "2025-12-31",
            "dayProfile": "business"
          }
        }
      },
      "bill_payments": {
        "description": "Rows for the bill_payments table.",
        "rows": 30,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "account_id": {
            "kind": "fk",
            "ref": "accounts.id",
            "skew": "long-tail"
          },
          "amount": {
            "kind": "decimal",
            "min": 10,
            "max": 2500,
            "scale": 2,
            "distribution": "long-tail"
          },
          "payee_account_number": {
            "kind": "pattern",
            "pattern": "########"
          },
          "payee_name": {
            "kind": "enum",
            "values": [
              "City Water",
              "Metro Electric",
              "Gas Company",
              "Fiber Internet",
              "Mobile Carrier",
              "Auto Insurance",
              "Credit Card Co"
            ]
          },
          "payment_date": {
            "kind": "date",
            "from": "2021-01-01",
            "to": "2025-12-31"
          }
        }
      },
      "branch_addresses": {
        "description": "Rows for the branch_addresses table.",
        "rows": 20,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "branch_id": {
            "kind": "fk",
            "ref": "branches.id",
            "unique": true
          },
          "city": {
            "kind": "place.city"
          },
          "country": {
            "kind": "constant",
            "value": "United States"
          },
          "postal_code": {
            "kind": "place.postcode"
          },
          "state": {
            "kind": "place.regionCode"
          },
          "street": {
            "kind": "location.streetAddress"
          }
        }
      },
      "branches": {
        "description": "Rows for the branches table.",
        "rows": 20,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "email": {
            "kind": "enum",
            "values": [
              "mainstreet@bank.example.com",
              "riverside@bank.example.com",
              "oakpark@bank.example.com",
              "harbor@bank.example.com",
              "unionsquare@bank.example.com",
              "westgate@bank.example.com",
              "northfield@bank.example.com",
              "lakeshore@bank.example.com",
              "midtown@bank.example.com",
              "elmgrove@bank.example.com",
              "cedarhills@bank.example.com",
              "oldtown@bank.example.com",
              "bayview@bank.example.com",
              "southpoint@bank.example.com",
              "mapleridge@bank.example.com",
              "pinevalley@bank.example.com",
              "marketsquare@bank.example.com",
              "eastwood@bank.example.com",
              "hillcrest@bank.example.com",
              "airportroad@bank.example.com"
            ],
            "unique": true
          },
          "name": {
            "kind": "enum",
            "values": [
              "Main Street Branch",
              "Riverside Branch",
              "Oak Park Branch",
              "Harbor Branch",
              "Union Square Branch",
              "Westgate Branch",
              "Northfield Branch",
              "Lakeshore Branch",
              "Midtown Branch",
              "Elm Grove Branch",
              "Cedar Hills Branch",
              "Old Town Branch",
              "Bayview Branch",
              "Southpoint Branch",
              "Maple Ridge Branch",
              "Pine Valley Branch",
              "Market Square Branch",
              "Eastwood Branch",
              "Hillcrest Branch",
              "Airport Road Branch"
            ],
            "unique": true
          },
          "phone": {
            "kind": "phone.number"
          },
          "routing_number": {
            "kind": "pattern",
            "pattern": "[0]########",
            "unique": true
          }
        }
      },
      "cards": {
        "description": "Rows for the cards table.",
        "rows": 15,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "account_id": {
            "kind": "fk",
            "ref": "accounts.id",
            "unique": true
          },
          "card_number": {
            "kind": "testCardNumber"
          },
          "cvv": {
            "kind": "constant",
            "value": "***"
          },
          "expiration_date": {
            "kind": "date",
            "from": "2026-01-31",
            "to": "2030-12-31"
          },
          "pin_hash": {
            "kind": "pattern",
            "pattern": "[$2b$10$]xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
          },
          "status": {
            "kind": "enum",
            "values": [
              "active",
              "blocked",
              "expired"
            ],
            "weights": [
              90,
              3,
              7
            ]
          },
          "type": {
            "kind": "enum",
            "values": [
              "debit",
              "credit"
            ],
            "weights": [
              75,
              25
            ]
          }
        }
      },
      "credit_lines": {
        "description": "Rows for the credit_lines table.",
        "rows": 10,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "balance": {
            "kind": "decimal",
            "min": 0,
            "max": 7900,
            "scale": 2
          },
          "credit_limit": {
            "kind": "enum",
            "values": [
              "1000",
              "2500",
              "5000",
              "10000",
              "25000"
            ],
            "weights": [
              20,
              30,
              25,
              18,
              7
            ],
            "type": "numeric(12,2)"
          },
          "customer_id": {
            "kind": "fk",
            "ref": "customers.id",
            "skew": "flat"
          },
          "interest_rate": {
            "kind": "decimal",
            "min": 12,
            "max": 29.99,
            "scale": 2
          },
          "status": {
            "kind": "enum",
            "values": [
              "open",
              "closed"
            ],
            "weights": [
              88,
              12
            ]
          }
        }
      },
      "currency_rates": {
        "description": "Rows for the currency_rates table.",
        "rows": 12,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "base_currency": {
            "kind": "enum",
            "values": [
              "USD",
              "EUR",
              "GBP",
              "TRY"
            ]
          },
          "exchange_rate": {
            "kind": "decimal",
            "min": 0.0001,
            "max": 100,
            "scale": 6
          },
          "last_updated": {
            "kind": "datetime",
            "from": "2025-12-31",
            "to": "2025-12-31"
          },
          "target_currency": {
            "kind": "enum",
            "values": [
              "USD",
              "EUR",
              "GBP",
              "TRY"
            ]
          }
        }
      },
      "customer_support_tickets": {
        "description": "Rows for the customer_support_tickets table.",
        "rows": 10,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "created_date": {
            "kind": "datetime",
            "from": "2021-01-01",
            "to": "2025-12-31",
            "dayProfile": "business"
          },
          "customer_id": {
            "kind": "fk",
            "ref": "customers.id",
            "skew": "long-tail"
          },
          "description": {
            "kind": "enum",
            "values": [
              "Customer called in",
              "Raised in the app",
              "Raised at a branch",
              "Raised by email"
            ]
          },
          "employee_id": {
            "kind": "fk",
            "ref": "employees.id",
            "skew": "flat"
          },
          "status": {
            "kind": "enum",
            "values": [
              "resolved",
              "closed"
            ],
            "weights": [
              80,
              20
            ]
          },
          "subject": {
            "kind": "enum",
            "values": [
              "Card blocked",
              "Dispute a charge",
              "Update address",
              "Online banking login",
              "Loan question",
              "Wire transfer"
            ]
          }
        }
      },
      "customers": {
        "description": "Rows for the customers table.",
        "rows": 12,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "date_of_birth": {
            "kind": "date",
            "from": "1940-01-01",
            "to": "2006-12-31"
          },
          "email": {
            "kind": "internet.email",
            "from": {
              "firstName": "first_name",
              "lastName": "last_name"
            },
            "unique": true
          },
          "first_name": {
            "kind": "person.firstName"
          },
          "last_name": {
            "kind": "person.lastName"
          },
          "phone": {
            "kind": "phone.number"
          },
          "tax_identifier": {
            "kind": "pattern",
            "pattern": "[CUS-]########",
            "unique": true,
            "description": "Internal customer number."
          }
        }
      },
      "departments": {
        "description": "Rows for the departments table.",
        "rows": 60,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "branch_id": {
            "kind": "fk",
            "ref": "branches.id",
            "skew": "flat"
          },
          "name": {
            "kind": "enum",
            "values": [
              "Retail Banking",
              "Lending",
              "Operations",
              "Wealth Management",
              "Customer Service"
            ],
            "weights": [
              30,
              20,
              25,
              10,
              15
            ]
          }
        }
      },
      "direct_deposits": {
        "description": "Rows for the direct_deposits table.",
        "rows": 10,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "account_id": {
            "kind": "fk",
            "ref": "accounts.id",
            "skew": "flat"
          },
          "active_status": {
            "kind": "enum",
            "values": [
              "active",
              "stopped"
            ],
            "weights": [
              85,
              15
            ]
          },
          "amount": {
            "kind": "decimal",
            "min": 800,
            "max": 12000,
            "scale": 2,
            "distribution": "long-tail"
          },
          "employer_name": {
            "kind": "company.name"
          },
          "frequency": {
            "kind": "enum",
            "values": [
              "weekly",
              "biweekly",
              "monthly"
            ],
            "weights": [
              15,
              50,
              35
            ]
          }
        }
      },
      "employee_departments": {
        "description": "Rows for the employee_departments table.",
        "rows": 300,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "department_id": {
            "kind": "fk",
            "ref": "departments.id",
            "skew": "flat"
          },
          "employee_id": {
            "kind": "fk",
            "ref": "employees.id",
            "unique": true
          }
        }
      },
      "employees": {
        "description": "Rows for the employees table.",
        "rows": 300,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "branch_id": {
            "kind": "fk",
            "ref": "branches.id",
            "skew": "flat"
          },
          "email": {
            "kind": "internet.email",
            "from": {
              "firstName": "first_name",
              "lastName": "last_name"
            },
            "unique": true
          },
          "first_name": {
            "kind": "person.firstName"
          },
          "hire_date": {
            "kind": "date",
            "from": "2005-01-01",
            "to": "2025-06-30",
            "distribution": "high"
          },
          "last_name": {
            "kind": "person.lastName"
          },
          "phone": {
            "kind": "phone.number"
          }
        }
      },
      "investment_assets": {
        "description": "Rows for the investment_assets table.",
        "rows": 10,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "asset_type": {
            "kind": "enum",
            "values": [
              "etf",
              "stock",
              "bond_fund"
            ],
            "weights": [
              60,
              25,
              15
            ]
          },
          "investment_id": {
            "kind": "fk",
            "ref": "investments.id",
            "skew": "flat"
          },
          "purchase_date": {
            "kind": "date",
            "from": "2021-01-01",
            "to": "2025-12-31"
          },
          "purchase_price": {
            "kind": "decimal",
            "min": 20,
            "max": 600,
            "scale": 2
          },
          "quantity": {
            "kind": "decimal",
            "min": 1,
            "max": 500,
            "scale": 4,
            "distribution": "long-tail"
          },
          "symbol": {
            "kind": "enum",
            "values": [
              "VTI",
              "VXUS",
              "BND",
              "AAPL",
              "MSFT",
              "SPY",
              "QQQ",
              "VNQ",
              "GLD",
              "TLT"
            ]
          }
        }
      },
      "investments": {
        "description": "Rows for the investments table.",
        "rows": 10,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "created_date": {
            "kind": "date",
            "from": "2021-01-01",
            "to": "2025-12-31"
          },
          "customer_id": {
            "kind": "fk",
            "ref": "customers.id",
            "skew": "flat"
          },
          "portfolio_name": {
            "kind": "enum",
            "values": [
              "Retirement",
              "College Fund",
              "Growth",
              "Income",
              "Emergency"
            ]
          }
        }
      },
      "kyc_documents": {
        "description": "Rows for the kyc_documents table.",
        "rows": 12,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "customer_id": {
            "kind": "fk",
            "ref": "customers.id",
            "unique": true
          },
          "document_number": {
            "kind": "pattern",
            "pattern": "[DOC-]AA#######",
            "unique": true,
            "description": "A made-up reference, not a real document number."
          },
          "document_type": {
            "kind": "enum",
            "values": [
              "passport",
              "driver_license",
              "state_id"
            ],
            "weights": [
              30,
              60,
              10
            ]
          },
          "expiry_date": {
            "kind": "date",
            "from": "2026-01-01",
            "to": "2035-12-31"
          },
          "verification_status": {
            "kind": "enum",
            "values": [
              "verified",
              "rejected"
            ],
            "weights": [
              97,
              3
            ]
          }
        }
      },
      "loan_payments": {
        "description": "Rows for the loan_payments table.",
        "rows": 50,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "amount": {
            "kind": "decimal",
            "min": 0,
            "max": 12986,
            "scale": 2
          },
          "interest_paid": {
            "kind": "decimal",
            "min": 5,
            "max": 1500,
            "scale": 2,
            "distribution": "long-tail"
          },
          "loan_id": {
            "kind": "fk",
            "ref": "loans.id",
            "skew": "flat"
          },
          "payment_date": {
            "kind": "date",
            "from": "2021-01-01",
            "to": "2025-12-31"
          },
          "principal_paid": {
            "kind": "decimal",
            "min": 0,
            "max": 11915,
            "scale": 2
          }
        }
      },
      "loans": {
        "description": "Rows for the loans table.",
        "rows": 10,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "amount": {
            "kind": "decimal",
            "min": 5000,
            "max": 600000,
            "scale": 2,
            "distribution": "long-tail"
          },
          "branch_id": {
            "kind": "fk",
            "ref": "branches.id",
            "skew": "flat"
          },
          "customer_id": {
            "kind": "fk",
            "ref": "customers.id",
            "skew": "flat"
          },
          "interest_rate": {
            "kind": "decimal",
            "min": 3.5,
            "max": 18,
            "scale": 2
          },
          "loan_number": {
            "kind": "pattern",
            "pattern": "[LN-]########",
            "unique": true
          },
          "start_date": {
            "kind": "date",
            "from": "2017-01-01",
            "to": "2020-12-31"
          },
          "status": {
            "kind": "enum",
            "values": [
              "active",
              "paid_off",
              "defaulted"
            ],
            "weights": [
              78,
              19,
              3
            ]
          },
          "term_months": {
            "kind": "enum",
            "values": [
              "12",
              "36",
              "60",
              "180",
              "360"
            ],
            "weights": [
              10,
              30,
              30,
              10,
              20
            ],
            "type": "integer"
          }
        }
      },
      "merchant_accounts": {
        "description": "Rows for the merchant_accounts table.",
        "rows": 10,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "business_name": {
            "kind": "company.name"
          },
          "customer_id": {
            "kind": "fk",
            "ref": "customers.id",
            "skew": "flat"
          },
          "merchant_category_code": {
            "kind": "enum",
            "values": [
              "5411",
              "5812",
              "5541",
              "5999",
              "5732",
              "7011"
            ]
          },
          "status": {
            "kind": "enum",
            "values": [
              "active",
              "suspended"
            ],
            "weights": [
              95,
              5
            ]
          }
        }
      },
      "mortgages": {
        "description": "Rows for the mortgages table.",
        "rows": 10,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "down_payment": {
            "kind": "decimal",
            "min": 0,
            "max": 277283,
            "scale": 2
          },
          "loan_id": {
            "kind": "fk",
            "ref": "loans.id",
            "unique": true
          },
          "property_address": {
            "kind": "location.streetAddress"
          },
          "property_value": {
            "kind": "decimal",
            "min": 120000,
            "max": 1500000,
            "scale": 2,
            "distribution": "long-tail"
          }
        }
      },
      "overdraft_protections": {
        "description": "Rows for the overdraft_protections table.",
        "rows": 10,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "account_id": {
            "kind": "fk",
            "ref": "accounts.id",
            "unique": true
          },
          "linked_account_id": {
            "kind": "fk",
            "ref": "accounts.id",
            "skew": "flat"
          },
          "protection_limit": {
            "kind": "enum",
            "values": [
              "250",
              "500",
              "1000",
              "2500"
            ],
            "weights": [
              30,
              40,
              20,
              10
            ],
            "type": "numeric(10,2)"
          }
        }
      },
      "pos_terminals": {
        "description": "Rows for the pos_terminals table.",
        "rows": 10,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "merchant_account_id": {
            "kind": "fk",
            "ref": "merchant_accounts.id",
            "skew": "flat"
          },
          "serial_number": {
            "kind": "pattern",
            "pattern": "[POS-]########",
            "unique": true
          },
          "status": {
            "kind": "enum",
            "values": [
              "active",
              "retired"
            ],
            "weights": [
              92,
              8
            ]
          }
        }
      },
      "pos_transactions": {
        "description": "Rows for the pos_transactions table.",
        "rows": 120,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "amount": {
            "kind": "decimal",
            "min": 1,
            "max": 900,
            "scale": 2,
            "distribution": "long-tail"
          },
          "authorization_code": {
            "kind": "pattern",
            "pattern": "AA####"
          },
          "card_id": {
            "kind": "fk",
            "ref": "cards.id",
            "skew": "long-tail"
          },
          "terminal_id": {
            "kind": "fk",
            "ref": "pos_terminals.id",
            "skew": "long-tail"
          },
          "timestamp": {
            "kind": "datetime",
            "from": "2021-01-01",
            "to": "2025-12-31",
            "dayProfile": "waking"
          }
        }
      },
      "safe_deposit_boxes": {
        "description": "Rows for the safe_deposit_boxes table.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "annual_fee": {
            "kind": "enum",
            "values": [
              "60",
              "120",
              "250"
            ],
            "type": "numeric(8,2)"
          },
          "box_number": {
            "kind": "pattern",
            "pattern": "[B-]####",
            "unique": true
          },
          "branch_id": {
            "kind": "fk",
            "ref": "branches.id",
            "skew": "flat"
          },
          "size": {
            "kind": "enum",
            "values": [
              "small",
              "medium",
              "large"
            ],
            "weights": [
              55,
              35,
              10
            ]
          },
          "status": {
            "kind": "enum",
            "values": [
              "leased",
              "available"
            ],
            "weights": [
              60,
              40
            ]
          }
        }
      },
      "safe_deposit_leases": {
        "description": "Rows for the safe_deposit_leases table.",
        "rows": 10,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "box_id": {
            "kind": "fk",
            "ref": "safe_deposit_boxes.id",
            "skew": "flat"
          },
          "customer_id": {
            "kind": "fk",
            "ref": "customers.id",
            "skew": "flat"
          },
          "end_date": {
            "kind": "date",
            "from": "2021-01-01",
            "to": "2025-12-31",
            "nullable": true,
            "nullRate": 0
          },
          "start_date": {
            "kind": "date",
            "from": "2021-01-01",
            "to": "2025-12-31"
          }
        }
      },
      "standing_orders": {
        "description": "Rows for the standing_orders table.",
        "rows": 10,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "amount": {
            "kind": "decimal",
            "min": 20,
            "max": 3000,
            "scale": 2,
            "distribution": "long-tail"
          },
          "destination_account_id": {
            "kind": "fk",
            "ref": "accounts.id",
            "skew": "flat"
          },
          "frequency": {
            "kind": "enum",
            "values": [
              "weekly",
              "monthly",
              "quarterly"
            ],
            "weights": [
              15,
              75,
              10
            ]
          },
          "next_run_date": {
            "kind": "date",
            "from": "2026-01-01",
            "to": "2026-03-31"
          },
          "source_account_id": {
            "kind": "fk",
            "ref": "accounts.id",
            "skew": "flat"
          }
        }
      },
      "support_messages": {
        "description": "Rows for the support_messages table.",
        "rows": 18,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "message": {
            "kind": "enum",
            "values": [
              "Thanks, that fixed it",
              "Can you check again?",
              "We have reissued your card",
              "Please verify your identity",
              "The charge has been reversed",
              "Your request is complete"
            ]
          },
          "sender_type": {
            "kind": "enum",
            "values": [
              "customer",
              "agent"
            ]
          },
          "sent_date": {
            "kind": "datetime",
            "from": "2021-01-01",
            "to": "2025-12-31"
          },
          "ticket_id": {
            "kind": "fk",
            "ref": "customer_support_tickets.id",
            "skew": "flat"
          }
        }
      },
      "transactions": {
        "description": "Rows for the transactions table.",
        "rows": 1000,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "account_id": {
            "kind": "fk",
            "ref": "accounts.id",
            "skew": "long-tail"
          },
          "amount": {
            "kind": "decimal",
            "min": 0,
            "max": 4967,
            "scale": 2,
            "distribution": "long-tail"
          },
          "description": {
            "kind": "enum",
            "values": [
              "Deposit",
              "Withdrawal",
              "Monthly fee",
              "Interest credit"
            ]
          },
          "timestamp": {
            "kind": "datetime",
            "from": "2021-01-01",
            "to": "2025-12-31",
            "dayProfile": "waking",
            "trend": "growing"
          },
          "type": {
            "kind": "enum",
            "values": [
              "deposit",
              "withdrawal",
              "fee",
              "interest"
            ],
            "weights": [
              44,
              48,
              4,
              4
            ]
          }
        }
      },
      "transfers": {
        "description": "Rows for the transfers table.",
        "rows": 50,
        "columns": {
          "id": {
            "kind": "pk"
          },
          "amount": {
            "kind": "decimal",
            "min": 5,
            "max": 10000,
            "scale": 2,
            "distribution": "long-tail"
          },
          "description": {
            "kind": "enum",
            "values": [
              "Rent share",
              "Savings",
              "Gift",
              "Repayment",
              "Invoice"
            ]
          },
          "destination_account_id": {
            "kind": "fk",
            "ref": "accounts.id",
            "skew": "flat"
          },
          "source_account_id": {
            "kind": "fk",
            "ref": "accounts.id",
            "skew": "long-tail"
          },
          "timestamp": {
            "kind": "datetime",
            "from": "2021-01-01",
            "to": "2025-12-31",
            "dayProfile": "waking"
          }
        }
      }
    }
  },
  "counts": {
    "branches": 20,
    "atm_machines": 60,
    "branch_addresses": 20,
    "currency_rates": 12,
    "customers": 12,
    "accounts": 20,
    "addresses": 12,
    "bill_payments": 30,
    "cards": 15,
    "atm_transactions": 80,
    "credit_lines": 10,
    "departments": 60,
    "direct_deposits": 10,
    "employees": 300,
    "audit_logs": 20,
    "customer_support_tickets": 10,
    "employee_departments": 300,
    "investments": 10,
    "investment_assets": 10,
    "kyc_documents": 12,
    "loans": 10,
    "loan_payments": 50,
    "merchant_accounts": 10,
    "mortgages": 10,
    "overdraft_protections": 10,
    "pos_terminals": 10,
    "pos_transactions": 120,
    "safe_deposit_boxes": 200,
    "safe_deposit_leases": 10,
    "standing_orders": 10,
    "support_messages": 18,
    "transactions": 1000,
    "transfers": 50
  },
  "artifacts": [
    {
      "file": "csv/branches.csv",
      "format": "csv",
      "table": "branches",
      "key": "datasets/bank-sample-database/v1/csv/branches.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/branches.csv",
      "bytes": 1495,
      "sha256": "5bcc15b58e9c728d356af86513753ce9033f04b1c7772c38ee6ec354d2f4fcd4",
      "rows": 20,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/atm_machines.csv",
      "format": "csv",
      "table": "atm_machines",
      "key": "datasets/bank-sample-database/v1/csv/atm_machines.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/atm_machines.csv",
      "bytes": 2416,
      "sha256": "04c8af703424d3f91d1890dd716f78c457b755bfabec5ab81db46d0526b480c3",
      "rows": 60,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/branch_addresses.csv",
      "format": "csv",
      "table": "branch_addresses",
      "key": "datasets/bank-sample-database/v1/csv/branch_addresses.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/branch_addresses.csv",
      "bytes": 1193,
      "sha256": "792cb4a2e5532e60ff081223e874e65743980a54686ed1254c7c89279ba11a4b",
      "rows": 20,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/currency_rates.csv",
      "format": "csv",
      "table": "currency_rates",
      "key": "datasets/bank-sample-database/v1/csv/currency_rates.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/currency_rates.csv",
      "bytes": 537,
      "sha256": "47c35ce715a76ab80a2bee507d3481f480417307118c79cfa2caaabdf3fb9865",
      "rows": 12,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/customers.csv",
      "format": "csv",
      "table": "customers",
      "key": "datasets/bank-sample-database/v1/csv/customers.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/customers.csv",
      "bytes": 1068,
      "sha256": "7bccf364e27c16718e37f496df23079244d9442b8dacfcaaee94139813be2457",
      "rows": 12,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/accounts.csv",
      "format": "csv",
      "table": "accounts",
      "key": "datasets/bank-sample-database/v1/csv/accounts.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/accounts.csv",
      "bytes": 1125,
      "sha256": "8388333b18c0b4aa6cedc8ace0797f4d5ba82f89ae3ab775528e4ba81057186f",
      "rows": 20,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/addresses.csv",
      "format": "csv",
      "table": "addresses",
      "key": "datasets/bank-sample-database/v1/csv/addresses.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/addresses.csv",
      "bytes": 762,
      "sha256": "1994e8f22118bc8f9730bd4274d84e1c91ceee0af865e41ca0ff9a6babe3b2cf",
      "rows": 12,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/bill_payments.csv",
      "format": "csv",
      "table": "bill_payments",
      "key": "datasets/bank-sample-database/v1/csv/bill_payments.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/bill_payments.csv",
      "bytes": 1474,
      "sha256": "a8b4666fb49cf4af75c28aec2730ad88f738f16a6f5ecd5ea2e6f61b61a213ab",
      "rows": 30,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/cards.csv",
      "format": "csv",
      "table": "cards",
      "key": "datasets/bank-sample-database/v1/csv/cards.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/cards.csv",
      "bytes": 1746,
      "sha256": "9ca162a02d6f6f0ebbfba754caafa454bc8fd2abc916971e82d08dad32b8d924",
      "rows": 15,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/atm_transactions.csv",
      "format": "csv",
      "table": "atm_transactions",
      "key": "datasets/bank-sample-database/v1/csv/atm_transactions.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/atm_transactions.csv",
      "bytes": 3586,
      "sha256": "8c213d817961c78db0261e38ca8e9868343b7c4efa2ed6d3b36eb4bf91016384",
      "rows": 80,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/credit_lines.csv",
      "format": "csv",
      "table": "credit_lines",
      "key": "datasets/bank-sample-database/v1/csv/credit_lines.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/credit_lines.csv",
      "bytes": 321,
      "sha256": "6a58f288db820da9f5dfd85ab1a4d497f0c47878e5210cc5df8f6e323ab52a03",
      "rows": 10,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/departments.csv",
      "format": "csv",
      "table": "departments",
      "key": "datasets/bank-sample-database/v1/csv/departments.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/departments.csv",
      "bytes": 1230,
      "sha256": "89df0486c7c79ae5a8990b1e6e9e70fffcc76440fc2dfa968a89abb1e3d004b3",
      "rows": 60,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/direct_deposits.csv",
      "format": "csv",
      "table": "direct_deposits",
      "key": "datasets/bank-sample-database/v1/csv/direct_deposits.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/direct_deposits.csv",
      "bytes": 546,
      "sha256": "44b9d3af8dad562c38cd3e736f26814902e1c8797a6dca13c987b41ba219e58c",
      "rows": 10,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/employees.csv",
      "format": "csv",
      "table": "employees",
      "key": "datasets/bank-sample-database/v1/csv/employees.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/employees.csv",
      "bytes": 22344,
      "sha256": "376b6f15c2308aaaa4f306124b940d9ce315259a215008d3b6dfa0e9f77e54e4",
      "rows": 300,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/audit_logs.csv",
      "format": "csv",
      "table": "audit_logs",
      "key": "datasets/bank-sample-database/v1/csv/audit_logs.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/audit_logs.csv",
      "bytes": 1004,
      "sha256": "7d890ebba706b6f1411c68877e4c07510892e51085fd8a629c6b2ec0f22f9bdd",
      "rows": 20,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/customer_support_tickets.csv",
      "format": "csv",
      "table": "customer_support_tickets",
      "key": "datasets/bank-sample-database/v1/csv/customer_support_tickets.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/customer_support_tickets.csv",
      "bytes": 775,
      "sha256": "9df364a9b72b20b599f94485c0534acccec87a04b01c4afc5f0ab454bdd9d575",
      "rows": 10,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/employee_departments.csv",
      "format": "csv",
      "table": "employee_departments",
      "key": "datasets/bank-sample-database/v1/csv/employee_departments.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/employee_departments.csv",
      "bytes": 3377,
      "sha256": "359e3f0c9f8a955f1bfb338e9bdcede9f46c7bbecac53a8c5e51304da292ad48",
      "rows": 300,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/investments.csv",
      "format": "csv",
      "table": "investments",
      "key": "datasets/bank-sample-database/v1/csv/investments.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/investments.csv",
      "bytes": 307,
      "sha256": "d748776abfe88cb27c9105a1f592d612b1277c9155c86f70c5acdbd7a7312f42",
      "rows": 10,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/investment_assets.csv",
      "format": "csv",
      "table": "investment_assets",
      "key": "datasets/bank-sample-database/v1/csv/investment_assets.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/investment_assets.csv",
      "bytes": 492,
      "sha256": "640d00e53288ffa450ae3db5540fa62be9bdd9299e24dec41302a475c4a77abc",
      "rows": 10,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/kyc_documents.csv",
      "format": "csv",
      "table": "kyc_documents",
      "key": "datasets/bank-sample-database/v1/csv/kyc_documents.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/kyc_documents.csv",
      "bytes": 684,
      "sha256": "263d55c4e8750d9ba83520fb3f1248610c7d15690b44bba3cf4c24656bf9221b",
      "rows": 12,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/loans.csv",
      "format": "csv",
      "table": "loans",
      "key": "datasets/bank-sample-database/v1/csv/loans.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/loans.csv",
      "bytes": 658,
      "sha256": "f91212639cc37d856d05237cc3b240aabec146c95e526e7c08211a68becc6c6e",
      "rows": 10,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/loan_payments.csv",
      "format": "csv",
      "table": "loan_payments",
      "key": "datasets/bank-sample-database/v1/csv/loan_payments.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/loan_payments.csv",
      "bytes": 2043,
      "sha256": "705e175b73c9ea421d79bb2c3327c5f8a4925ccf9437be83f38e1bfb8fe82d3d",
      "rows": 50,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/merchant_accounts.csv",
      "format": "csv",
      "table": "merchant_accounts",
      "key": "datasets/bank-sample-database/v1/csv/merchant_accounts.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/merchant_accounts.csv",
      "bytes": 422,
      "sha256": "bb9d1ffd218482c0ce301a478e1b57dbc343f3c9092cdb6e6419f676809608c8",
      "rows": 10,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/mortgages.csv",
      "format": "csv",
      "table": "mortgages",
      "key": "datasets/bank-sample-database/v1/csv/mortgages.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/mortgages.csv",
      "bytes": 491,
      "sha256": "f19d377f9ae9a34b198be29ced95c12cabca1931749fc6f715d33d6ed4918cae",
      "rows": 10,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/overdraft_protections.csv",
      "format": "csv",
      "table": "overdraft_protections",
      "key": "datasets/bank-sample-database/v1/csv/overdraft_protections.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/overdraft_protections.csv",
      "bytes": 177,
      "sha256": "550ad170db8871b1c5506ba6523fc278926782db3db0d471a41e1ad0b2d058bc",
      "rows": 10,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/pos_terminals.csv",
      "format": "csv",
      "table": "pos_terminals",
      "key": "datasets/bank-sample-database/v1/csv/pos_terminals.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/pos_terminals.csv",
      "bytes": 299,
      "sha256": "e058d31c9dc01c3d1b91b73df2ae882f0c03ec2db051f89b95b94f384511e6bb",
      "rows": 10,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/pos_transactions.csv",
      "format": "csv",
      "table": "pos_transactions",
      "key": "datasets/bank-sample-database/v1/csv/pos_transactions.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/pos_transactions.csv",
      "bytes": 5079,
      "sha256": "42811c12b1a0e6d4d2d5c5d166d489ac5622800a7cc158188acf7649edc4dfb1",
      "rows": 120,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/safe_deposit_boxes.csv",
      "format": "csv",
      "table": "safe_deposit_boxes",
      "key": "datasets/bank-sample-database/v1/csv/safe_deposit_boxes.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/safe_deposit_boxes.csv",
      "bytes": 6517,
      "sha256": "d739e63fff8f8e26440373ccf05583becb313b0dd3f2529e15cbec29188e5a5a",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/safe_deposit_leases.csv",
      "format": "csv",
      "table": "safe_deposit_leases",
      "key": "datasets/bank-sample-database/v1/csv/safe_deposit_leases.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/safe_deposit_leases.csv",
      "bytes": 296,
      "sha256": "f9860f8e92a09896a099f6136e5fbc985eafa602334326fbb7650cde83c2bf90",
      "rows": 10,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/standing_orders.csv",
      "format": "csv",
      "table": "standing_orders",
      "key": "datasets/bank-sample-database/v1/csv/standing_orders.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/standing_orders.csv",
      "bytes": 424,
      "sha256": "ce4d321773ddaccc5384ee8085c4f235bb91620607c671c3a8c71091feb8f18e",
      "rows": 10,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/support_messages.csv",
      "format": "csv",
      "table": "support_messages",
      "key": "datasets/bank-sample-database/v1/csv/support_messages.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/support_messages.csv",
      "bytes": 1110,
      "sha256": "9505c049297c13df35ca5467135cb4eff2defb1abee6a420e0d5286224bb1826",
      "rows": 18,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/transactions.csv",
      "format": "csv",
      "table": "transactions",
      "key": "datasets/bank-sample-database/v1/csv/transactions.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/transactions.csv",
      "bytes": 53388,
      "sha256": "e3c630f13798c3a2184749c2046f8f7ec9fac8b71aa35ef76b4ef0a2720bafd2",
      "rows": 1000,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/transfers.csv",
      "format": "csv",
      "table": "transfers",
      "key": "datasets/bank-sample-database/v1/csv/transfers.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/csv/transfers.csv",
      "bytes": 2284,
      "sha256": "fded1bfb14a566348ab8a09ca03e2d6a095fd28022507d8e602b067474e8f0d5",
      "rows": 50,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "bank-sample-database.json",
      "format": "json",
      "table": null,
      "key": "datasets/bank-sample-database/v1/bank-sample-database.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/bank-sample-database.json",
      "bytes": 427127,
      "sha256": "4b3d3f83ff7d9bb5a6fea7a7a6dc0723d4865cdf3833608909db4d6423442c6a",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/bank-sample-database/v1/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/sql/postgres.sql",
      "bytes": 181317,
      "sha256": "946cdba1f7d96a6813d44c4d46426a8c0944c11de6094474006a280b6f4bec17",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/bank-sample-database/v1/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/sql/mysql.sql",
      "bytes": 178021,
      "sha256": "2687e952965f27f41bc22096d49eccf95024ff888c36eed691487f11ec567742",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/bank-sample-database/v1/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/sql/mssql.sql",
      "bytes": 186558,
      "sha256": "d3f4dfa9e5e2fefb4d9c928379c89f921a94633fdab825159893b6dbfc569040",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/bank-sample-database/v1/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/sql/sqlite.sql",
      "bytes": 174978,
      "sha256": "8a38da238559d5c116491533e55ce78bb9b35e4d7d23f8fd4a5839ca7a9bea6f",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/bank-sample-database/v1/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/prisma/seed.ts",
      "bytes": 340478,
      "sha256": "a4971d452a5f0c70e0c0a6c9daf3a6003514fb25a2d402e18339635779261de1",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/bank-sample-database/v1/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/django/fixtures.json",
      "bytes": 543062,
      "sha256": "17e77a4c9c7a687a4483a5fcf5f791faa1e2b217a871357089d3ea4b7510bf38",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "flagship": {
    "sizes": {
      "1k": {
        "rows": 2531,
        "counts": {
          "branches": 20,
          "atm_machines": 60,
          "branch_addresses": 20,
          "currency_rates": 12,
          "customers": 12,
          "accounts": 20,
          "addresses": 12,
          "bill_payments": 30,
          "cards": 15,
          "atm_transactions": 80,
          "credit_lines": 10,
          "departments": 60,
          "direct_deposits": 10,
          "employees": 300,
          "audit_logs": 20,
          "customer_support_tickets": 10,
          "employee_departments": 300,
          "investments": 10,
          "investment_assets": 10,
          "kyc_documents": 12,
          "loans": 10,
          "loan_payments": 50,
          "merchant_accounts": 10,
          "mortgages": 10,
          "overdraft_protections": 10,
          "pos_terminals": 10,
          "pos_transactions": 120,
          "safe_deposit_boxes": 200,
          "safe_deposit_leases": 10,
          "standing_orders": 10,
          "support_messages": 18,
          "transactions": 1000,
          "transfers": 50
        },
        "notes": [],
        "downloads": [
          {
            "format": "sql-postgres",
            "label": "PostgreSQL",
            "file": "flagship/1k/postgres.sql.gz",
            "key": "datasets/bank-sample-database/v1/flagship/1k/postgres.sql.gz",
            "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/flagship/1k/postgres.sql.gz",
            "bytes": 50021,
            "sha256": "0cf3d88042ebe566bdd42b03901d047fd5ef73b82634d30e7b1a0e28f4fda00c",
            "raw": {
              "bytes": 188238,
              "sha256": "c7c8a2163703e9663f563afda34d6ea023360be7673a3f8fd775f58b6f073f94"
            },
            "contentType": "application/gzip"
          },
          {
            "format": "sql-mysql",
            "label": "MySQL",
            "file": "flagship/1k/mysql.sql.gz",
            "key": "datasets/bank-sample-database/v1/flagship/1k/mysql.sql.gz",
            "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/flagship/1k/mysql.sql.gz",
            "bytes": 49499,
            "sha256": "516e2916e99a0427498aa5aebd0d069d264ac72666f59107abb356ed6a126e65",
            "raw": {
              "bytes": 184942,
              "sha256": "908fec1a8faa44bc98dffdf0c88c312a9aff514a0ad60d86d125fffd399a807c"
            },
            "contentType": "application/gzip"
          },
          {
            "format": "sql-sqlite",
            "label": "SQLite",
            "file": "flagship/1k/sqlite.sql.gz",
            "key": "datasets/bank-sample-database/v1/flagship/1k/sqlite.sql.gz",
            "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/flagship/1k/sqlite.sql.gz",
            "bytes": 48884,
            "sha256": "ec40a1b1d1845a77bd4f2986074c10adec05e4cd1b224632067a20a1a5918c2a",
            "raw": {
              "bytes": 181899,
              "sha256": "735ed846e1be72602d2388c5c07041d0072d17f48e4c06f87f914c812291f7db"
            },
            "contentType": "application/gzip"
          },
          {
            "format": "csv",
            "label": "CSV",
            "file": "flagship/1k/csv.zip",
            "key": "datasets/bank-sample-database/v1/flagship/1k/csv.zip",
            "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/flagship/1k/csv.zip",
            "bytes": 50559,
            "sha256": "4fb4324d61d19ab43fc3662c08d60d003c9f95708754b6acc46de3529604b837",
            "tables": {
              "accounts": {
                "bytes": 1125,
                "sha256": "8388333b18c0b4aa6cedc8ace0797f4d5ba82f89ae3ab775528e4ba81057186f"
              },
              "addresses": {
                "bytes": 762,
                "sha256": "1994e8f22118bc8f9730bd4274d84e1c91ceee0af865e41ca0ff9a6babe3b2cf"
              },
              "atm_machines": {
                "bytes": 2416,
                "sha256": "04c8af703424d3f91d1890dd716f78c457b755bfabec5ab81db46d0526b480c3"
              },
              "atm_transactions": {
                "bytes": 3586,
                "sha256": "8c213d817961c78db0261e38ca8e9868343b7c4efa2ed6d3b36eb4bf91016384"
              },
              "audit_logs": {
                "bytes": 1004,
                "sha256": "7d890ebba706b6f1411c68877e4c07510892e51085fd8a629c6b2ec0f22f9bdd"
              },
              "bill_payments": {
                "bytes": 1474,
                "sha256": "a8b4666fb49cf4af75c28aec2730ad88f738f16a6f5ecd5ea2e6f61b61a213ab"
              },
              "branch_addresses": {
                "bytes": 1193,
                "sha256": "792cb4a2e5532e60ff081223e874e65743980a54686ed1254c7c89279ba11a4b"
              },
              "branches": {
                "bytes": 1495,
                "sha256": "5bcc15b58e9c728d356af86513753ce9033f04b1c7772c38ee6ec354d2f4fcd4"
              },
              "cards": {
                "bytes": 1746,
                "sha256": "9ca162a02d6f6f0ebbfba754caafa454bc8fd2abc916971e82d08dad32b8d924"
              },
              "credit_lines": {
                "bytes": 321,
                "sha256": "6a58f288db820da9f5dfd85ab1a4d497f0c47878e5210cc5df8f6e323ab52a03"
              },
              "currency_rates": {
                "bytes": 537,
                "sha256": "47c35ce715a76ab80a2bee507d3481f480417307118c79cfa2caaabdf3fb9865"
              },
              "customer_support_tickets": {
                "bytes": 775,
                "sha256": "9df364a9b72b20b599f94485c0534acccec87a04b01c4afc5f0ab454bdd9d575"
              },
              "customers": {
                "bytes": 1068,
                "sha256": "7bccf364e27c16718e37f496df23079244d9442b8dacfcaaee94139813be2457"
              },
              "departments": {
                "bytes": 1230,
                "sha256": "89df0486c7c79ae5a8990b1e6e9e70fffcc76440fc2dfa968a89abb1e3d004b3"
              },
              "direct_deposits": {
                "bytes": 546,
                "sha256": "44b9d3af8dad562c38cd3e736f26814902e1c8797a6dca13c987b41ba219e58c"
              },
              "employee_departments": {
                "bytes": 3377,
                "sha256": "359e3f0c9f8a955f1bfb338e9bdcede9f46c7bbecac53a8c5e51304da292ad48"
              },
              "employees": {
                "bytes": 22344,
                "sha256": "376b6f15c2308aaaa4f306124b940d9ce315259a215008d3b6dfa0e9f77e54e4"
              },
              "investment_assets": {
                "bytes": 492,
                "sha256": "640d00e53288ffa450ae3db5540fa62be9bdd9299e24dec41302a475c4a77abc"
              },
              "investments": {
                "bytes": 307,
                "sha256": "d748776abfe88cb27c9105a1f592d612b1277c9155c86f70c5acdbd7a7312f42"
              },
              "kyc_documents": {
                "bytes": 684,
                "sha256": "263d55c4e8750d9ba83520fb3f1248610c7d15690b44bba3cf4c24656bf9221b"
              },
              "loan_payments": {
                "bytes": 2043,
                "sha256": "705e175b73c9ea421d79bb2c3327c5f8a4925ccf9437be83f38e1bfb8fe82d3d"
              },
              "loans": {
                "bytes": 658,
                "sha256": "f91212639cc37d856d05237cc3b240aabec146c95e526e7c08211a68becc6c6e"
              },
              "merchant_accounts": {
                "bytes": 422,
                "sha256": "bb9d1ffd218482c0ce301a478e1b57dbc343f3c9092cdb6e6419f676809608c8"
              },
              "mortgages": {
                "bytes": 491,
                "sha256": "f19d377f9ae9a34b198be29ced95c12cabca1931749fc6f715d33d6ed4918cae"
              },
              "overdraft_protections": {
                "bytes": 177,
                "sha256": "550ad170db8871b1c5506ba6523fc278926782db3db0d471a41e1ad0b2d058bc"
              },
              "pos_terminals": {
                "bytes": 299,
                "sha256": "e058d31c9dc01c3d1b91b73df2ae882f0c03ec2db051f89b95b94f384511e6bb"
              },
              "pos_transactions": {
                "bytes": 5079,
                "sha256": "42811c12b1a0e6d4d2d5c5d166d489ac5622800a7cc158188acf7649edc4dfb1"
              },
              "safe_deposit_boxes": {
                "bytes": 6517,
                "sha256": "d739e63fff8f8e26440373ccf05583becb313b0dd3f2529e15cbec29188e5a5a"
              },
              "safe_deposit_leases": {
                "bytes": 296,
                "sha256": "f9860f8e92a09896a099f6136e5fbc985eafa602334326fbb7650cde83c2bf90"
              },
              "standing_orders": {
                "bytes": 424,
                "sha256": "ce4d321773ddaccc5384ee8085c4f235bb91620607c671c3a8c71091feb8f18e"
              },
              "support_messages": {
                "bytes": 1110,
                "sha256": "9505c049297c13df35ca5467135cb4eff2defb1abee6a420e0d5286224bb1826"
              },
              "transactions": {
                "bytes": 53388,
                "sha256": "e3c630f13798c3a2184749c2046f8f7ec9fac8b71aa35ef76b4ef0a2720bafd2"
              },
              "transfers": {
                "bytes": 2284,
                "sha256": "fded1bfb14a566348ab8a09ca03e2d6a095fd28022507d8e602b067474e8f0d5"
              }
            },
            "contentType": "application/zip"
          }
        ],
        "checks": {
          "postgres": {
            "version": "18.3",
            "ok": true
          },
          "sqlite": {
            "version": "3.53.1",
            "ok": true
          },
          "notRun": [
            {
              "engine": "MySQL",
              "note": "Written from the same rows; not loaded here, no MySQL server runs in the build."
            }
          ]
        },
        "rules": [
          {
            "name": "An account's balance is its ledger: deposits and interest in, withdrawals and fees out",
            "violations": 0
          },
          {
            "name": "Every transaction comes after its account was opened",
            "violations": 0
          },
          {
            "name": "Transfers, standing orders and overdraft links never point an account at itself",
            "violations": 0
          },
          {
            "name": "ATM cash comes in twenties",
            "violations": 0
          },
          {
            "name": "A loan payment is principal plus interest, after the loan starts, and repays at most the loan",
            "violations": 0
          },
          {
            "name": "A down payment is 5 to 30% of the property, and a credit line's balance is within its limit",
            "violations": 0
          },
          {
            "name": "One address, one KYC document and at most one card each; support replies follow the ticket",
            "violations": 0
          }
        ],
        "dirty": {
          "report": {
            "rates": {
              "missing": 0.03,
              "typos": 0.03,
              "outliers": 0.005,
              "duplicates": 0.01
            },
            "tables": {
              "branches": {
                "duplicates": 1,
                "columns": {
                  "name": {
                    "missing": 1,
                    "typos": 1,
                    "outliers": 0
                  },
                  "phone": {
                    "missing": 1,
                    "typos": 1,
                    "outliers": 0
                  },
                  "routing_number": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "atm_machines": {
                "duplicates": 0,
                "columns": {
                  "cash_balance": {
                    "missing": 2,
                    "typos": 0,
                    "outliers": 1
                  },
                  "location_description": {
                    "missing": 4,
                    "typos": 1,
                    "outliers": 0
                  },
                  "status": {
                    "missing": 2,
                    "typos": 1,
                    "outliers": 0
                  }
                }
              },
              "branch_addresses": {
                "duplicates": 0,
                "columns": {
                  "city": {
                    "missing": 2,
                    "typos": 1,
                    "outliers": 0
                  },
                  "country": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  },
                  "postal_code": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "currency_rates": {
                "duplicates": 0,
                "columns": {
                  "exchange_rate": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  },
                  "target_currency": {
                    "missing": 0,
                    "typos": 1,
                    "outliers": 0
                  }
                }
              },
              "customers": {
                "duplicates": 0,
                "columns": {
                  "date_of_birth": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  },
                  "email": {
                    "missing": 2,
                    "typos": 1,
                    "outliers": 0
                  },
                  "last_name": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  },
                  "phone": {
                    "missing": 0,
                    "typos": 1,
                    "outliers": 0
                  },
                  "tax_identifier": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "accounts": {
                "duplicates": 0,
                "columns": {
                  "opened_date": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  },
                  "type": {
                    "missing": 0,
                    "typos": 1,
                    "outliers": 0
                  }
                }
              },
              "addresses": {
                "duplicates": 0,
                "columns": {
                  "country": {
                    "missing": 0,
                    "typos": 1,
                    "outliers": 0
                  },
                  "state": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  },
                  "street": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "bill_payments": {
                "duplicates": 2,
                "columns": {
                  "payee_account_number": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  },
                  "payee_name": {
                    "missing": 2,
                    "typos": 2,
                    "outliers": 0
                  }
                }
              },
              "cards": {
                "duplicates": 0,
                "columns": {
                  "cvv": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  },
                  "type": {
                    "missing": 1,
                    "typos": 1,
                    "outliers": 0
                  }
                }
              },
              "atm_transactions": {
                "duplicates": 0,
                "columns": {
                  "amount": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  },
                  "timestamp": {
                    "missing": 3,
                    "typos": 0,
                    "outliers": 0
                  },
                  "transaction_type": {
                    "missing": 5,
                    "typos": 1,
                    "outliers": 0
                  }
                }
              },
              "departments": {
                "duplicates": 1,
                "columns": {
                  "name": {
                    "missing": 1,
                    "typos": 1,
                    "outliers": 0
                  }
                }
              },
              "direct_deposits": {
                "duplicates": 0,
                "columns": {
                  "amount": {
                    "missing": 0,
                    "typos": 0,
                    "outliers": 1
                  },
                  "frequency": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "employees": {
                "duplicates": 2,
                "columns": {
                  "email": {
                    "missing": 13,
                    "typos": 11,
                    "outliers": 0
                  },
                  "first_name": {
                    "missing": 6,
                    "typos": 8,
                    "outliers": 0
                  },
                  "hire_date": {
                    "missing": 9,
                    "typos": 0,
                    "outliers": 0
                  },
                  "last_name": {
                    "missing": 10,
                    "typos": 8,
                    "outliers": 0
                  },
                  "phone": {
                    "missing": 9,
                    "typos": 7,
                    "outliers": 0
                  }
                }
              },
              "audit_logs": {
                "duplicates": 0,
                "columns": {
                  "action": {
                    "missing": 0,
                    "typos": 1,
                    "outliers": 0
                  },
                  "record_id": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  },
                  "table_name": {
                    "missing": 0,
                    "typos": 1,
                    "outliers": 0
                  }
                }
              },
              "customer_support_tickets": {
                "duplicates": 0,
                "columns": {
                  "subject": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "employee_departments": {
                "duplicates": 1,
                "columns": {}
              },
              "investment_assets": {
                "duplicates": 0,
                "columns": {
                  "asset_type": {
                    "missing": 0,
                    "typos": 3,
                    "outliers": 0
                  },
                  "purchase_price": {
                    "missing": 0,
                    "typos": 0,
                    "outliers": 1
                  },
                  "quantity": {
                    "missing": 0,
                    "typos": 0,
                    "outliers": 1
                  }
                }
              },
              "kyc_documents": {
                "duplicates": 0,
                "columns": {
                  "document_number": {
                    "missing": 0,
                    "typos": 1,
                    "outliers": 0
                  },
                  "verification_status": {
                    "missing": 1,
                    "typos": 1,
                    "outliers": 0
                  }
                }
              },
              "loans": {
                "duplicates": 0,
                "columns": {
                  "loan_number": {
                    "missing": 0,
                    "typos": 1,
                    "outliers": 0
                  },
                  "status": {
                    "missing": 0,
                    "typos": 1,
                    "outliers": 0
                  }
                }
              },
              "loan_payments": {
                "duplicates": 1,
                "columns": {
                  "amount": {
                    "missing": 0,
                    "typos": 0,
                    "outliers": 1
                  },
                  "interest_paid": {
                    "missing": 3,
                    "typos": 0,
                    "outliers": 0
                  },
                  "payment_date": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  },
                  "principal_paid": {
                    "missing": 2,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "merchant_accounts": {
                "duplicates": 0,
                "columns": {
                  "status": {
                    "missing": 0,
                    "typos": 1,
                    "outliers": 0
                  }
                }
              },
              "mortgages": {
                "duplicates": 0,
                "columns": {
                  "down_payment": {
                    "missing": 2,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "pos_terminals": {
                "duplicates": 0,
                "columns": {
                  "serial_number": {
                    "missing": 1,
                    "typos": 1,
                    "outliers": 0
                  },
                  "status": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "pos_transactions": {
                "duplicates": 0,
                "columns": {
                  "amount": {
                    "missing": 3,
                    "typos": 0,
                    "outliers": 0
                  },
                  "authorization_code": {
                    "missing": 1,
                    "typos": 2,
                    "outliers": 0
                  },
                  "timestamp": {
                    "missing": 3,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "safe_deposit_boxes": {
                "duplicates": 2,
                "columns": {
                  "annual_fee": {
                    "missing": 6,
                    "typos": 0,
                    "outliers": 1
                  },
                  "box_number": {
                    "missing": 5,
                    "typos": 5,
                    "outliers": 0
                  },
                  "size": {
                    "missing": 5,
                    "typos": 9,
                    "outliers": 0
                  },
                  "status": {
                    "missing": 4,
                    "typos": 2,
                    "outliers": 0
                  }
                }
              },
              "support_messages": {
                "duplicates": 0,
                "columns": {
                  "sent_date": {
                    "missing": 2,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "transactions": {
                "duplicates": 8,
                "columns": {
                  "amount": {
                    "missing": 34,
                    "typos": 0,
                    "outliers": 7
                  },
                  "description": {
                    "missing": 26,
                    "typos": 30,
                    "outliers": 0
                  },
                  "timestamp": {
                    "missing": 24,
                    "typos": 0,
                    "outliers": 0
                  },
                  "type": {
                    "missing": 28,
                    "typos": 35,
                    "outliers": 0
                  }
                }
              },
              "transfers": {
                "duplicates": 0,
                "columns": {
                  "description": {
                    "missing": 2,
                    "typos": 0,
                    "outliers": 0
                  },
                  "timestamp": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              }
            },
            "totals": {
              "missing": 244,
              "typos": 143,
              "outliers": 13,
              "duplicates": 18
            }
          },
          "downloads": [
            {
              "format": "dirty-sql-postgres",
              "label": "PostgreSQL, with faults",
              "file": "flagship/1k/dirty-postgres.sql.gz",
              "key": "datasets/bank-sample-database/v1/flagship/1k/dirty-postgres.sql.gz",
              "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/flagship/1k/dirty-postgres.sql.gz",
              "bytes": 48621,
              "sha256": "18f3d8b7c2a007a14a51cee5b01b7f73a54b7d255a29f6a736423238855685a5",
              "raw": {
                "bytes": 179197,
                "sha256": "600c3b1272dae9436a89a5d7c0d00c5d071c170d0d8cfba9bfe05305740d6a93"
              },
              "contentType": "application/gzip"
            },
            {
              "format": "dirty-csv",
              "label": "CSV, with faults",
              "file": "flagship/1k/dirty-csv.zip",
              "key": "datasets/bank-sample-database/v1/flagship/1k/dirty-csv.zip",
              "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/flagship/1k/dirty-csv.zip",
              "bytes": 50762,
              "sha256": "a993c8557c910eb23a1120b0f0fa2ccdedd21cb1e2b4704f3f816aa14a98ed0b",
              "tables": {
                "accounts": {
                  "bytes": 1115,
                  "sha256": "4201bb0b685c4f1a00abce6e37caf27b59418629252f5fbb58c34b8269d4a794"
                },
                "addresses": {
                  "bytes": 737,
                  "sha256": "1fd837f6ac5c497d0b54d5d54a9e59e9ee7b167bbdb1fbca2acfb586487a10dd"
                },
                "atm_machines": {
                  "bytes": 2345,
                  "sha256": "e27ab5721898bb13da1d17c0678c451d8766b87c868ac273fad62873d9975505"
                },
                "atm_transactions": {
                  "bytes": 3476,
                  "sha256": "21559de0c7df08ac7601c80f3c960478848f353aec7cd8336ab8373d7a2e31b6"
                },
                "audit_logs": {
                  "bytes": 1005,
                  "sha256": "15f8390fe60b97ab8ac2c7f13e223e2efb0e8347cbd814d152b7c1ba0b876381"
                },
                "bill_payments": {
                  "bytes": 1544,
                  "sha256": "e22a6b47cb4fbc7b3de20fba3ed8c142a6fb18ed39363a1753e5e5e566fc8feb"
                },
                "branch_addresses": {
                  "bytes": 1155,
                  "sha256": "8061ef46eef9a3b9b7ba6721107f4be6896ebcce312aacc97c00aa366a5a8619"
                },
                "branches": {
                  "bytes": 1536,
                  "sha256": "536d1d9c4019849f91e623663c91f5f1143b180ac0ba285d5fd13f77ab7a623a"
                },
                "cards": {
                  "bytes": 1738,
                  "sha256": "4c552cdbaad3dfcd8c82baaa8301852823376b21713b464698347347380499c7"
                },
                "credit_lines": {
                  "bytes": 321,
                  "sha256": "6a58f288db820da9f5dfd85ab1a4d497f0c47878e5210cc5df8f6e323ab52a03"
                },
                "currency_rates": {
                  "bytes": 529,
                  "sha256": "8d3cacb1920702e6064730d6fd2f105d55b8a3e5517e216652db4a02bdf57685"
                },
                "customer_support_tickets": {
                  "bytes": 761,
                  "sha256": "dccc842b04cb87d4d58dd7686d1e57e52f750724d12696dac15668af3c2a8374"
                },
                "customers": {
                  "bytes": 996,
                  "sha256": "aa7590a5895541dc2a514bc01e5fa5aeca7d5f077e06a5ba165d17d65a0cf818"
                },
                "departments": {
                  "bytes": 1246,
                  "sha256": "b32817f862673b3bd44e9a9887deae77b4475716d216cb7588a4b2797e6ebb25"
                },
                "direct_deposits": {
                  "bytes": 539,
                  "sha256": "1d5d7b8a69bbee25c213b8181d3aad581fc380b6e00e582ffb16f5109dbd5b60"
                },
                "employee_departments": {
                  "bytes": 3389,
                  "sha256": "062d801c0ff12162aacfcd3112a91c650f242bfa4e0fcbca8fb4885c5c08b162"
                },
                "employees": {
                  "bytes": 21898,
                  "sha256": "5c103852f1c15aee462353c29962edde3c92d869fac66b82f21989ed63537b10"
                },
                "investment_assets": {
                  "bytes": 494,
                  "sha256": "9f77769ab227fb5c1bdc4877eef4bfde2ad93d823028c60815a5c9846a9c025f"
                },
                "investments": {
                  "bytes": 307,
                  "sha256": "d748776abfe88cb27c9105a1f592d612b1277c9155c86f70c5acdbd7a7312f42"
                },
                "kyc_documents": {
                  "bytes": 679,
                  "sha256": "543ae5c0e6e24f010added9150797929a4995807beb2aad869fe71306118df23"
                },
                "loan_payments": {
                  "bytes": 2042,
                  "sha256": "a6b9d03a2fae467f4275ec831c4e84c295799b24b0e64d320be7685315431ace"
                },
                "loans": {
                  "bytes": 658,
                  "sha256": "d918904d410b8508f381495e1ff29d609b918726eb415ff85ec87194d43a5f7d"
                },
                "merchant_accounts": {
                  "bytes": 425,
                  "sha256": "a336cdd5a08f9ba26a5ac45ec42688f8e0bddbcc4f80047affa15a5f57465c2c"
                },
                "mortgages": {
                  "bytes": 473,
                  "sha256": "f239c6acb9999f6cec615b710569b00a4fa519451a50aaeffbac8a84e3b8675c"
                },
                "overdraft_protections": {
                  "bytes": 177,
                  "sha256": "550ad170db8871b1c5506ba6523fc278926782db3db0d471a41e1ad0b2d058bc"
                },
                "pos_terminals": {
                  "bytes": 281,
                  "sha256": "72a371817658475508985969c8baa5686ec334a4634f17036c828fa38ce27194"
                },
                "pos_transactions": {
                  "bytes": 4998,
                  "sha256": "f32760376cfbd2d72566438b72ec44039af7f2548f10ae3ba1b8b65506adde58"
                },
                "safe_deposit_boxes": {
                  "bytes": 6514,
                  "sha256": "f45039b860b0a356fd70a11c29b88a7f276b759655715ce0b74b66fde7ea7950"
                },
                "safe_deposit_leases": {
                  "bytes": 296,
                  "sha256": "f9860f8e92a09896a099f6136e5fbc985eafa602334326fbb7650cde83c2bf90"
                },
                "standing_orders": {
                  "bytes": 424,
                  "sha256": "ce4d321773ddaccc5384ee8085c4f235bb91620607c671c3a8c71091feb8f18e"
                },
                "support_messages": {
                  "bytes": 1072,
                  "sha256": "4cc40f63e54fe1060d0032fcd06df3296741b1543c0078bf13698d8ec0604201"
                },
                "transactions": {
                  "bytes": 52833,
                  "sha256": "4ce2d1c04d5567b846ca25f59d4f1dec657c1d69edf9487543de95d72082738c"
                },
                "transfers": {
                  "bytes": 2249,
                  "sha256": "b5a2c5789f0060f6301f8586b74b9355dd2048f85ca4f7d74fc2056addd1cb76"
                }
              },
              "contentType": "application/zip"
            }
          ]
        }
      },
      "100k": {
        "rows": 149222,
        "counts": {
          "branches": 20,
          "atm_machines": 60,
          "branch_addresses": 20,
          "currency_rates": 12,
          "customers": 1200,
          "accounts": 2000,
          "addresses": 1200,
          "bill_payments": 3000,
          "cards": 1500,
          "atm_transactions": 8000,
          "credit_lines": 300,
          "departments": 60,
          "direct_deposits": 600,
          "employees": 300,
          "audit_logs": 2000,
          "customer_support_tickets": 600,
          "employee_departments": 300,
          "investments": 300,
          "investment_assets": 900,
          "kyc_documents": 1200,
          "loans": 300,
          "loan_payments": 5000,
          "merchant_accounts": 200,
          "mortgages": 100,
          "overdraft_protections": 200,
          "pos_terminals": 400,
          "pos_transactions": 12000,
          "safe_deposit_boxes": 200,
          "safe_deposit_leases": 50,
          "standing_orders": 400,
          "support_messages": 1800,
          "transactions": 100000,
          "transfers": 5000
        },
        "notes": [],
        "downloads": [
          {
            "format": "sql-postgres",
            "label": "PostgreSQL",
            "file": "flagship/100k/postgres.sql.gz",
            "key": "datasets/bank-sample-database/v1/flagship/100k/postgres.sql.gz",
            "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/flagship/100k/postgres.sql.gz",
            "bytes": 2580775,
            "sha256": "205095f50b5c747a892973eca96b7334bee8c68778b9d0d0d1d52898ba7ed60f",
            "raw": {
              "bytes": 10829790,
              "sha256": "9652696f117a18829243b69c460499c90669506734b03641c70787be22f153dd"
            },
            "contentType": "application/gzip"
          },
          {
            "format": "sql-mysql",
            "label": "MySQL",
            "file": "flagship/100k/mysql.sql.gz",
            "key": "datasets/bank-sample-database/v1/flagship/100k/mysql.sql.gz",
            "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/flagship/100k/mysql.sql.gz",
            "bytes": 2578776,
            "sha256": "ebcc91800320a84417333dcbca964a2aaff2012be37d6dc43b7bd6792ca2f401",
            "raw": {
              "bytes": 10826494,
              "sha256": "9fa91ab868886555a44f931802305161234472e14fd28013a5ad01071c433e71"
            },
            "contentType": "application/gzip"
          },
          {
            "format": "sql-sqlite",
            "label": "SQLite",
            "file": "flagship/100k/sqlite.sql.gz",
            "key": "datasets/bank-sample-database/v1/flagship/100k/sqlite.sql.gz",
            "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/flagship/100k/sqlite.sql.gz",
            "bytes": 2577946,
            "sha256": "9cb22c576351b8ed25fa4ef21ee60528b06cb5040fc810eeca413f8e938e81ad",
            "raw": {
              "bytes": 10823451,
              "sha256": "9ea323c8e92930771d8b98250490e51991850c576a17f08de47eaec84f7480d8"
            },
            "contentType": "application/gzip"
          },
          {
            "format": "csv",
            "label": "CSV",
            "file": "flagship/100k/csv.zip",
            "key": "datasets/bank-sample-database/v1/flagship/100k/csv.zip",
            "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/flagship/100k/csv.zip",
            "bytes": 2639362,
            "sha256": "a0e307c09a88d058507784f27b9f6455c54c7fc22b1ac41cc880395bb6b9914d",
            "tables": {
              "accounts": {
                "bytes": 112166,
                "sha256": "15b040ec3773c22efbcbe5e156e4ca2ec812ce19e3244190a59f2b6ab2aada48"
              },
              "addresses": {
                "bytes": 72705,
                "sha256": "d6c530a322ec0ba77bb2c7bd71ad1f818a2a2536fb22de90c18cbdd56a68e8fe"
              },
              "atm_machines": {
                "bytes": 2421,
                "sha256": "ee430bc99c3b028669eab8a37ddf45ec5e0bbde2b3772ceb66621912b8df91f4"
              },
              "atm_transactions": {
                "bytes": 381619,
                "sha256": "d6371327c7d2e22dd332ecb431179ca003d306320329b26b765332e821e8ccf5"
              },
              "audit_logs": {
                "bytes": 98062,
                "sha256": "4f93da55bdee76bf17a413b2b5b9fbe9a200cf8f283ab7af3969f2c8043d8d7d"
              },
              "bill_payments": {
                "bytes": 152516,
                "sha256": "c3109609276923af47944cb5a5e3c368a19a10189114e45aaac8c41b9e539655"
              },
              "branch_addresses": {
                "bytes": 1227,
                "sha256": "273ce93d9599de9c8d828384ca3b1a4e90a2d65c2f9443a0dafcd7facc798636"
              },
              "branches": {
                "bytes": 1495,
                "sha256": "f0081ff0040880fb33fa488189cb354c4c3ec774ca43248465e24c16c18c4294"
              },
              "cards": {
                "bytes": 173789,
                "sha256": "3d658e7c58db90e26641a3018dcf61d204bf92b62ca7633c87383503a8948957"
              },
              "credit_lines": {
                "bytes": 8977,
                "sha256": "e5f19152e340a676bda3fbca07eec0bd699073b15af5a301784d77b8b638ab0b"
              },
              "currency_rates": {
                "bytes": 537,
                "sha256": "9a1f6505971aaa13d8b8e8a0a4fc8534ee254c7dab800d57d508c597813f7633"
              },
              "customer_support_tickets": {
                "bytes": 44697,
                "sha256": "ff537152fbe7805cb6c50c91009d91a37272ccfe584a32e04951fe3f997b7198"
              },
              "customers": {
                "bytes": 103006,
                "sha256": "91591b875517f2e76ce6ad26616b17a0024071eec9e762fc432d221ba905eb64"
              },
              "departments": {
                "bytes": 1078,
                "sha256": "baeecfd73293905d00cde49c2a7566c8b147916fd5510482dc04a5a22ee35528"
              },
              "direct_deposits": {
                "bytes": 32152,
                "sha256": "217f679e851f18508588eed0797e2b4824689f12527ffb864111204d6e397892"
              },
              "employee_departments": {
                "bytes": 3364,
                "sha256": "5238b257a25ac4c39081d70140442322d93e094a2b0a3df00bd145b989a1bc40"
              },
              "employees": {
                "bytes": 22296,
                "sha256": "e9992e906a8aad04888fe988317a9c23ddbc4f1014d4f0820fa464127dfda25a"
              },
              "investment_assets": {
                "bytes": 40163,
                "sha256": "2f2ac9950cf5095771491fbc26a166882f4e45dadb13529f798b56acb9c3feec"
              },
              "investments": {
                "bytes": 8870,
                "sha256": "ceb5fa230b172699a123650d6a2e285594cd8c1564a1b75e80bda51f0225dc5c"
              },
              "kyc_documents": {
                "bytes": 66924,
                "sha256": "c51ce158131254346eeb64822bbbfd386afa1aaec3b60161521a7b3d7fdec651"
              },
              "loan_payments": {
                "bytes": 212724,
                "sha256": "114876f7744eec9091dc30e00c774e00c1cc86fe7963778e1601ff7508939bed"
              },
              "loans": {
                "bytes": 18130,
                "sha256": "2063d7a4eb781d807b89f011bb857c6fe3f732e45794fdbd7580c1f1973d859d"
              },
              "merchant_accounts": {
                "bytes": 8413,
                "sha256": "df6d971751a2639900a25bd79502dcfd812b3b4cd421d86b463f391ad10da946"
              },
              "mortgages": {
                "bytes": 4674,
                "sha256": "433126b64e2d4477848887bffefdcfffcb53b0d72ebf63e233daebc649fe7a96"
              },
              "overdraft_protections": {
                "bytes": 3566,
                "sha256": "aeb4169d2d69c2528110e4c3c05b819234270ca0b79d3017f484f0bd0da28156"
              },
              "pos_terminals": {
                "bytes": 11354,
                "sha256": "7871ccc8670fe5fe4ae94ac4f15168b6ab5fe0fcff40ee6794d537caf6f7a54a"
              },
              "pos_transactions": {
                "bytes": 562230,
                "sha256": "c1079435a9f0b87e0031037329b8f7c0bfcfaed82867c5c6423dce02ffd46449"
              },
              "safe_deposit_boxes": {
                "bytes": 6511,
                "sha256": "b012cbcb1dffd11b900e65fc97d98d75c4c19086ea95ccdc0d5ef04995a6d50b"
              },
              "safe_deposit_leases": {
                "bytes": 1480,
                "sha256": "f0ea7b2a82003207aeb4e2562d08bba71b351a44adef4c0f0ab7303d0b53a468"
              },
              "standing_orders": {
                "bytes": 16051,
                "sha256": "8c945f9b8bf5cc813da2238f08b93268413b18134fc5fc6a0f12d4979e81ea2e"
              },
              "support_messages": {
                "bytes": 112083,
                "sha256": "e528d92fe1f5d8e2ea6e84cd0133c03ca11ea4c67ca459fbc5874e2827fe7ed1"
              },
              "transactions": {
                "bytes": 5694897,
                "sha256": "0381172f771145c41f7d84e810e4203852b29b7b1813f4c53d88fe3e1ed7a178"
              },
              "transfers": {
                "bytes": 250910,
                "sha256": "b20d7a1639c5e3a3be06d2587335d1be692567087a779598c0be003709363e95"
              }
            },
            "contentType": "application/zip"
          }
        ],
        "checks": {
          "postgres": {
            "version": "18.3",
            "ok": true
          },
          "sqlite": {
            "version": "3.53.1",
            "ok": true
          },
          "notRun": [
            {
              "engine": "MySQL",
              "note": "Written from the same rows; not loaded here, no MySQL server runs in the build."
            }
          ]
        },
        "rules": [
          {
            "name": "An account's balance is its ledger: deposits and interest in, withdrawals and fees out",
            "violations": 0
          },
          {
            "name": "Every transaction comes after its account was opened",
            "violations": 0
          },
          {
            "name": "Transfers, standing orders and overdraft links never point an account at itself",
            "violations": 0
          },
          {
            "name": "ATM cash comes in twenties",
            "violations": 0
          },
          {
            "name": "A loan payment is principal plus interest, after the loan starts, and repays at most the loan",
            "violations": 0
          },
          {
            "name": "A down payment is 5 to 30% of the property, and a credit line's balance is within its limit",
            "violations": 0
          },
          {
            "name": "One address, one KYC document and at most one card each; support replies follow the ticket",
            "violations": 0
          }
        ],
        "dirty": {
          "report": {
            "rates": {
              "missing": 0.03,
              "typos": 0.03,
              "outliers": 0.005,
              "duplicates": 0.01
            },
            "tables": {
              "branches": {
                "duplicates": 0,
                "columns": {
                  "email": {
                    "missing": 0,
                    "typos": 1,
                    "outliers": 0
                  },
                  "name": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  },
                  "phone": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "atm_machines": {
                "duplicates": 0,
                "columns": {
                  "cash_balance": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  },
                  "location_description": {
                    "missing": 1,
                    "typos": 1,
                    "outliers": 0
                  },
                  "status": {
                    "missing": 5,
                    "typos": 1,
                    "outliers": 0
                  }
                }
              },
              "branch_addresses": {
                "duplicates": 0,
                "columns": {
                  "city": {
                    "missing": 2,
                    "typos": 0,
                    "outliers": 0
                  },
                  "country": {
                    "missing": 3,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "currency_rates": {
                "duplicates": 0,
                "columns": {
                  "base_currency": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  },
                  "exchange_rate": {
                    "missing": 1,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "customers": {
                "duplicates": 9,
                "columns": {
                  "date_of_birth": {
                    "missing": 40,
                    "typos": 0,
                    "outliers": 0
                  },
                  "email": {
                    "missing": 34,
                    "typos": 36,
                    "outliers": 0
                  },
                  "first_name": {
                    "missing": 33,
                    "typos": 32,
                    "outliers": 0
                  },
                  "last_name": {
                    "missing": 30,
                    "typos": 38,
                    "outliers": 0
                  },
                  "phone": {
                    "missing": 26,
                    "typos": 8,
                    "outliers": 0
                  },
                  "tax_identifier": {
                    "missing": 28,
                    "typos": 46,
                    "outliers": 0
                  }
                }
              },
              "accounts": {
                "duplicates": 27,
                "columns": {
                  "account_number": {
                    "missing": 64,
                    "typos": 17,
                    "outliers": 0
                  },
                  "balance": {
                    "missing": 55,
                    "typos": 0,
                    "outliers": 9
                  },
                  "opened_date": {
                    "missing": 71,
                    "typos": 0,
                    "outliers": 0
                  },
                  "status": {
                    "missing": 70,
                    "typos": 53,
                    "outliers": 0
                  },
                  "type": {
                    "missing": 54,
                    "typos": 57,
                    "outliers": 0
                  }
                }
              },
              "addresses": {
                "duplicates": 12,
                "columns": {
                  "city": {
                    "missing": 30,
                    "typos": 29,
                    "outliers": 0
                  },
                  "country": {
                    "missing": 30,
                    "typos": 42,
                    "outliers": 0
                  },
                  "postal_code": {
                    "missing": 33,
                    "typos": 11,
                    "outliers": 0
                  },
                  "state": {
                    "missing": 40,
                    "typos": 28,
                    "outliers": 0
                  },
                  "street": {
                    "missing": 35,
                    "typos": 40,
                    "outliers": 0
                  }
                }
              },
              "bill_payments": {
                "duplicates": 34,
                "columns": {
                  "amount": {
                    "missing": 80,
                    "typos": 0,
                    "outliers": 20
                  },
                  "payee_account_number": {
                    "missing": 81,
                    "typos": 35,
                    "outliers": 0
                  },
                  "payee_name": {
                    "missing": 80,
                    "typos": 79,
                    "outliers": 0
                  },
                  "payment_date": {
                    "missing": 90,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "cards": {
                "duplicates": 19,
                "columns": {
                  "card_number": {
                    "missing": 49,
                    "typos": 15,
                    "outliers": 0
                  },
                  "cvv": {
                    "missing": 41,
                    "typos": 23,
                    "outliers": 0
                  },
                  "expiration_date": {
                    "missing": 45,
                    "typos": 0,
                    "outliers": 0
                  },
                  "pin_hash": {
                    "missing": 45,
                    "typos": 52,
                    "outliers": 0
                  },
                  "status": {
                    "missing": 39,
                    "typos": 40,
                    "outliers": 0
                  },
                  "type": {
                    "missing": 49,
                    "typos": 50,
                    "outliers": 0
                  }
                }
              },
              "atm_transactions": {
                "duplicates": 82,
                "columns": {
                  "amount": {
                    "missing": 236,
                    "typos": 0,
                    "outliers": 40
                  },
                  "timestamp": {
                    "missing": 232,
                    "typos": 0,
                    "outliers": 0
                  },
                  "transaction_type": {
                    "missing": 263,
                    "typos": 239,
                    "outliers": 0
                  }
                }
              },
              "credit_lines": {
                "duplicates": 3,
                "columns": {
                  "balance": {
                    "missing": 10,
                    "typos": 0,
                    "outliers": 0
                  },
                  "credit_limit": {
                    "missing": 8,
                    "typos": 0,
                    "outliers": 0
                  },
                  "interest_rate": {
                    "missing": 7,
                    "typos": 0,
                    "outliers": 1
                  },
                  "status": {
                    "missing": 10,
                    "typos": 11,
                    "outliers": 0
                  }
                }
              },
              "departments": {
                "duplicates": 0,
                "columns": {
                  "name": {
                    "missing": 2,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "direct_deposits": {
                "duplicates": 5,
                "columns": {
                  "active_status": {
                    "missing": 22,
                    "typos": 21,
                    "outliers": 0
                  },
                  "amount": {
                    "missing": 16,
                    "typos": 0,
                    "outliers": 1
                  },
                  "employer_name": {
                    "missing": 26,
                    "typos": 12,
                    "outliers": 0
                  },
                  "frequency": {
                    "missing": 18,
                    "typos": 18,
                    "outliers": 0
                  }
                }
              },
              "employees": {
                "duplicates": 4,
                "columns": {
                  "email": {
                    "missing": 7,
                    "typos": 5,
                    "outliers": 0
                  },
                  "first_name": {
                    "missing": 9,
                    "typos": 8,
                    "outliers": 0
                  },
                  "hire_date": {
                    "missing": 12,
                    "typos": 0,
                    "outliers": 0
                  },
                  "last_name": {
                    "missing": 5,
                    "typos": 9,
                    "outliers": 0
                  },
                  "phone": {
                    "missing": 5,
                    "typos": 5,
                    "outliers": 0
                  }
                }
              },
              "audit_logs": {
                "duplicates": 20,
                "columns": {
                  "action": {
                    "missing": 49,
                    "typos": 63,
                    "outliers": 0
                  },
                  "record_id": {
                    "missing": 58,
                    "typos": 0,
                    "outliers": 12
                  },
                  "table_name": {
                    "missing": 56,
                    "typos": 66,
                    "outliers": 0
                  },
                  "timestamp": {
                    "missing": 54,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "customer_support_tickets": {
                "duplicates": 6,
                "columns": {
                  "created_date": {
                    "missing": 11,
                    "typos": 0,
                    "outliers": 0
                  },
                  "description": {
                    "missing": 17,
                    "typos": 20,
                    "outliers": 0
                  },
                  "status": {
                    "missing": 14,
                    "typos": 14,
                    "outliers": 0
                  },
                  "subject": {
                    "missing": 20,
                    "typos": 15,
                    "outliers": 0
                  }
                }
              },
              "employee_departments": {
                "duplicates": 2,
                "columns": {}
              },
              "investments": {
                "duplicates": 3,
                "columns": {
                  "created_date": {
                    "missing": 10,
                    "typos": 0,
                    "outliers": 0
                  },
                  "portfolio_name": {
                    "missing": 9,
                    "typos": 7,
                    "outliers": 0
                  }
                }
              },
              "investment_assets": {
                "duplicates": 8,
                "columns": {
                  "asset_type": {
                    "missing": 29,
                    "typos": 23,
                    "outliers": 0
                  },
                  "purchase_date": {
                    "missing": 22,
                    "typos": 0,
                    "outliers": 0
                  },
                  "purchase_price": {
                    "missing": 29,
                    "typos": 0,
                    "outliers": 7
                  },
                  "quantity": {
                    "missing": 22,
                    "typos": 0,
                    "outliers": 4
                  },
                  "symbol": {
                    "missing": 36,
                    "typos": 27,
                    "outliers": 0
                  }
                }
              },
              "kyc_documents": {
                "duplicates": 12,
                "columns": {
                  "document_number": {
                    "missing": 48,
                    "typos": 28,
                    "outliers": 0
                  },
                  "document_type": {
                    "missing": 37,
                    "typos": 39,
                    "outliers": 0
                  },
                  "expiry_date": {
                    "missing": 43,
                    "typos": 0,
                    "outliers": 0
                  },
                  "verification_status": {
                    "missing": 34,
                    "typos": 26,
                    "outliers": 0
                  }
                }
              },
              "loans": {
                "duplicates": 3,
                "columns": {
                  "amount": {
                    "missing": 11,
                    "typos": 0,
                    "outliers": 2
                  },
                  "interest_rate": {
                    "missing": 6,
                    "typos": 0,
                    "outliers": 1
                  },
                  "loan_number": {
                    "missing": 10,
                    "typos": 8,
                    "outliers": 0
                  },
                  "start_date": {
                    "missing": 16,
                    "typos": 0,
                    "outliers": 0
                  },
                  "status": {
                    "missing": 8,
                    "typos": 11,
                    "outliers": 0
                  },
                  "term_months": {
                    "missing": 5,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "loan_payments": {
                "duplicates": 35,
                "columns": {
                  "amount": {
                    "missing": 155,
                    "typos": 0,
                    "outliers": 23
                  },
                  "interest_paid": {
                    "missing": 151,
                    "typos": 0,
                    "outliers": 15
                  },
                  "payment_date": {
                    "missing": 158,
                    "typos": 0,
                    "outliers": 0
                  },
                  "principal_paid": {
                    "missing": 154,
                    "typos": 0,
                    "outliers": 25
                  }
                }
              },
              "merchant_accounts": {
                "duplicates": 5,
                "columns": {
                  "business_name": {
                    "missing": 8,
                    "typos": 8,
                    "outliers": 0
                  },
                  "merchant_category_code": {
                    "missing": 7,
                    "typos": 4,
                    "outliers": 0
                  },
                  "status": {
                    "missing": 10,
                    "typos": 5,
                    "outliers": 0
                  }
                }
              },
              "mortgages": {
                "duplicates": 3,
                "columns": {
                  "down_payment": {
                    "missing": 4,
                    "typos": 0,
                    "outliers": 0
                  },
                  "property_address": {
                    "missing": 2,
                    "typos": 3,
                    "outliers": 0
                  },
                  "property_value": {
                    "missing": 3,
                    "typos": 0,
                    "outliers": 2
                  }
                }
              },
              "overdraft_protections": {
                "duplicates": 4,
                "columns": {
                  "protection_limit": {
                    "missing": 6,
                    "typos": 0,
                    "outliers": 1
                  }
                }
              },
              "pos_terminals": {
                "duplicates": 5,
                "columns": {
                  "serial_number": {
                    "missing": 9,
                    "typos": 19,
                    "outliers": 0
                  },
                  "status": {
                    "missing": 12,
                    "typos": 12,
                    "outliers": 0
                  }
                }
              },
              "pos_transactions": {
                "duplicates": 124,
                "columns": {
                  "amount": {
                    "missing": 332,
                    "typos": 0,
                    "outliers": 70
                  },
                  "authorization_code": {
                    "missing": 343,
                    "typos": 348,
                    "outliers": 0
                  },
                  "timestamp": {
                    "missing": 374,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "safe_deposit_boxes": {
                "duplicates": 1,
                "columns": {
                  "annual_fee": {
                    "missing": 5,
                    "typos": 0,
                    "outliers": 0
                  },
                  "box_number": {
                    "missing": 3,
                    "typos": 6,
                    "outliers": 0
                  },
                  "size": {
                    "missing": 6,
                    "typos": 2,
                    "outliers": 0
                  },
                  "status": {
                    "missing": 7,
                    "typos": 5,
                    "outliers": 0
                  }
                }
              },
              "safe_deposit_leases": {
                "duplicates": 1,
                "columns": {}
              },
              "standing_orders": {
                "duplicates": 2,
                "columns": {
                  "amount": {
                    "missing": 16,
                    "typos": 0,
                    "outliers": 4
                  },
                  "frequency": {
                    "missing": 6,
                    "typos": 18,
                    "outliers": 0
                  },
                  "next_run_date": {
                    "missing": 12,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "support_messages": {
                "duplicates": 17,
                "columns": {
                  "message": {
                    "missing": 51,
                    "typos": 57,
                    "outliers": 0
                  },
                  "sender_type": {
                    "missing": 53,
                    "typos": 62,
                    "outliers": 0
                  },
                  "sent_date": {
                    "missing": 49,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              },
              "transactions": {
                "duplicates": 968,
                "columns": {
                  "amount": {
                    "missing": 3007,
                    "typos": 0,
                    "outliers": 528
                  },
                  "description": {
                    "missing": 3002,
                    "typos": 2964,
                    "outliers": 0
                  },
                  "timestamp": {
                    "missing": 3079,
                    "typos": 0,
                    "outliers": 0
                  },
                  "type": {
                    "missing": 3003,
                    "typos": 2973,
                    "outliers": 0
                  }
                }
              },
              "transfers": {
                "duplicates": 52,
                "columns": {
                  "amount": {
                    "missing": 161,
                    "typos": 0,
                    "outliers": 21
                  },
                  "description": {
                    "missing": 173,
                    "typos": 146,
                    "outliers": 0
                  },
                  "timestamp": {
                    "missing": 157,
                    "typos": 0,
                    "outliers": 0
                  }
                }
              }
            },
            "totals": {
              "missing": 17348,
              "typos": 8041,
              "outliers": 786,
              "duplicates": 1466
            }
          },
          "downloads": [
            {
              "format": "dirty-sql-postgres",
              "label": "PostgreSQL, with faults",
              "file": "flagship/100k/dirty-postgres.sql.gz",
              "key": "datasets/bank-sample-database/v1/flagship/100k/dirty-postgres.sql.gz",
              "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/flagship/100k/dirty-postgres.sql.gz",
              "bytes": 2614121,
              "sha256": "c4f3fd977c88d6c392054aa460ae0306808a274bd28d2cbb07b596ce85cd88ef",
              "raw": {
                "bytes": 10795678,
                "sha256": "b907ef021224376ed5d2c4b82671963e5e7bf7c2163bc1fa9cba655f06b45b81"
              },
              "contentType": "application/gzip"
            },
            {
              "format": "dirty-csv",
              "label": "CSV, with faults",
              "file": "flagship/100k/dirty-csv.zip",
              "key": "datasets/bank-sample-database/v1/flagship/100k/dirty-csv.zip",
              "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/flagship/100k/dirty-csv.zip",
              "bytes": 2656402,
              "sha256": "2d11ada9e052bfb08a5ab8ae3deeddf4b8e6db9480660066aa7e43326b2f6112",
              "tables": {
                "accounts": {
                  "bytes": 111374,
                  "sha256": "8ab0c6e91e4fe2de2acd5b78df1327f62386003fa771214bd307e106dd70e99a"
                },
                "addresses": {
                  "bytes": 72043,
                  "sha256": "39cd5e9d59ae4e1df15352fbf8b830f0aac2179a1304854f5117367491ba3d2b"
                },
                "atm_machines": {
                  "bytes": 2356,
                  "sha256": "ad28f965ebfd86a08f9a960106acd3461a5f1b0f54da23041065217dedcc120f"
                },
                "atm_transactions": {
                  "bytes": 377964,
                  "sha256": "eec9580adcda33cc349119b7c7b72d29cb8c7f31120a8ae87c9a2104155a0c78"
                },
                "audit_logs": {
                  "bytes": 97261,
                  "sha256": "5d1b85344af6c6af21c11dfa3a7cf2377622bd85644006fa0362c8c14556a423"
                },
                "bill_payments": {
                  "bytes": 151413,
                  "sha256": "bca88a20f1b23926d3df9a95b4ad22047b48bd71eddf7123a43ed27f55ff8916"
                },
                "branch_addresses": {
                  "bytes": 1163,
                  "sha256": "7fda28c4074303fcac9c28c98b7b4574793498ec28fb6b0ad7c0f363a60279d8"
                },
                "branches": {
                  "bytes": 1465,
                  "sha256": "22477789a0894eba49fe9fbb4ae2a818f4c56962b980e80b03d6d0249df9703e"
                },
                "cards": {
                  "bytes": 171719,
                  "sha256": "6fb5a28c89307470a417972a9544e9c982299c5aa09584ab9234370679b018fc"
                },
                "credit_lines": {
                  "bytes": 8931,
                  "sha256": "b538ebe42a2934ccd5ef73cc1269a54b192d4514dcb16dafc31ee2be13c5d81b"
                },
                "currency_rates": {
                  "bytes": 526,
                  "sha256": "6f237e140b2433519b80b1e2aab4573a4961ae84e59f31a7b9a245b96f73974f"
                },
                "customer_support_tickets": {
                  "bytes": 44309,
                  "sha256": "63fe988a04504ee103b5c90ad90e26166a72aca16d6c1cfe67172869cccb9f65"
                },
                "customers": {
                  "bytes": 101583,
                  "sha256": "d2095ca55725354d456ff8be736ef85a75ccdc048696f58ba74d96c463963a2b"
                },
                "departments": {
                  "bytes": 1061,
                  "sha256": "cbf234d1ac871e40cabc9477230239fb64997010e88250639667f2bc9125cef1"
                },
                "direct_deposits": {
                  "bytes": 31516,
                  "sha256": "93a9f7dd3e6e6bc1f8623e6690eae11323948451312e92826579b341607e2531"
                },
                "employee_departments": {
                  "bytes": 3386,
                  "sha256": "63f6c8157a1e0fa2c0259b3299c245206506abbeb15138ff4c73b2e99a154720"
                },
                "employees": {
                  "bytes": 22166,
                  "sha256": "699ce2c412fd6d1e45f548aa74ede7e818dad33d1b1160fe5a19a705071b547d"
                },
                "investment_assets": {
                  "bytes": 39779,
                  "sha256": "1c07cd46dc0f7b8465c7b6ea4af39996a3d0704360c3f43752f21ff1c2e1cede"
                },
                "investments": {
                  "bytes": 8775,
                  "sha256": "cc219485ccc87cda7fb743d2ed229bc9ca7e7f2205b7e117a1f0b9813d473029"
                },
                "kyc_documents": {
                  "bytes": 65906,
                  "sha256": "647e341dfd926fa40c87baacc1179826895c167586a522ba0254f49fc789ad8b"
                },
                "loan_payments": {
                  "bytes": 209703,
                  "sha256": "ae9fa80994bfeabf6d68c6850ed45b0bf44d7ff0dcaf93d47116db53c191844f"
                },
                "loans": {
                  "bytes": 17900,
                  "sha256": "c1c74d944b7431e2daf36075596818d659c24a2d622f49b9aef8f767f92bba92"
                },
                "merchant_accounts": {
                  "bytes": 8406,
                  "sha256": "4e05fa26a93cabe5c502c059082449d06abe2c1dff064d7eb6649ff641463620"
                },
                "mortgages": {
                  "bytes": 4722,
                  "sha256": "29460216589b14c6d631ef2040ef249290f9cd15650f159337918937fa779ff2"
                },
                "overdraft_protections": {
                  "bytes": 3624,
                  "sha256": "aafd9ec771b2a559e3a6eb40ddc60d22be62f16ae49c55e7bd61ead2f20b6d91"
                },
                "pos_terminals": {
                  "bytes": 11359,
                  "sha256": "fa18974888f8be12f2f96fab58dac108f69179f02b1c8d10f2e2d92b3b845cb8"
                },
                "pos_transactions": {
                  "bytes": 557417,
                  "sha256": "2790ee783c3450dd70c47936e7b3301dd729563a3ccbed75a4f62279eec2dc2c"
                },
                "safe_deposit_boxes": {
                  "bytes": 6449,
                  "sha256": "e5c9d6deed37ff846fd85c003a5d27d193163f58d6fb8707b92f530062da944c"
                },
                "safe_deposit_leases": {
                  "bytes": 1504,
                  "sha256": "6129d9468c5e24ae44e726218cd0b742528fd7890102af38cceca338a7650d96"
                },
                "standing_orders": {
                  "bytes": 15910,
                  "sha256": "43c28526d9d0c395225664e68a5964855dfcf7250fbe1259f4f73c32c222498b"
                },
                "support_messages": {
                  "bytes": 110808,
                  "sha256": "fcf0a824675fe71539d9d4908a268256438e287593bc59d06f04e006a0ab4b7e"
                },
                "transactions": {
                  "bytes": 5631164,
                  "sha256": "34215f763c2a4dc61995eacd7246e623faf3c4d344428cd012c2a96ea6d5b86f"
                },
                "transfers": {
                  "bytes": 248346,
                  "sha256": "00dcc3dfa9d3d93a33d23b488018a4b4408ef7a7603026bd692c6c3454561985"
                }
              },
              "contentType": "application/zip"
            }
          ]
        }
      },
      "1m": {
        "rows": 1483472,
        "counts": {
          "branches": 20,
          "atm_machines": 60,
          "branch_addresses": 20,
          "currency_rates": 12,
          "customers": 12000,
          "accounts": 20000,
          "addresses": 12000,
          "bill_payments": 30000,
          "cards": 15000,
          "atm_transactions": 80000,
          "credit_lines": 3000,
          "departments": 60,
          "direct_deposits": 6000,
          "employees": 300,
          "audit_logs": 20000,
          "customer_support_tickets": 6000,
          "employee_departments": 300,
          "investments": 3000,
          "investment_assets": 9000,
          "kyc_documents": 12000,
          "loans": 3000,
          "loan_payments": 50000,
          "merchant_accounts": 2000,
          "mortgages": 1000,
          "overdraft_protections": 2000,
          "pos_terminals": 4000,
          "pos_transactions": 120000,
          "safe_deposit_boxes": 200,
          "safe_deposit_leases": 500,
          "standing_orders": 4000,
          "support_messages": 18000,
          "transactions": 1000000,
          "transfers": 50000
        },
        "notes": [
          "At this size the tables beside transactions were cut to 1/16 of it, so the whole build stays under 3,000,000 rows."
        ],
        "downloads": [
          {
            "format": "sql-postgres",
            "label": "PostgreSQL",
            "file": "flagship/1m/postgres.sql.gz",
            "key": "datasets/bank-sample-database/v1/flagship/1m/postgres.sql.gz",
            "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/flagship/1m/postgres.sql.gz",
            "bytes": 26426018,
            "sha256": "4224528b0bb5cd2e89df342a6fd0fed2fe19a75058b6e44e11cedfd345c8ca78",
            "raw": {
              "bytes": 110631780,
              "sha256": "3730fa0f31057e9412197e8a0efeff4e41d70cacfc076750caf70fc3882415cb"
            },
            "contentType": "application/gzip"
          },
          {
            "format": "sql-mysql",
            "label": "MySQL",
            "file": "flagship/1m/mysql.sql.gz",
            "key": "datasets/bank-sample-database/v1/flagship/1m/mysql.sql.gz",
            "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/flagship/1m/mysql.sql.gz",
            "bytes": 26423761,
            "sha256": "7017da743a0f354c2498c261a606c0aa0270a6edeab7b36de88b20a9735ad23a",
            "raw": {
              "bytes": 110628484,
              "sha256": "906ae982a9eba298ffe36c0ddb49aede985c8a5ea8ee7ad22945753baa2a21e7"
            },
            "contentType": "application/gzip"
          },
          {
            "format": "sql-sqlite",
            "label": "SQLite",
            "file": "flagship/1m/sqlite.sql.gz",
            "key": "datasets/bank-sample-database/v1/flagship/1m/sqlite.sql.gz",
            "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/flagship/1m/sqlite.sql.gz",
            "bytes": 26422916,
            "sha256": "6a602270cd2525801f655aa7ae49a3f67ac1aa8b4b5645989d5ae36387e7e2a5",
            "raw": {
              "bytes": 110625441,
              "sha256": "53908150594bb28560e1b0fbd97d9ae79d6c110b0ba51a02ee9f782b1d280d38"
            },
            "contentType": "application/gzip"
          },
          {
            "format": "csv",
            "label": "CSV",
            "file": "flagship/1m/csv.zip",
            "key": "datasets/bank-sample-database/v1/flagship/1m/csv.zip",
            "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/bank-sample-database/v1/flagship/1m/csv.zip",
            "bytes": 27113226,
            "sha256": "cc2fce72ffea7addfbc9a8be43c7c3467d498523709bc6ae1665cfb894592cbf",
            "tables": {
              "accounts": {
                "bytes": 1160656,
                "sha256": "180d4ad391ffefddf36a74735dd0f339724bd9ba8f0a1c159cbcb09cb8a7409c"
              },
              "addresses": {
                "bytes": 750284,
                "sha256": "e03e58e717ed4dfb8f2bf403d8be0e47146867dc97a584dc8f8bed5649c18438"
              },
              "atm_machines": {
                "bytes": 2394,
                "sha256": "eebc797b966a1882816e540759e643f1bd748136dc64d07be2cf1d11ecc0423b"
              },
              "atm_transactions": {
                "bytes": 3973114,
                "sha256": "0af75434226f8bb160f043611902cc9bf5428b2cba7b4512c2fdf80d2cdff4a0"
              },
              "audit_logs": {
                "bytes": 998475,
                "sha256": "f44af52d6c15e39e0364a69e28fa4e823cc74b1fc7c02367107dcf5988d1efd7"
              },
              "bill_payments": {
                "bytes": 1583187,
                "sha256": "b150ddbdfa41959f62a5a822218b39679c04de33badf7aa7c65e134c289f1635"
              },
              "branch_addresses": {
                "bytes": 1216,
                "sha256": "67cf2bae2885a9b007114f0c33ac5de2bc2dc90f617a524b3caf260b4875467e"
              },
              "branches": {
                "bytes": 1495,
                "sha256": "d3926b4c51e65e28ae7b81803f7fae191744da3e6436474f17a3542ab3c9fb53"
              },
              "cards": {
                "bytes": 1767064,
                "sha256": "c19f507423b20db5e4ade39c6a6c98eafa4e68f6f4fbda4218c10f156b1a9dff"
              },
              "credit_lines": {
                "bytes": 95459,
                "sha256": "9185e652ef8abe3de10268af8752614dca3e8690b9769bfe8a9e64224b9c6a59"
              },
              "currency_rates": {
                "bytes": 537,
                "sha256": "38ebe10059d58c1fff2b7a2ee534c1df3272252bef3d5268a50fde6609b243ec"
              },
              "customer_support_tickets": {
                "bytes": 458607,
                "sha256": "26b2f8b342874a1f737162544b00c8f94a796d7d26de62030bc27adf48422619"
              },
              "customers": {
                "bytes": 1037319,
                "sha256": "2c009d6812e7b47b1a915bcd88395fa87ce78326ecc4d0e554c639a4f30f0106"
              },
              "departments": {
                "bytes": 1201,
                "sha256": "1fa886c2afd566c88f99b1694c091cd5f0347fbfe2884e2f5e7b3364e49af577"
              },
              "direct_deposits": {
                "bytes": 332260,
                "sha256": "918331652ec340fd08384baa8a3724d7f069d57b8a77f9b86a30d6062bfecd20"
              },
              "employee_departments": {
                "bytes": 3370,
                "sha256": "4405b381ce75b3fdda88c0c88121aad16f85dfcb488e82012002e5402def8947"
              },
              "employees": {
                "bytes": 22502,
                "sha256": "b8f15f0a2e0ea9b44f60a5fafc718d624991995e835ed23614e3e5098b86b85e"
              },
              "investment_assets": {
                "bytes": 418524,
                "sha256": "d6cb43611ff8f69d6c240e334d87e49f3fc2e40da5d76a0bac706c1ed7e42642"
              },
              "investments": {
                "bytes": 94155,
                "sha256": "cdebcfd43a43b033b94d9b949317461017c448ab7629b459fcd0e95ecda750fc"
              },
              "kyc_documents": {
                "bytes": 693822,
                "sha256": "a2ecab2088a1ca64501759502c9ac0c55199e66818832df389a33054e0fc6ea7"
              },
              "loan_payments": {
                "bytes": 2227398,
                "sha256": "1d7b134855321d853d5356fd3b4184ac68194bbaa92456f719a8ba9d0fe640d5"
              },
              "loans": {
                "bytes": 186368,
                "sha256": "a2b0c26d0fb0df423cc0665f2d15d067a2edeb743cb0570cf9b63ed72e89e41a"
              },
              "merchant_accounts": {
                "bytes": 86802,
                "sha256": "494483eecfc5c87276c27d35850c8587df6573d1d17bad332656edc6384e53cf"
              },
              "mortgages": {
                "bytes": 48272,
                "sha256": "f848efc3fcaa4b004307ebe538ac35dfd40e8b7c8c5e54de021673ff339042a6"
              },
              "overdraft_protections": {
                "bytes": 41334,
                "sha256": "714b7628393f27bdce99ba10bc38ba92fa0f36d02e2946aabc9c98e0c024fcbf"
              },
              "pos_terminals": {
                "bytes": 121078,
                "sha256": "a06a66d3224bc51cb8ca50e92584b99de8a94b9c1e7755e55521572e503cf8f3"
              },
              "pos_transactions": {
                "bytes": 5970491,
                "sha256": "4d603a0d9d90e83cd7b46fdc640d2ea1d66b3d2744eb65e3804a790e09cc5735"
              },
              "safe_deposit_boxes": {
                "bytes": 6533,
                "sha256": "313e09efbe33a8d18339f1a2ffed4d990f194c79b9b1a67a70672520f8accde1"
              },
              "safe_deposit_leases": {
                "bytes": 14580,
                "sha256": "031c8f2f397db8eb3401c28c37bc24ba79ac32f47678eb8726496edc4630d050"
              },
              "standing_orders": {
                "bytes": 171732,
                "sha256": "89d2cfdec41a86dd3d7b7a4c841d84d88662b55b1be01325dfbe9272bf8ca94e"
              },
              "support_messages": {
                "bytes": 1158846,
                "sha256": "457c9053ae71f106cdc5e77eed372a663b18bc32c19f4b265b8c91005e3d7fac"
              },
              "transactions": {
                "bytes": 58916068,
                "sha256": "cf9f935b499b0cdbd2fce87ce4f20ce7cedae44cc903b39a707de7d0ef4129b9"
              },
              "transfers": {
                "bytes": 2657849,
                "sha256": "36ac82d3791270175bcb330d9833adb9350d18a23f8381c2ecdadfc4b04cea76"
              }
            },
            "contentType": "application/zip"
          }
        ],
        "checks": {
          "postgres": {
            "version": "18.3",
            "ok": true
          },
          "sqlite": {
            "version": "3.53.1",
            "ok": true
          },
          "notRun": [
            {
              "engine": "MySQL",
              "note": "Written from the same rows; not loaded here, no MySQL server runs in the build."
            }
          ]
        },
        "rules": [
          {
            "name": "An account's balance is its ledger: deposits and interest in, withdrawals and fees out",
            "violations": 0
          },
          {
            "name": "Every transaction comes after its account was opened",
            "violations": 0
          },
          {
            "name": "Transfers, standing orders and overdraft links never point an account at itself",
            "violations": 0
          },
          {
            "name": "ATM cash comes in twenties",
            "violations": 0
          },
          {
            "name": "A loan payment is principal plus interest, after the loan starts, and repays at most the loan",
            "violations": 0
          },
          {
            "name": "A down payment is 5 to 30% of the property, and a credit line's balance is within its limit",
            "violations": 0
          },
          {
            "name": "One address, one KYC document and at most one card each; support replies follow the ticket",
            "violations": 0
          }
        ]
      }
    },
    "rules": [
      {
        "name": "An account's balance is its ledger: deposits and interest in, withdrawals and fees out",
        "sql": "SELECT count(*) AS violations FROM accounts a LEFT JOIN (SELECT account_id, sum(CASE WHEN type IN ('deposit', 'interest') THEN amount ELSE -amount END) AS ledger FROM transactions GROUP BY account_id) t ON t.account_id = a.id WHERE a.balance <> COALESCE(t.ledger, 0)"
      },
      {
        "name": "Every transaction comes after its account was opened",
        "sql": "SELECT count(*) AS violations FROM transactions t JOIN accounts a ON a.id = t.account_id WHERE t.timestamp < a.opened_date"
      },
      {
        "name": "Transfers, standing orders and overdraft links never point an account at itself",
        "sql": "SELECT (SELECT count(*) FROM transfers WHERE source_account_id = destination_account_id) + (SELECT count(*) FROM standing_orders WHERE source_account_id = destination_account_id) + (SELECT count(*) FROM overdraft_protections WHERE account_id = linked_account_id) AS violations"
      },
      {
        "name": "ATM cash comes in twenties",
        "sql": "SELECT count(*) AS violations FROM atm_transactions WHERE amount % 20 <> 0 OR amount <= 0"
      },
      {
        "name": "A loan payment is principal plus interest, after the loan starts, and repays at most the loan",
        "sql": "SELECT (SELECT count(*) FROM loan_payments p JOIN loans l ON l.id = p.loan_id WHERE p.amount <> p.principal_paid + p.interest_paid OR p.payment_date <= l.start_date) + (SELECT count(*) FROM loans l JOIN (SELECT loan_id, sum(principal_paid) AS repaid FROM loan_payments GROUP BY loan_id) p ON p.loan_id = l.id WHERE p.repaid > l.amount) AS violations"
      },
      {
        "name": "A down payment is 5 to 30% of the property, and a credit line's balance is within its limit",
        "sql": "SELECT (SELECT count(*) FROM mortgages WHERE down_payment < 0.05 * property_value - 0.01 OR down_payment > 0.3 * property_value + 0.01) + (SELECT count(*) FROM credit_lines WHERE balance < 0 OR balance > credit_limit) AS violations"
      },
      {
        "name": "One address, one KYC document and at most one card each; support replies follow the ticket",
        "sql": "SELECT (SELECT count(*) - count(DISTINCT customer_id) FROM addresses) + (SELECT count(*) - count(DISTINCT customer_id) FROM kyc_documents) + (SELECT count(*) - count(DISTINCT account_id) FROM cards) + (SELECT count(*) FROM support_messages m JOIN customer_support_tickets t ON t.id = m.ticket_id WHERE m.sent_date < t.created_date OR m.sent_date > t.created_date + interval '3 days') AS violations"
      }
    ]
  },
  "publishedAt": 1791371439882,
  "updatedAt": 1791371439882
}
