{
  "format": "dataset-manifest/1",
  "slug": "micro-savings-and-round-up-app",
  "version": 1,
  "seed": "micro-savings-and-round-up-app:1",
  "spec": {
    "format": "dataset/1",
    "slug": "micro-savings-and-round-up-app",
    "name": "Micro Savings Insights",
    "tagline": "User transactions, savings goals, and contributions related to micro-savings initiatives in personal finance.",
    "description": "Customers engage in micro-savings initiatives, where small transactions are rounded up to contribute towards savings goals or investments in stocks. This dataset captures the activities of users who optimize their savings through automated round-ups, contributions to charities, and accessing educational resources about financial health. The data reveals frequent small transactions that aggregate over time, allowing users to see how their micro-savings efforts accumulate. The dataset includes transaction records, savings goals, educational resources, and user profiles, providing a comprehensive view of user behavior in the realm of personal finance. As this is a synthetic dataset, it is designed for developers to practice SQL queries and ORM seeding, enabling them to explore the relationships between various tables and gain insights into micro-savings activities.",
    "domain": "banking",
    "shape": "transactional",
    "useCases": [
      "sql-practice",
      "orm-seeding"
    ],
    "keywords": [
      "micro-savings",
      "financial health",
      "round-ups",
      "transactions",
      "savings goals",
      "charity contributions",
      "user profiles",
      "investment",
      "data analysis"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "users": {
        "description": "Each row represents a user in the micro-savings app, linking to their savings goals and transactions.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for the user."
          },
          "full_name": {
            "kind": "fullName",
            "description": "The user's full name."
          },
          "email": {
            "kind": "email",
            "from": "full_name",
            "description": "The user's email address."
          },
          "created_at": {
            "kind": "datetime",
            "from": "2020-01-01",
            "to": "2023-12-31",
            "description": "The date the user created their profile.",
            "dayProfile": "business"
          },
          "is_active": {
            "kind": "bool",
            "trueRate": 0.9,
            "description": "Indicates if the user is currently active."
          }
        }
      },
      "transactions": {
        "description": "Each row records a transaction made by users, indicating the amount and whether it was rounded up.",
        "rows": {
          "per": "users",
          "via": "user_id",
          "min": 3,
          "max": 10,
          "skew": "long-tail"
        },
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for the transaction."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "The user who made the transaction."
          },
          "amount": {
            "kind": "decimal",
            "min": 0.01,
            "max": 100,
            "scale": 2,
            "description": "The amount of the transaction."
          },
          "rounded_up": {
            "kind": "bool",
            "trueRate": 0.7,
            "description": "Indicates if the transaction was rounded up for savings."
          },
          "transaction_date": {
            "kind": "datetime",
            "from": "2020-01-01",
            "to": "2023-12-31",
            "description": "The date the transaction occurred.",
            "dayProfile": "waking"
          }
        }
      },
      "savings_goals": {
        "description": "Each row represents a savings goal defined by users, linked to their profiles and transactions.",
        "rows": {
          "per": "users",
          "via": "user_id",
          "min": 1,
          "max": 5,
          "skew": "long-tail"
        },
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for the savings goal."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "The user who set the savings goal."
          },
          "goal_name": {
            "kind": "words",
            "min": 3,
            "max": 15,
            "description": "The name of the savings goal."
          },
          "target_amount": {
            "kind": "decimal",
            "min": 50,
            "max": 5000,
            "scale": 2,
            "description": "The target amount for the savings goal."
          },
          "current_amount": {
            "kind": "decimal",
            "min": 0,
            "max": 5000,
            "scale": 2,
            "description": "The current amount saved towards the goal."
          },
          "due_date": {
            "kind": "date",
            "from": "2023-01-01",
            "to": "2025-12-31",
            "description": "The date by which the goal should be achieved."
          }
        }
      },
      "charity_contributions": {
        "description": "Each row records charity contributions made by users from their savings.",
        "rows": {
          "per": "users",
          "via": "user_id",
          "min": 0,
          "max": 3,
          "skew": "long-tail"
        },
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for the charity contribution."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "The user who made the charity contribution."
          },
          "amount": {
            "kind": "decimal",
            "min": 1,
            "max": 500,
            "scale": 2,
            "description": "The amount contributed to charity."
          },
          "charity_name": {
            "kind": "words",
            "min": 3,
            "max": 20,
            "description": "The name of the charity receiving the contribution."
          },
          "contribution_date": {
            "kind": "datetime",
            "from": "2020-01-01",
            "to": "2023-12-31",
            "description": "The date the contribution was made.",
            "dayProfile": "waking"
          }
        }
      },
      "educational_resources": {
        "description": "Each row contains an educational resource related to financial health available to users.",
        "rows": 50,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for the educational resource."
          },
          "title": {
            "kind": "words",
            "min": 3,
            "max": 15,
            "description": "The title of the educational resource."
          },
          "description": {
            "kind": "paragraph",
            "min": 50,
            "max": 200,
            "description": "A brief description of the resource.",
            "nullable": true
          },
          "resource_type": {
            "kind": "enum",
            "values": [
              "article",
              "video",
              "webinar"
            ],
            "description": "The type of the educational resource."
          },
          "url": {
            "kind": "url",
            "description": "The link to access the educational resource.",
            "nullable": true,
            "when": {
              "column": "resource_type",
              "in": [
                "article",
                "video"
              ]
            }
          }
        }
      },
      "advisers": {
        "description": "Each row represents an adviser assigned to assist users with their financial health.",
        "rows": {
          "per": "users",
          "via": "user_id",
          "min": 0,
          "max": 1,
          "skew": "long-tail"
        },
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for the adviser."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "The user assigned to the adviser."
          },
          "full_name": {
            "kind": "fullName",
            "description": "The adviser's full name."
          },
          "email": {
            "kind": "email",
            "from": "full_name",
            "description": "The adviser's email address."
          },
          "assigned_date": {
            "kind": "datetime",
            "from": "2020-01-01",
            "to": "2023-12-31",
            "description": "The date the adviser was assigned to the user.",
            "dayProfile": "business"
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "monetary",
      "timestamped",
      "nullable",
      "high-cardinality"
    ],
    "analysisQuestions": [
      "How do users' contributions to their savings goals change over time?",
      "What percentage of transactions result in round-ups for savings?",
      "Which charities receive the most contributions from users?",
      "How does the assignment of advisers impact users' savings behavior?",
      "What types of educational resources are most accessed by users?"
    ],
    "suggestedQueries": [
      {
        "title": "Get all transactions for a user",
        "sql": "SELECT * FROM transactions WHERE user_id = $1;",
        "dialect": "postgres"
      },
      {
        "title": "Aggregate total savings per user",
        "sql": "SELECT user_id, SUM(amount) AS total_savings FROM transactions WHERE rounded_up = TRUE GROUP BY user_id;",
        "dialect": "postgres"
      },
      {
        "title": "Find average contribution amount to charity",
        "sql": "SELECT AVG(amount) FROM charity_contributions;",
        "dialect": "postgres"
      },
      {
        "title": "List savings goals and their current status",
        "sql": "SELECT goal_name, current_amount, target_amount FROM savings_goals;",
        "dialect": "postgres"
      },
      {
        "title": "Get users with assigned advisers",
        "sql": "SELECT u.full_name, a.full_name AS adviser_name FROM users u JOIN advisers a ON u.id = a.user_id;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "SQL Practitioners",
        "body": "Developers looking to improve their SQL skills can use this dataset to practice writing queries for extracting user transactions, analyzing savings patterns, and understanding the impact of micro-savings on financial health."
      },
      {
        "title": "ORM Developers",
        "body": "Software engineers working on applications related to personal finance can utilize this dataset for ORM seeding, enabling them to create realistic models and test their applications with synthetic but practical data reflecting user interactions with savings and investments."
      },
      {
        "title": "Financial Analysts",
        "body": "Analysts can leverage this dataset to study trends in micro-savings behaviors, examining how users interact with savings goals and the effectiveness of round-up features in promoting financial health."
      },
      {
        "title": "Educational Resource Managers",
        "body": "Managers of educational platforms can analyze the usage of financial resources among users, identifying which types of educational content are most popular and how they correlate with user engagement and savings behavior."
      }
    ]
  },
  "counts": {
    "educational_resources": 50,
    "users": 200,
    "advisers": 42,
    "charity_contributions": 195,
    "savings_goals": 455,
    "transactions": 1050
  },
  "stats": {
    "users": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "full_name": {
          "nulls": 0,
          "distinct": 198,
          "min": "Alice Ahmed",
          "max": "Zoe Zhang"
        },
        "email": {
          "nulls": 0,
          "distinct": 198
        },
        "created_at": {
          "nulls": 0,
          "distinct": 200,
          "min": "2020-01-04 10:58:40",
          "max": "2023-12-06 17:46:17"
        },
        "is_active": {
          "nulls": 0,
          "distinct": 2,
          "min": "false",
          "max": "true"
        }
      }
    },
    "transactions": {
      "rows": 1050,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 1050,
          "min": 1,
          "max": 1050
        },
        "user_id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "amount": {
          "nulls": 0,
          "distinct": 1001,
          "min": 0.03,
          "max": 99.91
        },
        "rounded_up": {
          "nulls": 0,
          "distinct": 2,
          "min": "false",
          "max": "true"
        },
        "transaction_date": {
          "nulls": 0,
          "distinct": 1050,
          "min": "2020-01-01 12:13:17",
          "max": "2023-12-30 08:35:33"
        }
      }
    },
    "savings_goals": {
      "rows": 455,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 455,
          "min": 1,
          "max": 455
        },
        "user_id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "goal_name": {
          "nulls": 0,
          "distinct": 455
        },
        "target_amount": {
          "nulls": 0,
          "distinct": 454,
          "min": 58.52,
          "max": 4998.22
        },
        "current_amount": {
          "nulls": 0,
          "distinct": 455,
          "min": 0.38,
          "max": 4986.84
        },
        "due_date": {
          "nulls": 0,
          "distinct": 386,
          "min": "2023-01-05",
          "max": "2025-12-22"
        }
      }
    },
    "charity_contributions": {
      "rows": 195,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 195,
          "min": 1,
          "max": 195
        },
        "user_id": {
          "nulls": 0,
          "distinct": 101,
          "min": 1,
          "max": 200
        },
        "amount": {
          "nulls": 0,
          "distinct": 195,
          "min": 1.97,
          "max": 495.88
        },
        "charity_name": {
          "nulls": 0,
          "distinct": 195
        },
        "contribution_date": {
          "nulls": 0,
          "distinct": 195,
          "min": "2020-01-09 18:36:05",
          "max": "2023-12-06 18:15:07"
        }
      }
    },
    "educational_resources": {
      "rows": 50,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 50,
          "min": 1,
          "max": 50
        },
        "title": {
          "nulls": 0,
          "distinct": 50
        },
        "description": {
          "nulls": 4,
          "distinct": 46
        },
        "resource_type": {
          "nulls": 0,
          "distinct": 3,
          "min": "article",
          "max": "webinar"
        },
        "url": {
          "nulls": 24,
          "distinct": 26
        }
      }
    },
    "advisers": {
      "rows": 42,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 42,
          "min": 1,
          "max": 42
        },
        "user_id": {
          "nulls": 0,
          "distinct": 42,
          "min": 7,
          "max": 197
        },
        "full_name": {
          "nulls": 0,
          "distinct": 42,
          "min": "Alice Hansen",
          "max": "Zara Bennett"
        },
        "email": {
          "nulls": 0,
          "distinct": 42
        },
        "assigned_date": {
          "nulls": 0,
          "distinct": 42,
          "min": "2020-01-21 12:31:58",
          "max": "2023-12-31 22:31:38"
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/educational_resources.csv",
      "format": "csv",
      "table": "educational_resources",
      "key": "datasets/micro-savings-and-round-up-app/v1/csv/educational_resources.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/micro-savings-and-round-up-app/v1/csv/educational_resources.csv",
      "bytes": 13071,
      "sha256": "b0709e4555b56dd22e74580a1c729b31caba365212d0ceabdea5c4f1b89e8bf9",
      "rows": 50,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/users.csv",
      "format": "csv",
      "table": "users",
      "key": "datasets/micro-savings-and-round-up-app/v1/csv/users.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/micro-savings-and-round-up-app/v1/csv/users.csv",
      "bytes": 13218,
      "sha256": "ccb02baf8fc47ea61eb5e78d57c6710a1a63d60f5aedb632c2374f678b414553",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/advisers.csv",
      "format": "csv",
      "table": "advisers",
      "key": "datasets/micro-savings-and-round-up-app/v1/csv/advisers.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/micro-savings-and-round-up-app/v1/csv/advisers.csv",
      "bytes": 2691,
      "sha256": "f1d5c8c270d47d5c114e9c95047c5d7a6ced77d2b3c73450223bc9d959035957",
      "rows": 42,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/charity_contributions.csv",
      "format": "csv",
      "table": "charity_contributions",
      "key": "datasets/micro-savings-and-round-up-app/v1/csv/charity_contributions.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/micro-savings-and-round-up-app/v1/csv/charity_contributions.csv",
      "bytes": 21283,
      "sha256": "fcdf27653cff84447898a2a53e83b049e1ca5a8847ac095b284d2dff575a778a",
      "rows": 195,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/savings_goals.csv",
      "format": "csv",
      "table": "savings_goals",
      "key": "datasets/micro-savings-and-round-up-app/v1/csv/savings_goals.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/micro-savings-and-round-up-app/v1/csv/savings_goals.csv",
      "bytes": 43287,
      "sha256": "e772f01f684089fe76f31c059fac527e6d221e4db311f5b7198f9a1d35417b7f",
      "rows": 455,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/transactions.csv",
      "format": "csv",
      "table": "transactions",
      "key": "datasets/micro-savings-and-round-up-app/v1/csv/transactions.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/micro-savings-and-round-up-app/v1/csv/transactions.csv",
      "bytes": 41580,
      "sha256": "f32aa660e37388e50993d72050053bc30c1ca0597725c16070f9610dd3b9b75c",
      "rows": 1050,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "micro-savings-and-round-up-app.json",
      "format": "json",
      "table": null,
      "key": "datasets/micro-savings-and-round-up-app/v1/micro-savings-and-round-up-app.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/micro-savings-and-round-up-app/v1/micro-savings-and-round-up-app.json",
      "bytes": 363727,
      "sha256": "f9030ac93b24e3312c48e9814b13313ec9b9b504def27cb7f2f9e7691b65f024",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/micro-savings-and-round-up-app/v1/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/micro-savings-and-round-up-app/v1/sql/postgres.sql",
      "bytes": 165995,
      "sha256": "7e1354307378e70f64db92451fc5f49a3292b9fd274d0d22e81273ebd2804615",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/micro-savings-and-round-up-app/v1/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/micro-savings-and-round-up-app/v1/sql/mysql.sql",
      "bytes": 161225,
      "sha256": "27268cc321e7689b4e8f59983057782bd2ff4f1ddad8c7f3cc3793359dad564f",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/micro-savings-and-round-up-app/v1/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/micro-savings-and-round-up-app/v1/sql/mssql.sql",
      "bytes": 164911,
      "sha256": "afddb75332623f5e04040abf6a13d93f7de27f0d1d517a57726c611b636e470a",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/micro-savings-and-round-up-app/v1/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/micro-savings-and-round-up-app/v1/sql/sqlite.sql",
      "bytes": 160953,
      "sha256": "a3f233642547961cdaf1894b7326fe98acb87451925b7e65535901dbd1e31c84",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/micro-savings-and-round-up-app/v1/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/micro-savings-and-round-up-app/v1/prisma/seed.ts",
      "bytes": 310468,
      "sha256": "d4f9675b704a02ac544a60f2be93a04d4e6630294e85d389aab11d41bfe47052",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/micro-savings-and-round-up-app/v1/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/micro-savings-and-round-up-app/v1/django/fixtures.json",
      "bytes": 460420,
      "sha256": "8f36bc0f95ce988dc63915fae1776bf5cf9e2e4afe5b0a33b85b64e981cb6165",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788767677592,
  "updatedAt": 1788767677592
}
