{
  "format": "dataset-manifest/1",
  "slug": "budget-insights-data",
  "version": 2,
  "seed": "budget-insights-data:1",
  "spec": {
    "format": "dataset/1",
    "slug": "budget-insights-data",
    "name": "Budget Insights Data",
    "tagline": "User accounts, transactions, investments, savings goals, and debts for personal finance management.",
    "description": "Users monitor their personal finances by tracking budgets and savings goals through this service. Each user maintains an account that records their financial activities, allowing them to navigate transactions, investments, and debts effortlessly. The business primarily focuses on helping individuals analyze their financial behaviors to achieve specific milestones, such as increasing savings or managing debts. Regular transactions, often categorized by type of spending, form the bulk of user activity, while investment strategies and debt management are less frequently encountered but equally important for overall financial health.\n\nThe dataset includes several interconnected tables: 'users' captures key information about individuals utilizing the service, while 'accounts' details the financial accounts tied to each user. The 'transactions' table records individual financial activities, offering insights into spending habits over time. Users can set 'savings_goals' that reflect their aspirations, and 'investments' provide a glimpse into their involvement with various financial instruments. Finally, the 'debts' table illustrates the liabilities each user carries, which is crucial for understanding overall financial wellness.\n\nBy analyzing this data, one can answer questions such as: How do spending patterns vary among different user segments? What is the average time taken for users to achieve their savings goals? How do investments correlate with overall account growth? This information is valuable for developers looking to practice on real-life financial scenarios or build analytical tools aimed at improving personal finance management. The dataset is synthetic, crafted to simulate realistic user behavior without representing actual financial data.",
    "domain": "banking",
    "shape": "hierarchical",
    "useCases": [
      "sql-practice",
      "teaching"
    ],
    "keywords": [
      "budgeting",
      "savings",
      "transactions",
      "investments",
      "debts",
      "financial management"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "users": {
        "description": "This table contains user information, including unique identifiers and personal details. Each user can have multiple accounts associated with them.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each user."
          },
          "full_name": {
            "kind": "fullName",
            "description": "The full name of the user."
          },
          "email": {
            "kind": "email",
            "from": "full_name",
            "description": "The email address of the user."
          },
          "created_at": {
            "kind": "datetime",
            "from": "2022-01-01",
            "to": "2023-12-31",
            "description": "The date when the user account was created.",
            "dayProfile": "business"
          }
        }
      },
      "accounts": {
        "description": "This table contains information about user accounts, linking back to the users table. Each user can have multiple accounts.",
        "rows": 400,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each account."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "The ID of the user who owns this account."
          },
          "account_type": {
            "kind": "enum",
            "values": [
              "checking",
              "savings",
              "credit"
            ],
            "description": "The type of the account."
          },
          "balance": {
            "kind": "decimal",
            "min": 0,
            "max": 100000,
            "scale": 2,
            "description": "The current balance of the account.",
            "distribution": "long-tail"
          },
          "created_at": {
            "kind": "datetime",
            "from": "2022-01-01",
            "to": "2023-12-31",
            "description": "The date when the account was created.",
            "dayProfile": "business"
          }
        }
      },
      "transactions": {
        "description": "This table logs all transactions made by users, linking back to their accounts. Each transaction is associated with a specific account.",
        "rows": 1000,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each transaction."
          },
          "account_id": {
            "kind": "fk",
            "ref": "accounts.id",
            "description": "The ID of the account related to this transaction."
          },
          "amount": {
            "kind": "decimal",
            "min": -1000,
            "max": 1000,
            "scale": 2,
            "description": "The amount of money involved in the transaction.",
            "distribution": "normal"
          },
          "transaction_date": {
            "kind": "datetime",
            "from": "2022-01-01",
            "to": "2023-12-31",
            "description": "The date when the transaction occurred.",
            "dayProfile": "waking",
            "trend": "growing"
          },
          "category": {
            "kind": "enum",
            "values": [
              "groceries",
              "dining",
              "entertainment",
              "utilities",
              "other"
            ],
            "description": "The category of the transaction."
          }
        }
      },
      "savings_goals": {
        "description": "This table tracks savings goals set by users, linking back to the users table. Each user can have multiple savings goals.",
        "rows": 300,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each savings goal."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "The ID of the user who set this goal."
          },
          "goal_name": {
            "kind": "words",
            "min": 1,
            "max": 3,
            "description": "The name of the savings goal.",
            "pool": [
              "vacation",
              "emergency",
              "car",
              "house",
              "education",
              "wedding",
              "travel",
              "retirement",
              "furniture",
              "appliance",
              "electronics",
              "investment",
              "holiday",
              "pet",
              "health",
              "business",
              "honeymoon",
              "vacation_home",
              "down_payment",
              "tuition",
              "renovation",
              "charity",
              "gifts",
              "fund",
              "startup",
              "project",
              "experience",
              "adventure",
              "safety",
              "insurance",
              "savings",
              "deposit",
              "trip",
              "expansion",
              "course",
              "workshop",
              "training",
              "equipment",
              "tools",
              "research",
              "development",
              "support",
              "maintenance",
              "upgrade",
              "relocation",
              "move",
              "transition",
              "change",
              "goal",
              "plan",
              "strategy",
              "future",
              "dream"
            ]
          },
          "target_amount": {
            "kind": "decimal",
            "min": 100,
            "max": 50000,
            "scale": 2,
            "description": "The target amount to save for this goal.",
            "distribution": "long-tail"
          },
          "current_amount": {
            "kind": "decimal",
            "min": 0,
            "max": 50000,
            "scale": 2,
            "description": "The amount currently saved towards this goal.",
            "distribution": "long-tail"
          },
          "due_date": {
            "kind": "date",
            "from": "2022-01-01",
            "to": "2025-12-31",
            "description": "The date by which the savings goal should be achieved."
          }
        }
      },
      "investments": {
        "description": "This table logs user investments, linking back to the users table. Users can have multiple investments.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each investment."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "The ID of the user who made this investment."
          },
          "investment_type": {
            "kind": "enum",
            "values": [
              "stocks",
              "bonds",
              "real estate",
              "mutual funds"
            ],
            "description": "The type of investment."
          },
          "amount_invested": {
            "kind": "decimal",
            "min": 100,
            "max": 100000,
            "scale": 2,
            "description": "The amount of money invested.",
            "distribution": "heavy-tail"
          },
          "investment_date": {
            "kind": "datetime",
            "from": "2022-01-01",
            "to": "2023-12-31",
            "description": "The date when the investment was made.",
            "dayProfile": "waking"
          }
        }
      },
      "debts": {
        "description": "This table tracks debts associated with users, linking back to the users table. Each user can have multiple debts.",
        "rows": 150,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each debt."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "The ID of the user who owes this debt."
          },
          "debt_type": {
            "kind": "enum",
            "values": [
              "credit card",
              "student loan",
              "mortgage",
              "personal loan"
            ],
            "description": "The type of debt."
          },
          "total_amount": {
            "kind": "decimal",
            "min": 100,
            "max": 100000,
            "scale": 2,
            "description": "The total amount owed.",
            "distribution": "heavy-tail"
          },
          "remaining_balance": {
            "kind": "decimal",
            "min": 0,
            "max": 100000,
            "scale": 2,
            "description": "The remaining balance of the debt.",
            "distribution": "long-tail"
          },
          "due_date": {
            "kind": "date",
            "from": "2022-01-01",
            "to": "2025-12-31",
            "description": "The date by which the debt needs to be repaid."
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "categorical",
      "monetary",
      "nullable",
      "timestamped"
    ],
    "analysisQuestions": [
      "What are the most common categories of spending among users?",
      "How many users are on track to meet their savings goals this month?",
      "What is the average balance across different account types?",
      "How does the investment behavior vary by user demographics?",
      "What percentage of debts are paid off on time?"
    ],
    "suggestedQueries": [
      {
        "title": "Get all transactions for a user",
        "sql": "SELECT * FROM transactions WHERE account_id IN (SELECT id FROM accounts WHERE user_id = ?);",
        "dialect": "postgres"
      },
      {
        "title": "Calculate total savings for each user",
        "sql": "SELECT user_id, SUM(current_amount) AS total_savings FROM savings_goals GROUP BY user_id;",
        "dialect": "postgres"
      },
      {
        "title": "Count investments by type",
        "sql": "SELECT investment_type, COUNT(*) FROM investments GROUP BY investment_type;",
        "dialect": "postgres"
      },
      {
        "title": "Find users with debts due soon",
        "sql": "SELECT user_id FROM debts WHERE due_date < NOW() + INTERVAL '30 days';",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Personal Finance Educators",
        "body": "Educators teaching personal finance can use the Budget Insights Data to create realistic scenarios for students. They can design exercises that require students to analyze spending habits, set savings goals, and understand debt management, ensuring students grasp essential financial concepts."
      },
      {
        "title": "Financial Advisors",
        "body": "Financial advisors can leverage this dataset to simulate client portfolios and investment strategies. By analyzing trends in spending and savings, advisors can tailor their recommendations to help clients achieve their financial goals effectively."
      },
      {
        "title": "Data Analysts in Banking",
        "body": "Data analysts within banking institutions can utilize this dataset to explore customer behavior patterns. Insights derived from transactions and savings goals can inform product offerings, marketing strategies, and customer engagement practices."
      },
      {
        "title": "Software Developers",
        "body": "Developers building financial management apps can use this dataset to test features such as budgeting tools, savings trackers, and debt calculators. By practicing with realistic data, they can ensure their applications cater to user needs and financial literacy."
      }
    ]
  },
  "counts": {
    "users": 200,
    "accounts": 400,
    "debts": 150,
    "investments": 200,
    "savings_goals": 300,
    "transactions": 1000
  },
  "stats": {
    "users": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "full_name": {
          "nulls": 0,
          "distinct": 196,
          "min": "Alice Andersen",
          "max": "Zoe Sousa"
        },
        "email": {
          "nulls": 0,
          "distinct": 198
        },
        "created_at": {
          "nulls": 0,
          "distinct": 200,
          "min": "2022-01-01 13:04:27",
          "max": "2023-12-31 09:17:51"
        }
      }
    },
    "accounts": {
      "rows": 400,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 400,
          "min": 1,
          "max": 400
        },
        "user_id": {
          "nulls": 0,
          "distinct": 181,
          "min": 1,
          "max": 200
        },
        "account_type": {
          "nulls": 0,
          "distinct": 3,
          "min": "checking",
          "max": "savings"
        },
        "balance": {
          "nulls": 0,
          "distinct": 400,
          "min": 0.06,
          "max": 99559.14
        },
        "created_at": {
          "nulls": 0,
          "distinct": 400,
          "min": "2022-01-02 14:51:19",
          "max": "2023-12-30 10:04:21"
        }
      }
    },
    "transactions": {
      "rows": 1000,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 1000,
          "min": 1,
          "max": 1000
        },
        "account_id": {
          "nulls": 0,
          "distinct": 371,
          "min": 2,
          "max": 400
        },
        "amount": {
          "nulls": 0,
          "distinct": 994,
          "min": -857.13,
          "max": 769.09
        },
        "transaction_date": {
          "nulls": 0,
          "distinct": 1000,
          "min": "2022-01-01 08:03:00",
          "max": "2023-12-31 10:53:09"
        },
        "category": {
          "nulls": 0,
          "distinct": 5,
          "min": "dining",
          "max": "utilities"
        }
      }
    },
    "savings_goals": {
      "rows": 300,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 300,
          "min": 1,
          "max": 300
        },
        "user_id": {
          "nulls": 0,
          "distinct": 159,
          "min": 2,
          "max": 200
        },
        "goal_name": {
          "nulls": 0,
          "distinct": 238
        },
        "target_amount": {
          "nulls": 0,
          "distinct": 300,
          "min": 101.56,
          "max": 49709.42
        },
        "current_amount": {
          "nulls": 0,
          "distinct": 300,
          "min": 0.54,
          "max": 49961.76
        },
        "due_date": {
          "nulls": 0,
          "distinct": 271,
          "min": "2022-01-01",
          "max": "2025-12-31"
        }
      }
    },
    "investments": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "user_id": {
          "nulls": 0,
          "distinct": 132,
          "min": 3,
          "max": 200
        },
        "investment_type": {
          "nulls": 0,
          "distinct": 4,
          "min": "bonds",
          "max": "stocks"
        },
        "amount_invested": {
          "nulls": 0,
          "distinct": 200,
          "min": 100.06,
          "max": 96322.72
        },
        "investment_date": {
          "nulls": 0,
          "distinct": 200,
          "min": "2022-01-05 03:54:02",
          "max": "2023-12-31 23:04:38"
        }
      }
    },
    "debts": {
      "rows": 150,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 150,
          "min": 1,
          "max": 150
        },
        "user_id": {
          "nulls": 0,
          "distinct": 101,
          "min": 2,
          "max": 200
        },
        "debt_type": {
          "nulls": 0,
          "distinct": 4,
          "min": "credit card",
          "max": "student loan"
        },
        "total_amount": {
          "nulls": 0,
          "distinct": 150,
          "min": 100.24,
          "max": 99350.76
        },
        "remaining_balance": {
          "nulls": 0,
          "distinct": 150,
          "min": 0.41,
          "max": 95190.57
        },
        "due_date": {
          "nulls": 0,
          "distinct": 140,
          "min": "2022-01-18",
          "max": "2025-12-24"
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/users.csv",
      "format": "csv",
      "table": "users",
      "key": "datasets/budget-insights-data/v2/csv/users.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/budget-insights-data/v2/csv/users.csv",
      "bytes": 12075,
      "sha256": "8894c485309368f910006bf1d3aecb92d5b0617a7fb5f0fac00ac376e0d6ad71",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/accounts.csv",
      "format": "csv",
      "table": "accounts",
      "key": "datasets/budget-insights-data/v2/csv/accounts.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/budget-insights-data/v2/csv/accounts.csv",
      "bytes": 17933,
      "sha256": "89db5fb711c334415961b74a4ec0d362129caafa54244d8b421d5fa04bbd61ee",
      "rows": 400,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/debts.csv",
      "format": "csv",
      "table": "debts",
      "key": "datasets/budget-insights-data/v2/csv/debts.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/budget-insights-data/v2/csv/debts.csv",
      "bytes": 7200,
      "sha256": "6a0bbb7cdc3771ed2b954e7d05b0246a447d446c062fd945ece5e2a9448e662c",
      "rows": 150,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/investments.csv",
      "format": "csv",
      "table": "investments",
      "key": "datasets/budget-insights-data/v2/csv/investments.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/budget-insights-data/v2/csv/investments.csv",
      "bytes": 9171,
      "sha256": "306ea3994e5a7732594f3ab64e6347f92b164a8b6e8c7e37d41e0221efff7f57",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/savings_goals.csv",
      "format": "csv",
      "table": "savings_goals",
      "key": "datasets/budget-insights-data/v2/csv/savings_goals.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/budget-insights-data/v2/csv/savings_goals.csv",
      "bytes": 15853,
      "sha256": "31e9f13161ad58c8d6bd9a6aaaf9e8aec68fa4b83e1c46e98b7ff1c0fdd34b3c",
      "rows": 300,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/transactions.csv",
      "format": "csv",
      "table": "transactions",
      "key": "datasets/budget-insights-data/v2/csv/transactions.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/budget-insights-data/v2/csv/transactions.csv",
      "bytes": 45306,
      "sha256": "02e7e10bb806faa54502f7cc3bab07468558d0d8ae09180d916507bee9faced4",
      "rows": 1000,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "budget-insights-data.json",
      "format": "json",
      "table": null,
      "key": "datasets/budget-insights-data/v2/budget-insights-data.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/budget-insights-data/v2/budget-insights-data.json",
      "bytes": 365073,
      "sha256": "bd262a2c01b83f5dfe04f7819dbfa4d558cf0ba7cfcd1e268016938f41747c58",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/budget-insights-data/v2/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/budget-insights-data/v2/sql/postgres.sql",
      "bytes": 143523,
      "sha256": "f8db646e46637f1c7179c2f45861f91bb6f50ab5e597a2715fb6c0156b554136",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/budget-insights-data/v2/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/budget-insights-data/v2/sql/mysql.sql",
      "bytes": 142848,
      "sha256": "81a85c5306577727ea18b7ddd1b455b0d5096c25ea7de1f4bfb2fee715fdeff8",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/budget-insights-data/v2/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/budget-insights-data/v2/sql/mssql.sql",
      "bytes": 147937,
      "sha256": "109f286196dbb9fdb8afa4227f9f6c0faa147bc460b3b5273bc4415da5918b8f",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/budget-insights-data/v2/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/budget-insights-data/v2/sql/sqlite.sql",
      "bytes": 142603,
      "sha256": "4456825b755a485cfc9f7dab2dc0a9a5603768e11532f6ea798d86ceef7bea9a",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/budget-insights-data/v2/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/budget-insights-data/v2/prisma/seed.ts",
      "bytes": 308216,
      "sha256": "bc9946db07ab765f4ed5d173053f16738b17ea67646940c4c6de1374fdbb5e61",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/budget-insights-data/v2/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/budget-insights-data/v2/django/fixtures.json",
      "bytes": 469636,
      "sha256": "b670c61ec8b886625ed2cd32e25dd808e604d684b08dce80d9a2ea427a4583f1",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788767767607,
  "updatedAt": 1788777701441
}
