{
  "format": "dataset-manifest/1",
  "slug": "donations-and-campaigns",
  "version": 2,
  "seed": "donations-and-campaigns:1",
  "spec": {
    "format": "dataset/1",
    "slug": "donations-and-campaigns",
    "name": "Donations and Campaigns",
    "tagline": "Donors, campaigns, donations, events, and volunteers associated with a charity's activities and support.",
    "description": "Charities rely on donations and campaigns to fund their initiatives. This synthetic dataset captures the interactions between donors, campaigns, donations, events, and volunteers, allowing users to explore the relationships and dynamics within a nonprofit organization. With tables for donors, campaigns, one-off and recurring donations, events with attendees, and logged volunteer hours, this dataset offers a comprehensive view of how nonprofits operate. Users can analyze donor behavior, campaign effectiveness, and volunteer engagement, providing insights that can drive strategy and improve outreach. The dataset is synthetic, designed specifically for practice and analysis, making it perfect for BI dashboards and SQL practice, while also ensuring a manageable size for easy exploration.",
    "domain": "nonprofit",
    "shape": "transactional",
    "useCases": [
      "bi-dashboards",
      "sql-practice"
    ],
    "keywords": [
      "donations",
      "campaigns",
      "nonprofit",
      "donors",
      "volunteers",
      "events",
      "analytics",
      "sql"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "donors": {
        "description": "This table records information about individual donors, including their contact details and donation preferences.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each donor."
          },
          "full_name": {
            "kind": "fullName",
            "description": "The full name of the donor."
          },
          "email": {
            "kind": "email",
            "from": "full_name",
            "description": "Email address of the donor."
          },
          "phone": {
            "kind": "phone",
            "description": "Contact number for the donor."
          },
          "preferred_contact_method": {
            "kind": "enum",
            "values": [
              "email",
              "phone"
            ],
            "description": "Preferred method of communication."
          }
        }
      },
      "campaigns": {
        "description": "This table outlines various fundraising campaigns conducted by the nonprofit, detailing their goals and statuses.",
        "rows": 100,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each campaign."
          },
          "name": {
            "kind": "words",
            "min": 1,
            "max": 3,
            "description": "Name of the campaign.",
            "pool": [
              "hope",
              "future",
              "care",
              "support",
              "change",
              "together",
              "community",
              "action",
              "impact",
              "growth",
              "dream",
              "light",
              "voice",
              "strength",
              "journey",
              "love",
              "help",
              "unity",
              "rise",
              "challenge"
            ]
          },
          "goal_amount": {
            "kind": "decimal",
            "min": 1000,
            "max": 50000,
            "description": "Financial goal for the campaign.",
            "distribution": "long-tail"
          },
          "status": {
            "kind": "enum",
            "values": [
              "active",
              "completed",
              "canceled"
            ],
            "description": "Current status of the campaign."
          },
          "start_date": {
            "kind": "date",
            "from": "2022-01-01",
            "to": "2023-12-31",
            "description": "Start date of the campaign.",
            "trend": "growing"
          },
          "end_date": {
            "kind": "date",
            "from": "2022-01-01",
            "to": "2024-01-01",
            "description": "End date of the campaign.",
            "trend": "growing"
          }
        }
      },
      "donations": {
        "description": "This table tracks both one-off and recurring donations made by donors towards campaigns.",
        "rows": 400,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each donation."
          },
          "donor_id": {
            "kind": "fk",
            "ref": "donors.id",
            "description": "Reference to the donor making the donation."
          },
          "campaign_id": {
            "kind": "fk",
            "ref": "campaigns.id",
            "nullable": true,
            "description": "Reference to the campaign receiving the donation."
          },
          "amount": {
            "kind": "decimal",
            "min": 10,
            "max": 10000,
            "description": "Amount donated.",
            "distribution": "long-tail"
          },
          "donation_type": {
            "kind": "enum",
            "values": [
              "one-off",
              "recurring"
            ],
            "description": "Type of donation."
          },
          "donation_date": {
            "kind": "date",
            "from": "2022-01-01",
            "to": "2023-12-31",
            "description": "Date of the donation."
          }
        }
      },
      "events": {
        "description": "This table lists events organized by the nonprofit, including details and attendance.",
        "rows": 150,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each event."
          },
          "name": {
            "kind": "words",
            "min": 1,
            "max": 3,
            "description": "Name of the event.",
            "pool": [
              "gala",
              "run",
              "walk",
              "concert",
              "fair",
              "dinner",
              "festival",
              "auction",
              "conference",
              "meeting",
              "celebration",
              "forum",
              "webinar",
              "summit",
              "workshop",
              "challenge",
              "show",
              "exhibit",
              "party",
              "launch"
            ]
          },
          "event_date": {
            "kind": "date",
            "from": "2022-01-01",
            "to": "2023-12-31",
            "description": "Date of the event."
          },
          "location": {
            "kind": "words",
            "description": "Location where the event will be held.",
            "pool": [
              "park",
              "center",
              "hall",
              "theater",
              "stadium",
              "venue",
              "community",
              "school",
              "library",
              "auditorium",
              "field",
              "studio",
              "church",
              "office",
              "farm",
              "beach",
              "city",
              "town",
              "district",
              "site",
              "place"
            ],
            "min": 1,
            "max": 3
          },
          "expected_attendance": {
            "kind": "int",
            "min": 10,
            "max": 500,
            "description": "Expected number of attendees.",
            "distribution": "long-tail"
          }
        }
      },
      "event_attendees": {
        "description": "This table records attendees of events, linking them to donors who attended.",
        "rows": 300,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each attendee record."
          },
          "event_id": {
            "kind": "fk",
            "ref": "events.id",
            "description": "Reference to the event attended."
          },
          "donor_id": {
            "kind": "fk",
            "ref": "donors.id",
            "description": "Reference to the donor attending the event."
          },
          "attendance_status": {
            "kind": "enum",
            "values": [
              "attended",
              "registered",
              "cancelled"
            ],
            "description": "Status of the donor's attendance."
          }
        }
      },
      "volunteers": {
        "description": "This table tracks volunteers, including hours logged for their contributions to campaigns and events.",
        "rows": 100,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each volunteer."
          },
          "donor_id": {
            "kind": "fk",
            "ref": "donors.id",
            "description": "Reference to the donor who volunteers."
          },
          "hours_logged": {
            "kind": "decimal",
            "min": 1,
            "max": 100,
            "description": "Total hours volunteered.",
            "distribution": "long-tail"
          },
          "activity_date": {
            "kind": "date",
            "from": "2022-01-01",
            "to": "2023-12-31",
            "description": "Date of logged volunteer activity."
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "categorical",
      "timestamped",
      "nullable"
    ],
    "analysisQuestions": [
      "What is the total amount of donations received for each campaign?",
      "Which donors contribute the most to recurring donations?",
      "How many volunteers logged hours for each event?",
      "What is the average attendance rate for events?",
      "Which campaigns have the highest success rates based on their goals?"
    ],
    "suggestedQueries": [
      {
        "title": "Join Donors and Donations",
        "sql": "SELECT d.full_name, don.amount FROM donors d JOIN donations don ON d.id = don.donor_id;",
        "dialect": "postgres"
      },
      {
        "title": "Aggregate Donations by Campaign",
        "sql": "SELECT c.name, SUM(d.amount) AS total_donations FROM campaigns c LEFT JOIN donations d ON c.id = d.campaign_id GROUP BY c.name;",
        "dialect": "postgres"
      },
      {
        "title": "Average Hours Volunteered per Donor",
        "sql": "SELECT d.full_name, AVG(v.hours_logged) AS avg_hours FROM donors d LEFT JOIN volunteers v ON d.id = v.donor_id GROUP BY d.full_name;",
        "dialect": "postgres"
      },
      {
        "title": "Event Attendance Rates",
        "sql": "SELECT e.name, COUNT(a.id) * 100.0 / e.expected_attendance AS attendance_rate FROM events e LEFT JOIN event_attendees a ON e.id = a.event_id GROUP BY e.name;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Donor Management Insights",
        "body": "Nonprofit managers can utilize this dataset to analyze donor behavior, identifying key contributors and their preferred donation methods. By understanding donor trends, they can tailor their outreach strategies to maximize engagement and contributions."
      },
      {
        "title": "Campaign Performance Analysis",
        "body": "Data analysts at nonprofit organizations can leverage this dataset to evaluate the performance of various campaigns. They can assess which campaigns meet their goals and analyze the factors contributing to their success or failure."
      },
      {
        "title": "Volunteer Engagement Tracking",
        "body": "Volunteer coordinators can use this dataset to monitor volunteer hours and attendance at events. This information is crucial for recognizing top volunteers, ensuring adequate staffing for events, and improving volunteer satisfaction."
      }
    ]
  },
  "counts": {
    "campaigns": 100,
    "donors": 200,
    "donations": 400,
    "events": 150,
    "event_attendees": 300,
    "volunteers": 100
  },
  "stats": {
    "donors": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "full_name": {
          "nulls": 0,
          "distinct": 197,
          "min": "Alice Carter",
          "max": "Zoe Silva"
        },
        "email": {
          "nulls": 0,
          "distinct": 200
        },
        "phone": {
          "nulls": 0,
          "distinct": 195
        },
        "preferred_contact_method": {
          "nulls": 0,
          "distinct": 2,
          "min": "email",
          "max": "phone"
        }
      }
    },
    "campaigns": {
      "rows": 100,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 100,
          "min": 1,
          "max": 100
        },
        "name": {
          "nulls": 0,
          "distinct": 77
        },
        "goal_amount": {
          "nulls": 0,
          "distinct": 100,
          "min": 1001,
          "max": 49458.74
        },
        "status": {
          "nulls": 0,
          "distinct": 3,
          "min": "active",
          "max": "completed"
        },
        "start_date": {
          "nulls": 0,
          "distinct": 93,
          "min": "2022-01-19",
          "max": "2023-12-21"
        },
        "end_date": {
          "nulls": 0,
          "distinct": 97,
          "min": "2022-01-09",
          "max": "2023-12-31"
        }
      }
    },
    "donations": {
      "rows": 400,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 400,
          "min": 1,
          "max": 400
        },
        "donor_id": {
          "nulls": 0,
          "distinct": 179,
          "min": 3,
          "max": 199
        },
        "campaign_id": {
          "nulls": 39,
          "distinct": 98,
          "min": 1,
          "max": 100
        },
        "amount": {
          "nulls": 0,
          "distinct": 400,
          "min": 10.03,
          "max": 9909.62
        },
        "donation_type": {
          "nulls": 0,
          "distinct": 2,
          "min": "one-off",
          "max": "recurring"
        },
        "donation_date": {
          "nulls": 0,
          "distinct": 292,
          "min": "2022-01-02",
          "max": "2023-12-31"
        }
      }
    },
    "events": {
      "rows": 150,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 150,
          "min": 1,
          "max": 150
        },
        "name": {
          "nulls": 0,
          "distinct": 112
        },
        "event_date": {
          "nulls": 0,
          "distinct": 134,
          "min": "2022-01-01",
          "max": "2023-12-30"
        },
        "location": {
          "nulls": 0,
          "distinct": 113
        },
        "expected_attendance": {
          "nulls": 0,
          "distinct": 112,
          "min": 10,
          "max": 500
        }
      }
    },
    "event_attendees": {
      "rows": 300,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 300,
          "min": 1,
          "max": 300
        },
        "event_id": {
          "nulls": 0,
          "distinct": 132,
          "min": 1,
          "max": 150
        },
        "donor_id": {
          "nulls": 0,
          "distinct": 150,
          "min": 1,
          "max": 200
        },
        "attendance_status": {
          "nulls": 0,
          "distinct": 3,
          "min": "attended",
          "max": "registered"
        }
      }
    },
    "volunteers": {
      "rows": 100,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 100,
          "min": 1,
          "max": 100
        },
        "donor_id": {
          "nulls": 0,
          "distinct": 76,
          "min": 2,
          "max": 198
        },
        "hours_logged": {
          "nulls": 0,
          "distinct": 99,
          "min": 1.03,
          "max": 99.48
        },
        "activity_date": {
          "nulls": 0,
          "distinct": 97,
          "min": "2022-01-07",
          "max": "2023-12-27"
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/campaigns.csv",
      "format": "csv",
      "table": "campaigns",
      "key": "datasets/donations-and-campaigns/v2/csv/campaigns.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/donations-and-campaigns/v2/csv/campaigns.csv",
      "bytes": 5683,
      "sha256": "4748e8eb94d73a83c4b903ad13acef2a2cabb8d28a2ec032da4a5128f2ae6d77",
      "rows": 100,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/donors.csv",
      "format": "csv",
      "table": "donors",
      "key": "datasets/donations-and-campaigns/v2/csv/donors.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/donations-and-campaigns/v2/csv/donors.csv",
      "bytes": 12607,
      "sha256": "74a3fe5c54c0f80b1d9f5767dbfdcb8e3207f94a6300d24ef9ec9aeb38552fff",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/donations.csv",
      "format": "csv",
      "table": "donations",
      "key": "datasets/donations-and-campaigns/v2/csv/donations.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/donations-and-campaigns/v2/csv/donations.csv",
      "bytes": 15439,
      "sha256": "42f91dde373de690f607f73283f63b5596bee119895b1a597ad776536d1866e5",
      "rows": 400,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/events.csv",
      "format": "csv",
      "table": "events",
      "key": "datasets/donations-and-campaigns/v2/csv/events.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/donations-and-campaigns/v2/csv/events.csv",
      "bytes": 7036,
      "sha256": "9d9a2125f172bb93e2b0ff552f89c9effbbf958d45fd8a5566ecfc025504d838",
      "rows": 150,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/event_attendees.csv",
      "format": "csv",
      "table": "event_attendees",
      "key": "datasets/donations-and-campaigns/v2/csv/event_attendees.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/donations-and-campaigns/v2/csv/event_attendees.csv",
      "bytes": 6409,
      "sha256": "dba68c2247c35066e9f7d8fd4a9e5654f58f20fae0a4a7e65edc54a61abf26ef",
      "rows": 300,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/volunteers.csv",
      "format": "csv",
      "table": "volunteers",
      "key": "datasets/donations-and-campaigns/v2/csv/volunteers.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/donations-and-campaigns/v2/csv/volunteers.csv",
      "bytes": 2461,
      "sha256": "75d84c6519feacaccadbcf5ae3a23f944124ec6debbf551b3d8742a5d285b358",
      "rows": 100,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "donations-and-campaigns.json",
      "format": "json",
      "table": null,
      "key": "datasets/donations-and-campaigns/v2/donations-and-campaigns.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/donations-and-campaigns/v2/donations-and-campaigns.json",
      "bytes": 193605,
      "sha256": "5fcd62667bf7bc7059f5be2cd52e411805e7385e19a6e2fa674bf821d22e6c8c",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/donations-and-campaigns/v2/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/donations-and-campaigns/v2/sql/postgres.sql",
      "bytes": 71496,
      "sha256": "6374323b76b0b91f6f2010055622a6e9f038fc69f8a4f8c2cc3e61592667e763",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/donations-and-campaigns/v2/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/donations-and-campaigns/v2/sql/mysql.sql",
      "bytes": 70819,
      "sha256": "79729b15467c843aacfa146c1bbde92eae378ce7dac6ce5a42174503f08b7b3f",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/donations-and-campaigns/v2/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/donations-and-campaigns/v2/sql/mssql.sql",
      "bytes": 74059,
      "sha256": "01189d59780b553f752205e6f5fadf5394309d77fa94fa53ff6fe5ac83304b08",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/donations-and-campaigns/v2/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/donations-and-campaigns/v2/sql/sqlite.sql",
      "bytes": 70552,
      "sha256": "8a132c5c252a88f75404c27e517d344c935dc56dca46f527b084962a43bf7f60",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/donations-and-campaigns/v2/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/donations-and-campaigns/v2/prisma/seed.ts",
      "bytes": 150069,
      "sha256": "d4833d923de1fc800f2c970fac4b312d6e20db8478d7021c5590f3e021ac4337",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/donations-and-campaigns/v2/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/donations-and-campaigns/v2/django/fixtures.json",
      "bytes": 247056,
      "sha256": "fed94360c44761a7dedd27354e7ed5f1dee90a4fa8671550bbb832f289127fca",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788768672542,
  "updatedAt": 1788778390766
}
