{
  "format": "dataset-manifest/1",
  "slug": "financial-insights-archive",
  "version": 3,
  "seed": "financial-insights-archive:1",
  "spec": {
    "format": "dataset/1",
    "slug": "financial-insights-archive",
    "name": "Financial Insights Archive",
    "tagline": "A synthetic dataset capturing the nuances of banking operations.",
    "description": "Customers engage with their bank daily, making transactions, seeking advice, and accessing services to manage their finances. These interactions are meticulously documented, forming a vital part of the bank's operational framework. Transactions record the flow of money in and out of customer accounts, often accompanied by transaction notes that provide context or details about specific entries. Customer interactions capture the conversations and engagements that build relationships, while compliance records ensure that the bank adheres to regulatory standards, all of which are crucial for maintaining trust and transparency in banking operations.\n\nEach table in this dataset serves a unique function yet is intricately connected. The 'customers' table holds details about individuals who utilize banking services, with each row representing a different customer. The 'transactions' table tracks the financial activities of these customers, linking back to the 'customers' table through a customer ID. Transaction notes, associated with specific transactions, provide additional insights and are connected through a transaction ID. Customer interactions detail the communications with customers, which can be related to both transactions and compliance records, creating a comprehensive view of customer engagement. Compliance records, although less frequent, are tied to specific transactions or customer accounts, ensuring all operations align with required regulations.\n\nThis synthetic dataset allows developers to explore various questions such as: What are the most common types of transactions? How do customer interactions affect transaction volume? Are there patterns in compliance records that correlate with regulatory changes? By analyzing these connections, one can practice skills in data manipulation, querying, and reporting, gaining insights that are vital in the banking sector.",
    "domain": "banking",
    "shape": "slowly-changing",
    "useCases": [
      "etl-pipelines",
      "teaching"
    ],
    "keywords": [
      "banking",
      "transactions",
      "customer interactions",
      "compliance records",
      "financial documents",
      "synthetic data"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "customers": {
        "description": "Each row represents a customer with unique identifying information. This table links to transaction and interaction records.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each customer."
          },
          "first_name": {
            "kind": "firstName",
            "description": "The first name of the customer.",
            "nullable": true
          },
          "last_name": {
            "kind": "lastName",
            "description": "The last name of the customer.",
            "nullable": true
          },
          "email": {
            "kind": "email",
            "from": [
              "first_name",
              "last_name"
            ],
            "description": "Email address of the customer.",
            "nullable": true
          },
          "created_at": {
            "kind": "datetime",
            "from": "2020-01-01",
            "to": "2023-01-01",
            "description": "The date the customer was created.",
            "dayProfile": "business"
          }
        }
      },
      "transactions": {
        "description": "This table captures each financial transaction related to customers, detailing the amounts and dates of transactions.",
        "rows": {
          "per": "customers",
          "via": "customer_id",
          "min": 1,
          "max": 5,
          "skew": "long-tail"
        },
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each transaction."
          },
          "customer_id": {
            "kind": "fk",
            "ref": "customers.id",
            "description": "Reference to the customer associated with the transaction."
          },
          "amount": {
            "kind": "decimal",
            "min": 1,
            "max": 10000,
            "scale": 2,
            "description": "The amount of money involved in the transaction.",
            "nullable": true,
            "distribution": "long-tail"
          },
          "transaction_date": {
            "kind": "datetime",
            "from": "2020-01-01",
            "to": "2023-01-01",
            "description": "The date when the transaction occurred.",
            "dayProfile": "waking"
          }
        }
      },
      "transaction_notes": {
        "description": "This table contains notes related to specific transactions, capturing additional context or insights.",
        "rows": {
          "per": "transactions",
          "via": "transaction_id",
          "min": 0,
          "max": 3,
          "skew": "heavy-tail"
        },
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each transaction note."
          },
          "transaction_id": {
            "kind": "fk",
            "ref": "transactions.id",
            "description": "Reference to the transaction this note is related to."
          },
          "note": {
            "kind": "sentence",
            "min": 10,
            "max": 200,
            "description": "The content of the transaction note.",
            "nullable": true
          },
          "created_at": {
            "kind": "datetime",
            "from": "2020-01-01",
            "to": "2023-01-01",
            "description": "The date the note was created.",
            "dayProfile": "business"
          }
        }
      },
      "customer_interactions": {
        "description": "This table tracks interactions between customers and the bank, including support calls and inquiries.",
        "rows": {
          "per": "customers",
          "via": "customer_id",
          "min": 0,
          "max": 4,
          "skew": "long-tail"
        },
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each customer interaction."
          },
          "customer_id": {
            "kind": "fk",
            "ref": "customers.id",
            "description": "Reference to the customer involved in the interaction."
          },
          "interaction_type": {
            "kind": "enum",
            "values": [
              "call",
              "email",
              "in-person",
              "chat"
            ],
            "description": "Type of interaction that occurred.",
            "weights": [
              6,
              4,
              2,
              1
            ]
          },
          "interaction_date": {
            "kind": "datetime",
            "from": "2020-01-01",
            "to": "2023-01-01",
            "description": "The date of the interaction.",
            "nullable": true,
            "when": {
              "column": "interaction_type",
              "in": [
                "call",
                "email",
                "in-person",
                "chat"
              ]
            },
            "dayProfile": "waking",
            "trend": "growing"
          }
        }
      },
      "compliance_records": {
        "description": "This table holds records of compliance updates and regulatory changes affecting the bank.",
        "rows": 50,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each compliance record."
          },
          "update_date": {
            "kind": "datetime",
            "from": "2020-01-01",
            "to": "2023-01-01",
            "description": "The date when the compliance update was made.",
            "dayProfile": "business"
          },
          "description": {
            "kind": "sentence",
            "min": 10,
            "max": 250,
            "description": "Details about the compliance update.",
            "nullable": true
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "categorical",
      "timestamped",
      "nullable"
    ],
    "analysisQuestions": [
      "What are the most common types of customer interactions?",
      "How do transaction amounts vary over time?",
      "Which compliance updates have the most significant impact on customer transactions?",
      "What patterns can be observed in transaction notes related to customer behavior?",
      "How frequently do customers interact with the bank compared to their transaction activity?"
    ],
    "suggestedQueries": [
      {
        "title": "Join Customers and Transactions",
        "sql": "SELECT c.first_name, c.last_name, t.amount FROM customers c JOIN transactions t ON c.id = t.customer_id;",
        "dialect": "postgres"
      },
      {
        "title": "Aggregate Transactions by Customer",
        "sql": "SELECT customer_id, COUNT(*) AS transaction_count, SUM(amount) AS total_amount FROM transactions GROUP BY customer_id;",
        "dialect": "postgres"
      },
      {
        "title": "Transaction Notes by Date",
        "sql": "SELECT t.transaction_date, COUNT(n.id) AS note_count FROM transactions t LEFT JOIN transaction_notes n ON t.id = n.transaction_id GROUP BY t.transaction_date;",
        "dialect": "postgres"
      },
      {
        "title": "Interactions Over Time",
        "sql": "SELECT INTERACTION_DATE, COUNT(*) AS interaction_count FROM customer_interactions GROUP BY interaction_date ORDER BY interaction_date;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Compliance Training",
        "body": "Banking compliance officers can utilize this dataset to train new hires on compliance processes and record-keeping practices. By analyzing compliance records and transaction notes, trainees can understand how regulatory changes impact customer transactions and learn to identify patterns in compliance updates."
      },
      {
        "title": "Customer Behavior Analysis",
        "body": "Data analysts in a banking institution can leverage this dataset to study customer behavior and transaction patterns. By examining transactions and customer interactions, they can derive insights on customer engagement and identify potential areas for improvement in service delivery."
      },
      {
        "title": "ETL Pipeline Development",
        "body": "Developers can use this synthetic dataset to practice building ETL pipelines for data integration tasks. The dataset's structure allows for testing various ETL processes, such as data extraction, transformation, and loading into a data warehouse, ensuring they can handle real-world banking data effectively."
      },
      {
        "title": "SQL Query Practice",
        "body": "Students and data enthusiasts can use this dataset to practice SQL querying techniques. With multiple tables and relationships, users can develop their skills in writing complex queries, joins, and aggregations, preparing them for real-world data analysis tasks in the banking sector."
      }
    ]
  },
  "counts": {
    "compliance_records": 50,
    "customers": 200,
    "customer_interactions": 250,
    "transactions": 454,
    "transaction_notes": 322
  },
  "stats": {
    "customers": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "first_name": {
          "nulls": 30,
          "distinct": 66,
          "min": "Alice",
          "max": "Zoe"
        },
        "last_name": {
          "nulls": 22,
          "distinct": 71,
          "min": "Adams",
          "max": "Zhang"
        },
        "email": {
          "nulls": 27,
          "distinct": 171
        },
        "created_at": {
          "nulls": 0,
          "distinct": 200,
          "min": "2020-01-01 16:21:33",
          "max": "2022-12-17 13:45:58"
        }
      }
    },
    "transactions": {
      "rows": 454,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 454,
          "min": 1,
          "max": 454
        },
        "customer_id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "amount": {
          "nulls": 45,
          "distinct": 409,
          "min": 1.1,
          "max": 9928.7
        },
        "transaction_date": {
          "nulls": 0,
          "distinct": 454,
          "min": "2020-01-02 18:51:34",
          "max": "2022-12-29 14:36:04"
        }
      }
    },
    "transaction_notes": {
      "rows": 322,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 322,
          "min": 1,
          "max": 322
        },
        "transaction_id": {
          "nulls": 0,
          "distinct": 173,
          "min": 3,
          "max": 454
        },
        "note": {
          "nulls": 25,
          "distinct": 295
        },
        "created_at": {
          "nulls": 0,
          "distinct": 322,
          "min": "2020-01-01 10:03:26",
          "max": "2022-12-28 20:50:56"
        }
      }
    },
    "customer_interactions": {
      "rows": 250,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 250,
          "min": 1,
          "max": 250
        },
        "customer_id": {
          "nulls": 0,
          "distinct": 115,
          "min": 1,
          "max": 199
        },
        "interaction_type": {
          "nulls": 0,
          "distinct": 4,
          "min": "call",
          "max": "in-person"
        },
        "interaction_date": {
          "nulls": 0,
          "distinct": 250,
          "min": "2020-01-13 14:58:57",
          "max": "2022-12-30 13:44:06"
        }
      }
    },
    "compliance_records": {
      "rows": 50,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 50,
          "min": 1,
          "max": 50
        },
        "update_date": {
          "nulls": 0,
          "distinct": 50,
          "min": "2020-02-18 13:35:01",
          "max": "2022-11-20 14:01:53"
        },
        "description": {
          "nulls": 6,
          "distinct": 44
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/compliance_records.csv",
      "format": "csv",
      "table": "compliance_records",
      "key": "datasets/financial-insights-archive/v3/csv/compliance_records.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/financial-insights-archive/v3/csv/compliance_records.csv",
      "bytes": 3744,
      "sha256": "7de32eeec7bb0cd9261ed4531108c9cd9798699a66f9f43fcf26a31d3569b537",
      "rows": 50,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/customers.csv",
      "format": "csv",
      "table": "customers",
      "key": "datasets/financial-insights-archive/v3/csv/customers.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/financial-insights-archive/v3/csv/customers.csv",
      "bytes": 11289,
      "sha256": "48d4836d7f899dbe2129d40e2bd4c1bc0e8573bece1a8f683e1d6ec730b9ac25",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/customer_interactions.csv",
      "format": "csv",
      "table": "customer_interactions",
      "key": "datasets/financial-insights-archive/v3/csv/customer_interactions.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/financial-insights-archive/v3/csv/customer_interactions.csv",
      "bytes": 8546,
      "sha256": "b98db75b31e520ca7809c1e0486c4093feafc62d52cab0d162510adfb67a8420",
      "rows": 250,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/transactions.csv",
      "format": "csv",
      "table": "transactions",
      "key": "datasets/financial-insights-archive/v3/csv/transactions.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/financial-insights-archive/v3/csv/transactions.csv",
      "bytes": 16002,
      "sha256": "06482ed76db9ab982893a3dc7043069f78269a06f4845c88f9608a0a4f537a82",
      "rows": 454,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/transaction_notes.csv",
      "format": "csv",
      "table": "transaction_notes",
      "key": "datasets/financial-insights-archive/v3/csv/transaction_notes.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/financial-insights-archive/v3/csv/transaction_notes.csv",
      "bytes": 25862,
      "sha256": "cbb2c076ddccc1bee2f15d43804986452603c083283879cde9ef843031691d40",
      "rows": 322,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "financial-insights-archive.json",
      "format": "json",
      "table": null,
      "key": "datasets/financial-insights-archive/v3/financial-insights-archive.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/financial-insights-archive/v3/financial-insights-archive.json",
      "bytes": 187632,
      "sha256": "afe532b962de0607442968db487ff7ca7b07ff2a972c5bbb9780af570af9a640",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/financial-insights-archive/v3/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/financial-insights-archive/v3/sql/postgres.sql",
      "bytes": 85232,
      "sha256": "8efae2ec296decfa80764086389d022dc1ae04d33da358f7e1b80e5593254d16",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/financial-insights-archive/v3/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/financial-insights-archive/v3/sql/mysql.sql",
      "bytes": 84610,
      "sha256": "ba3d3532bf2e7f3976c60b96713f9fe562ed0d3dd7b9c8df25a8ff559442823f",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/financial-insights-archive/v3/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/financial-insights-archive/v3/sql/mssql.sql",
      "bytes": 87404,
      "sha256": "0e56cbea1d82dc1f16cec5b036ba8f18e6ed7c26b93b8893c3a49b330eed10e6",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/financial-insights-archive/v3/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/financial-insights-archive/v3/sql/sqlite.sql",
      "bytes": 84387,
      "sha256": "f734262e429a79ba1e672e1b1117de254eb9895f40a78ce2d3c49bfa2c2f5012",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/financial-insights-archive/v3/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/financial-insights-archive/v3/prisma/seed.ts",
      "bytes": 166555,
      "sha256": "007f1eb37a559fb387dddeb54625447ceda641f076b1eb4c4e203e2e44b815e2",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/financial-insights-archive/v3/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/financial-insights-archive/v3/django/fixtures.json",
      "bytes": 250747,
      "sha256": "27dbf6e355993c5ef386b1313bd1f72b212c3e9f66895b4ec7d63497f6a8858c",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788766771770,
  "updatedAt": 1788783933123
}
