{
  "format": "dataset-manifest/1",
  "slug": "user-generated-podcast-platform",
  "version": 3,
  "seed": "user-generated-podcast-platform:1",
  "engine": 1,
  "engineVersion": "1.0.0",
  "spec": {
    "format": "dataset/1",
    "slug": "user-generated-podcast-platform",
    "name": "Podcast Engagement Metrics",
    "tagline": "User profiles, podcast episodes, listener interactions, donations, and sponsorship metrics from a podcast platform.",
    "description": "Creators share their unique stories and knowledge through engaging audio content on a popular user-generated podcast platform. This vibrant ecosystem thrives on a diverse community of listeners who interact with the podcasts, fostering an environment where creativity and engagement flourish. Users not only listen but also participate in the conversation, providing feedback and support, which helps creators refine their content and grow their audience. Financial support flows through donations and sponsorships, creating a sustainable model for creators to continue producing high-quality content.\n\nThe data model consists of several interconnected tables: 'users', 'podcasts', 'listener_interactions', 'sponsorships', and 'donations'. Each row in the 'users' table represents a unique listener or creator, capturing their profile details. The 'podcasts' table contains information about individual podcast episodes, linking back to the creators in the 'users' table. The 'listener_interactions' table records various forms of engagement, such as comments and likes, connecting listeners to the podcasts they engage with. The 'sponsorships' table tracks financial support from advertisers, while the 'donations' table reflects contributions from listeners, both of which can be linked to specific podcasts and their respective creators.\n\nWith this dataset, users can explore questions like which podcasts are most successful in attracting listeners, what types of interactions drive engagement, and how financial support correlates with listener metrics. It's a rich ground for practicing data analysis, visualization, and machine learning techniques, as it provides insights into audience behavior and content performance. Please note that the data is synthetic, designed to give users a realistic yet fictional representation of podcast engagement metrics.",
    "domain": "media",
    "shape": "graph-edges",
    "useCases": [
      "sql-practice",
      "teaching"
    ],
    "keywords": [
      "podcast",
      "engagement",
      "listeners",
      "creators",
      "sponsorship",
      "donations",
      "metrics",
      "community"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "users": {
        "description": "This table contains user profiles for both creators and listeners. Each user has a unique identifier and associated details.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each user."
          },
          "full_name": {
            "kind": "fullName",
            "description": "The full name of the user.",
            "nullable": true
          },
          "email": {
            "kind": "email",
            "from": "full_name",
            "description": "Email address of the user.",
            "nullable": true
          },
          "user_type": {
            "kind": "enum",
            "values": [
              "creator",
              "listener"
            ],
            "description": "Indicates if the user is a creator or a listener.",
            "weights": [
              7,
              3
            ]
          },
          "join_date": {
            "kind": "date",
            "from": "2021-01-01",
            "to": "2023-12-31",
            "description": "The date when the user joined the platform."
          }
        }
      },
      "podcasts": {
        "description": "This table consists of podcast episodes created by users. Each episode is linked to its creator.",
        "rows": 150,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each podcast episode."
          },
          "title": {
            "kind": "words",
            "min": 1,
            "max": 3,
            "description": "The title of the podcast episode.",
            "pool": [
              "adventure",
              "mystery",
              "science",
              "history",
              "comedy",
              "interview",
              "insight",
              "exploration",
              "journey",
              "narrative",
              "discussion",
              "reveal",
              "uncover",
              "discover",
              "perspective",
              "analysis",
              "debate",
              "experience",
              "chronicle",
              "report"
            ]
          },
          "description": {
            "kind": "paragraph",
            "min": 10,
            "max": 300,
            "description": "A brief description of the podcast episode.",
            "nullable": true
          },
          "creator_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "Links to the creator of the podcast episode."
          },
          "release_date": {
            "kind": "date",
            "from": "2021-01-01",
            "to": "2023-12-31",
            "description": "Release date of the podcast episode."
          }
        }
      },
      "listener_interactions": {
        "description": "This table tracks interactions of listeners with podcast episodes, including plays, comments, and shares.",
        "rows": 600,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each interaction."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "Links to the user who interacted."
          },
          "podcast_id": {
            "kind": "fk",
            "ref": "podcasts.id",
            "description": "Links to the interacted podcast episode."
          },
          "interaction_type": {
            "kind": "enum",
            "values": [
              "play",
              "comment",
              "share"
            ],
            "description": "Type of interaction with the podcast episode.",
            "weights": [
              6,
              2,
              1
            ]
          },
          "interaction_date": {
            "kind": "datetime",
            "from": "2021-01-01",
            "to": "2023-12-31",
            "dayProfile": "waking",
            "description": "Date and time of the interaction.",
            "nullable": true,
            "when": {
              "column": "interaction_type",
              "in": [
                "comment",
                "share"
              ]
            }
          },
          "interaction_duration_seconds": {
            "kind": "int",
            "min": 1,
            "max": 3600,
            "distribution": "normal",
            "description": "Duration of the interaction in seconds."
          },
          "likes_count": {
            "kind": "int",
            "min": 0,
            "max": 1000,
            "distribution": "normal",
            "description": "Number of likes received for the interaction."
          }
        }
      },
      "sponsorships": {
        "description": "This table contains sponsorship deals linked to podcast episodes, including details of sponsors involved.",
        "rows": 100,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each sponsorship."
          },
          "podcast_id": {
            "kind": "fk",
            "ref": "podcasts.id",
            "description": "Links to the sponsored podcast episode."
          },
          "sponsor_name": {
            "kind": "company",
            "description": "Name of the sponsoring entity.",
            "nullable": true
          },
          "amount": {
            "kind": "decimal",
            "min": 100,
            "max": 10000,
            "scale": 2,
            "description": "Amount of the sponsorship deal.",
            "nullable": true,
            "distribution": "long-tail"
          },
          "sponsorship_date": {
            "kind": "date",
            "from": "2021-01-01",
            "to": "2023-12-31",
            "description": "Date the sponsorship deal was made."
          }
        }
      },
      "donations": {
        "description": "This table records donations made by listeners to their favorite creators, indicating financial support.",
        "rows": 250,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each donation."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "Links to the user who made the donation."
          },
          "creator_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "Links to the creator receiving the donation."
          },
          "amount": {
            "kind": "decimal",
            "min": 1,
            "max": 500,
            "scale": 2,
            "description": "Amount of the donation.",
            "nullable": true,
            "distribution": "long-tail"
          },
          "donation_date": {
            "kind": "date",
            "from": "2021-01-01",
            "to": "2023-12-31",
            "description": "Date the donation was made."
          },
          "currency": {
            "kind": "enum",
            "values": [
              "USD",
              "EUR",
              "GBP"
            ],
            "weights": [
              70,
              20,
              10
            ],
            "description": "Currency in which the donation is made."
          },
          "donation_method": {
            "kind": "enum",
            "values": [
              "credit_card",
              "paypal",
              "bank_transfer"
            ],
            "weights": [
              50,
              30,
              20
            ],
            "description": "Method used to make the donation."
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "categorical",
      "nullable",
      "timestamped",
      "monetary"
    ],
    "analysisQuestions": [
      "Which podcasts receive the highest number of plays and why?",
      "How do user donations affect the popularity of specific creators?",
      "What types of interactions are most common among listeners?",
      "Is there a correlation between sponsorship amounts and listener engagement?",
      "What are the trends in podcast releases over time?"
    ],
    "suggestedQueries": [
      {
        "title": "List all podcasts by a specific creator",
        "sql": "SELECT * FROM podcasts WHERE creator_id = ?;",
        "dialect": "postgres"
      },
      {
        "title": "Count interactions per podcast",
        "sql": "SELECT podcast_id, COUNT(*) as interaction_count FROM listener_interactions GROUP BY podcast_id;",
        "dialect": "postgres"
      },
      {
        "title": "Total donations received by each creator",
        "sql": "SELECT creator_id, SUM(amount) as total_donations FROM donations GROUP BY creator_id;",
        "dialect": "postgres"
      },
      {
        "title": "Daily plays for a specific podcast",
        "sql": "SELECT DATE(interaction_date) as play_date, COUNT(*) as total_plays FROM listener_interactions WHERE podcast_id = ? AND interaction_type = 'play' GROUP BY play_date;",
        "dialect": "postgres"
      },
      {
        "title": "Average sponsorship amount by podcast",
        "sql": "SELECT podcast_id, AVG(amount) as average_sponsorship FROM sponsorships GROUP BY podcast_id;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Podcast Creators Analyzing Engagement",
        "body": "Podcast creators can use this dataset to analyze listener interactions and engagement metrics for their episodes. By examining how listeners interact with their content, they can identify which episodes resonate most with their audience, allowing them to focus on creating more engaging content and attracting sponsorships."
      },
      {
        "title": "Market Researchers Exploring Trends",
        "body": "Market researchers can leverage this data to study trends in podcasting engagement and financial support. Understanding the correlation between donations, sponsorships, and listener interactions can help advertisers target their campaigns effectively, ensuring they reach the right audience and maximize their return on investment."
      },
      {
        "title": "Educational Purposes for Data Analysis",
        "body": "In an educational setting, this dataset serves as a practical tool for teaching students about data analysis and SQL. Students can practice writing complex queries to extract insights, explore relationships between tables, and visualize data trends, thus honing their analytical skills in a real-world context."
      },
      {
        "title": "Listeners Supporting Creators",
        "body": "Listeners who are passionate about their favorite podcasts can use this dataset to understand the financial dynamics behind the scenes. By exploring how donations impact creators, they can engage more meaningfully with the community, knowing their support directly influences the content they love."
      }
    ]
  },
  "counts": {
    "users": 200,
    "donations": 250,
    "podcasts": 150,
    "listener_interactions": 600,
    "sponsorships": 100
  },
  "stats": {
    "users": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "full_name": {
          "nulls": 27,
          "distinct": 171,
          "min": "Alice Martin",
          "max": "Zoe Novak"
        },
        "email": {
          "nulls": 38,
          "distinct": 161
        },
        "user_type": {
          "nulls": 0,
          "distinct": 2,
          "min": "creator",
          "max": "listener"
        },
        "join_date": {
          "nulls": 0,
          "distinct": 182,
          "min": "2021-01-06",
          "max": "2023-12-31"
        }
      }
    },
    "podcasts": {
      "rows": 150,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 150,
          "min": 1,
          "max": 150
        },
        "title": {
          "nulls": 0,
          "distinct": 107
        },
        "description": {
          "nulls": 13,
          "distinct": 137
        },
        "creator_id": {
          "nulls": 0,
          "distinct": 102,
          "min": 1,
          "max": 200
        },
        "release_date": {
          "nulls": 0,
          "distinct": 137,
          "min": "2021-01-05",
          "max": "2023-12-24"
        }
      }
    },
    "listener_interactions": {
      "rows": 600,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 600,
          "min": 1,
          "max": 600
        },
        "user_id": {
          "nulls": 0,
          "distinct": 190,
          "min": 1,
          "max": 200
        },
        "podcast_id": {
          "nulls": 0,
          "distinct": 148,
          "min": 1,
          "max": 150
        },
        "interaction_type": {
          "nulls": 0,
          "distinct": 3,
          "min": "comment",
          "max": "share"
        },
        "interaction_date": {
          "nulls": 386,
          "distinct": 214,
          "min": "2021-01-01 20:41:20",
          "max": "2023-12-27 09:16:20"
        },
        "interaction_duration_seconds": {
          "nulls": 0,
          "distinct": 520,
          "min": 427,
          "max": 3189
        },
        "likes_count": {
          "nulls": 0,
          "distinct": 368,
          "min": 89,
          "max": 898
        }
      }
    },
    "sponsorships": {
      "rows": 100,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 100,
          "min": 1,
          "max": 100
        },
        "podcast_id": {
          "nulls": 0,
          "distinct": 74,
          "min": 1,
          "max": 149
        },
        "sponsor_name": {
          "nulls": 13,
          "distinct": 83,
          "min": "Acme Logistics",
          "max": "Willow Partners"
        },
        "amount": {
          "nulls": 14,
          "distinct": 86,
          "min": 100.01,
          "max": 9373.9
        },
        "sponsorship_date": {
          "nulls": 0,
          "distinct": 94,
          "min": "2021-01-14",
          "max": "2023-12-11"
        }
      }
    },
    "donations": {
      "rows": 250,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 250,
          "min": 1,
          "max": 250
        },
        "user_id": {
          "nulls": 0,
          "distinct": 148,
          "min": 1,
          "max": 199
        },
        "creator_id": {
          "nulls": 0,
          "distinct": 139,
          "min": 1,
          "max": 200
        },
        "amount": {
          "nulls": 23,
          "distinct": 227,
          "min": 1.01,
          "max": 497.8
        },
        "donation_date": {
          "nulls": 0,
          "distinct": 231,
          "min": "2021-01-06",
          "max": "2023-12-29"
        },
        "currency": {
          "nulls": 0,
          "distinct": 3,
          "min": "EUR",
          "max": "USD"
        },
        "donation_method": {
          "nulls": 0,
          "distinct": 3,
          "min": "bank_transfer",
          "max": "paypal"
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/users.csv",
      "format": "csv",
      "table": "users",
      "key": "datasets/user-generated-podcast-platform/v3/csv/users.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/user-generated-podcast-platform/v3/csv/users.csv",
      "bytes": 10793,
      "sha256": "467abbc836200b6abb004dce74dc416fd39ce8b0f4f62d9a141639b1a6f99207",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/donations.csv",
      "format": "csv",
      "table": "donations",
      "key": "datasets/user-generated-podcast-platform/v3/csv/donations.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/user-generated-podcast-platform/v3/csv/donations.csv",
      "bytes": 10905,
      "sha256": "8dc022ab6f873add19332b00126ef26b664be4d83885e76be7e4fc6949301d2f",
      "rows": 250,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/podcasts.csv",
      "format": "csv",
      "table": "podcasts",
      "key": "datasets/user-generated-podcast-platform/v3/csv/podcasts.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/user-generated-podcast-platform/v3/csv/podcasts.csv",
      "bytes": 32084,
      "sha256": "c055613310905752e28463f3a61cb839b856468f0f7651334ecde600ab256eed",
      "rows": 150,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/listener_interactions.csv",
      "format": "csv",
      "table": "listener_interactions",
      "key": "datasets/user-generated-podcast-platform/v3/csv/listener_interactions.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/user-generated-podcast-platform/v3/csv/listener_interactions.csv",
      "bytes": 20549,
      "sha256": "5e2c5830fbdaad49d1b40fb5654de51b8e15e2abba7267cf15581078569e67bf",
      "rows": 600,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/sponsorships.csv",
      "format": "csv",
      "table": "sponsorships",
      "key": "datasets/user-generated-podcast-platform/v3/csv/sponsorships.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/user-generated-podcast-platform/v3/csv/sponsorships.csv",
      "bytes": 3793,
      "sha256": "b76d7876a485fa24769e68ec5a233b532db506975e9bdcf7e2ce9b6e23bbafef",
      "rows": 100,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "user-generated-podcast-platform.json",
      "format": "json",
      "table": null,
      "key": "datasets/user-generated-podcast-platform/v3/user-generated-podcast-platform.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/user-generated-podcast-platform/v3/user-generated-podcast-platform.json",
      "bytes": 276723,
      "sha256": "18bf40b4e0f178bebc93c4fea24cba98ebccf42711b0e3793db3768dedd216e1",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/user-generated-podcast-platform/v3/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/user-generated-podcast-platform/v3/sql/postgres.sql",
      "bytes": 104090,
      "sha256": "b7b2805afe5089253fa6509b2b38fe512b097c7644c21cf6a4ef9041b161aaae",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/user-generated-podcast-platform/v3/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/user-generated-podcast-platform/v3/sql/mysql.sql",
      "bytes": 103496,
      "sha256": "e558bb3c2e8be968eb1f2d2d43588543664b2d7196bda0e0299318510c39ec03",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/user-generated-podcast-platform/v3/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/user-generated-podcast-platform/v3/sql/mssql.sql",
      "bytes": 106772,
      "sha256": "4685a89c39e1bbb314610a2c3dde8ad9f6040e44f0088ee8197ab3cbabead131",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/user-generated-podcast-platform/v3/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/user-generated-podcast-platform/v3/sql/sqlite.sql",
      "bytes": 103195,
      "sha256": "57e679518057b256a3408e50b0c3bf3e563429475d63e7dba807a752d28ebb7d",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/user-generated-podcast-platform/v3/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/user-generated-podcast-platform/v3/prisma/seed.ts",
      "bytes": 220377,
      "sha256": "fee44d670a083ad01626b897ab1fc5143fc416fc387f4a9e7c5d315da3b43db6",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/user-generated-podcast-platform/v3/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/user-generated-podcast-platform/v3/django/fixtures.json",
      "bytes": 336096,
      "sha256": "74aa74505a0afc45e09b9cc9980adf0f67dffab4f02138ec154e6fa16b68932f",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788734136558,
  "updatedAt": 1789096120407
}
