{
  "format": "dataset-manifest/1",
  "slug": "marketplace-dynamics",
  "version": 2,
  "seed": "marketplace-dynamics:1",
  "spec": {
    "format": "dataset/1",
    "slug": "marketplace-dynamics",
    "name": "Marketplace Dynamics",
    "tagline": "User profiles, advertisements, categories, messages, and transactions from an online marketplace for goods and services.",
    "description": "Users actively create ads to showcase items and services on the platform, engaging with potential buyers and sellers in a dynamic digital marketplace. Each ad is tagged with relevant categories, allowing users to easily search for specific products ranging from electronics to real estate. The interaction between users manifests in direct messages, facilitating negotiation and deal-making. As advertisements are posted, they can attract varying levels of interest, with certain categories, such as luxury or unique items, experiencing a more competitive landscape.\n\nIn this dataset, the 'users' table provides essential information about the individuals and businesses that participate in the marketplace. Each row represents a user profile containing details such as their ID, name, and registration date. The 'ads' table outlines the listings created by these users, with each record linked to a specific user ID, effectively establishing a connection between the creators and their products. The 'categories' table complements this by categorizing ads, ensuring that users can filter their searches efficiently.\n\nInteractions between users are captured in the 'messages' table, which details communication related to ads, helping to understand the negotiation dynamics. Finally, the 'transactions' table records completed sales, linking back to both the users involved and the ads that were sold. This creates a comprehensive picture of the marketplace's function, with relationships clearly defined across the tables.\n\nThe data answers vital questions such as which categories are most popular, how user engagement varies across different types of ads, and the effectiveness of direct messaging in closing sales. It's also useful for practicing analysis of user behavior, advertisement performance, and transaction trends. Keep in mind that this data is synthetic, designed to mimic real-world interactions and trends in a controlled environment.",
    "domain": "social",
    "shape": "transactional",
    "useCases": [
      "sql-practice",
      "orm-seeding"
    ],
    "keywords": [
      "classified ads",
      "marketplace",
      "transactions",
      "user interactions",
      "ads",
      "categories",
      "messages"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "users": {
        "description": "This table contains user information, with each row representing an individual or business that can create ads. It links to the ads they post.",
        "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": "User's email address."
          },
          "registration_date": {
            "kind": "date",
            "from": "2020-01-01",
            "to": "2023-01-01",
            "description": "Date when the user registered.",
            "trend": "growing"
          },
          "user_type": {
            "kind": "enum",
            "values": [
              "individual",
              "business"
            ],
            "description": "Type of user.",
            "weights": [
              7,
              3
            ]
          },
          "location": {
            "kind": "city",
            "description": "City where the user is located."
          }
        }
      },
      "ads": {
        "description": "This table lists ads created by users, linking back to the users who posted them. Each ad includes details about the item or service being offered.",
        "rows": 300,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each ad."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "Reference to the user who created the ad."
          },
          "title": {
            "kind": "words",
            "min": 1,
            "max": 3,
            "description": "Title of the ad.",
            "pool": [
              "amazing",
              "exclusive",
              "discount",
              "limited",
              "offer",
              "sale",
              "new",
              "premium",
              "best",
              "deal",
              "hot",
              "trending",
              "unique",
              "special",
              "bundle",
              "flash",
              "surprise",
              "value",
              "top",
              "must-have"
            ]
          },
          "description": {
            "kind": "paragraph",
            "min": 20,
            "max": 500,
            "description": "Detailed description of the item or service."
          },
          "price": {
            "kind": "decimal",
            "min": 1,
            "max": 10000,
            "scale": 2,
            "description": "Price of the item or service.",
            "distribution": "long-tail"
          },
          "created_at": {
            "kind": "datetime",
            "from": "2020-01-01",
            "to": "2023-01-01",
            "description": "Date and time when the ad was created.",
            "dayProfile": "business"
          },
          "category_id": {
            "kind": "fk",
            "ref": "categories.id",
            "description": "Reference to the category of the ad."
          }
        }
      },
      "categories": {
        "description": "This table defines the categories available for ads, allowing users to browse listings by type.",
        "rows": 10,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each category."
          },
          "name": {
            "kind": "words",
            "min": 1,
            "max": 3,
            "description": "Name of the category.",
            "pool": [
              "electronics",
              "fashion",
              "home",
              "beauty",
              "toys",
              "sports",
              "automotive",
              "books",
              "music",
              "health",
              "grocery",
              "outdoors",
              "jewelry",
              "pet",
              "garden",
              "office",
              "baby",
              "kitchen",
              "accessories",
              "travel"
            ]
          }
        }
      },
      "messages": {
        "description": "This table captures the messages exchanged between users regarding ads, linking back to both the sender and receiver.",
        "rows": 500,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each message."
          },
          "sender_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "Reference to the user who sent the message."
          },
          "receiver_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "Reference to the user who received the message."
          },
          "ad_id": {
            "kind": "fk",
            "ref": "ads.id",
            "description": "Reference to the ad related to the message."
          },
          "content": {
            "kind": "paragraph",
            "min": 1,
            "max": 500,
            "description": "Content of the message."
          },
          "sent_at": {
            "kind": "datetime",
            "from": "2020-01-01",
            "to": "2023-01-01",
            "description": "Date and time when the message was sent.",
            "dayProfile": "waking"
          }
        }
      },
      "transactions": {
        "description": "This table records completed transactions that occur when users agree on a deal for an ad. It links ads to the users involved in the transaction.",
        "rows": 150,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each transaction."
          },
          "ad_id": {
            "kind": "fk",
            "ref": "ads.id",
            "description": "Reference to the ad being sold."
          },
          "buyer_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "Reference to the user who bought the item."
          },
          "seller_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "Reference to the user who sold the item."
          },
          "transaction_date": {
            "kind": "datetime",
            "from": "2020-01-01",
            "to": "2023-01-01",
            "description": "Date and time of the completed transaction.",
            "dayProfile": "business",
            "trend": "seasonal"
          },
          "final_price": {
            "kind": "decimal",
            "min": 1,
            "max": 10000,
            "scale": 2,
            "description": "Final price paid for the item.",
            "distribution": "long-tail"
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "categorical",
      "timestamped",
      "nullable"
    ],
    "analysisQuestions": [
      "What categories have the highest number of ads posted?",
      "How does the average price of items vary across different categories?",
      "What is the average time taken from messaging to transaction completion?",
      "Which users are the most active in terms of posting ads and sending messages?",
      "How do transaction prices compare to listed prices for the same items?"
    ],
    "suggestedQueries": [
      {
        "title": "Join Ads with Users",
        "sql": "SELECT a.title, u.full_name FROM ads a JOIN users u ON a.user_id = u.id;",
        "dialect": "postgres"
      },
      {
        "title": "Count Ads by Category",
        "sql": "SELECT c.name, COUNT(a.id) FROM categories c LEFT JOIN ads a ON c.id = a.category_id GROUP BY c.name;",
        "dialect": "postgres"
      },
      {
        "title": "Average Price by Category",
        "sql": "SELECT c.name, AVG(a.price) FROM categories c JOIN ads a ON c.id = a.category_id GROUP BY c.name;",
        "dialect": "postgres"
      },
      {
        "title": "Messages Sent Per User",
        "sql": "SELECT u.full_name, COUNT(m.id) FROM users u LEFT JOIN messages m ON u.id = m.sender_id GROUP BY u.full_name;",
        "dialect": "postgres"
      },
      {
        "title": "Transactions Over Time",
        "sql": "SELECT DATE(t.transaction_date) AS date, COUNT(t.id) FROM transactions t GROUP BY date ORDER BY date;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Market Analysts",
        "body": "Market analysts can leverage this dataset to study trends in online marketplaces, focusing on which product categories are thriving and how pricing strategies affect sales. By analyzing the interactions between users and their ads, they can provide valuable insights into consumer behavior and preferences."
      },
      {
        "title": "Developers Building Apps",
        "body": "Developers working on applications for online marketplaces can use this dataset as a robust foundation for testing their systems. They can simulate user registrations, ad postings, and message exchanges, ensuring their applications handle these interactions smoothly before going live."
      },
      {
        "title": "Business Owners",
        "body": "Business owners looking to enter the online classified ad space can use this dataset to understand competitive dynamics and pricing trends. By assessing which categories have the most traction and how users communicate, they can tailor their offerings to meet market demands effectively."
      },
      {
        "title": "Educators and Trainers",
        "body": "Educators can utilize this dataset in teaching SQL and data analysis skills. Students can practice writing complex queries and generating insights from the data, enhancing their learning experience in a practical context while working with realistic data structures."
      }
    ]
  },
  "counts": {
    "categories": 10,
    "users": 200,
    "ads": 300,
    "messages": 500,
    "transactions": 150
  },
  "stats": {
    "users": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "full_name": {
          "nulls": 0,
          "distinct": 196,
          "min": "Alice Kaya",
          "max": "Zoe Young"
        },
        "email": {
          "nulls": 0,
          "distinct": 200
        },
        "registration_date": {
          "nulls": 0,
          "distinct": 186,
          "min": "2020-01-23",
          "max": "2022-12-26"
        },
        "user_type": {
          "nulls": 0,
          "distinct": 2,
          "min": "business",
          "max": "individual"
        },
        "location": {
          "nulls": 0,
          "distinct": 61,
          "min": "Amsterdam",
          "max": "Zurich"
        }
      }
    },
    "ads": {
      "rows": 300,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 300,
          "min": 1,
          "max": 300
        },
        "user_id": {
          "nulls": 0,
          "distinct": 157,
          "min": 1,
          "max": 200
        },
        "title": {
          "nulls": 0,
          "distinct": 210
        },
        "description": {
          "nulls": 0,
          "distinct": 300
        },
        "price": {
          "nulls": 0,
          "distinct": 300,
          "min": 2.16,
          "max": 9974.03
        },
        "created_at": {
          "nulls": 0,
          "distinct": 300,
          "min": "2020-01-02 17:08:27",
          "max": "2022-12-31 14:10:34"
        },
        "category_id": {
          "nulls": 0,
          "distinct": 10,
          "min": 1,
          "max": 10
        }
      }
    },
    "categories": {
      "rows": 10,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 10,
          "min": 1,
          "max": 10
        },
        "name": {
          "nulls": 0,
          "distinct": 10
        }
      }
    },
    "messages": {
      "rows": 500,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 500,
          "min": 1,
          "max": 500
        },
        "sender_id": {
          "nulls": 0,
          "distinct": 181,
          "min": 1,
          "max": 200
        },
        "receiver_id": {
          "nulls": 0,
          "distinct": 183,
          "min": 1,
          "max": 200
        },
        "ad_id": {
          "nulls": 0,
          "distinct": 239,
          "min": 1,
          "max": 300
        },
        "content": {
          "nulls": 0,
          "distinct": 500
        },
        "sent_at": {
          "nulls": 0,
          "distinct": 500,
          "min": "2020-01-08 11:19:21",
          "max": "2023-01-01 23:45:53"
        }
      }
    },
    "transactions": {
      "rows": 150,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 150,
          "min": 1,
          "max": 150
        },
        "ad_id": {
          "nulls": 0,
          "distinct": 112,
          "min": 1,
          "max": 300
        },
        "buyer_id": {
          "nulls": 0,
          "distinct": 109,
          "min": 2,
          "max": 200
        },
        "seller_id": {
          "nulls": 0,
          "distinct": 106,
          "min": 2,
          "max": 200
        },
        "transaction_date": {
          "nulls": 0,
          "distinct": 150,
          "min": "2020-01-12 11:00:49",
          "max": "2023-01-01 12:03:37"
        },
        "final_price": {
          "nulls": 0,
          "distinct": 150,
          "min": 1.2,
          "max": 9852.01
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/categories.csv",
      "format": "csv",
      "table": "categories",
      "key": "datasets/marketplace-dynamics/v2/csv/categories.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/marketplace-dynamics/v2/csv/categories.csv",
      "bytes": 199,
      "sha256": "f669d090919df5218c223c3c74710ba9e2720b180a9262cbf7637468ff9e765a",
      "rows": 10,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/users.csv",
      "format": "csv",
      "table": "users",
      "key": "datasets/marketplace-dynamics/v2/csv/users.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/marketplace-dynamics/v2/csv/users.csv",
      "bytes": 14070,
      "sha256": "fd8da9c89dc230673d8347cfc7381d9da4c1d0eae8d63398f888343db75ac69f",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/ads.csv",
      "format": "csv",
      "table": "ads",
      "key": "datasets/marketplace-dynamics/v2/csv/ads.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/marketplace-dynamics/v2/csv/ads.csv",
      "bytes": 66737,
      "sha256": "7e17d8b3739260f93151135e3e62a9d3f4c5c435d673dc6ad4b9b133b67eed83",
      "rows": 300,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/messages.csv",
      "format": "csv",
      "table": "messages",
      "key": "datasets/marketplace-dynamics/v2/csv/messages.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/marketplace-dynamics/v2/csv/messages.csv",
      "bytes": 102331,
      "sha256": "eb031b9b1f42a5dd2c22e6cd9b5ee01f0f781c96bcdcdd15f7b9e7f8ea1eddc3",
      "rows": 500,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/transactions.csv",
      "format": "csv",
      "table": "transactions",
      "key": "datasets/marketplace-dynamics/v2/csv/transactions.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/marketplace-dynamics/v2/csv/transactions.csv",
      "bytes": 6432,
      "sha256": "afa4dda9e3608bdba763c669a6539eb07f4e90a7365977c7688439144ea2ddda",
      "rows": 150,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "marketplace-dynamics.json",
      "format": "json",
      "table": null,
      "key": "datasets/marketplace-dynamics/v2/marketplace-dynamics.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/marketplace-dynamics/v2/marketplace-dynamics.json",
      "bytes": 340621,
      "sha256": "ae94372174242b09946e7ec782cbf566afcf0541e34b4e1f6ddfccc72b8875dc",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/marketplace-dynamics/v2/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/marketplace-dynamics/v2/sql/postgres.sql",
      "bytes": 211554,
      "sha256": "6081b9456ba3dbc62b14de28850ba21e226f831ed275e2331630f5c7c7685412",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/marketplace-dynamics/v2/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/marketplace-dynamics/v2/sql/mysql.sql",
      "bytes": 210992,
      "sha256": "b7dd4535b89d086c4aed6ee4f77ec56265ddecaa3ca23c656e17fbabbc1903e1",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/marketplace-dynamics/v2/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/marketplace-dynamics/v2/sql/mssql.sql",
      "bytes": 214380,
      "sha256": "dc6cd18f7d7ac421795af8631ff4965eab3477296e1cf417429f77b27c14a93b",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/marketplace-dynamics/v2/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/marketplace-dynamics/v2/sql/sqlite.sql",
      "bytes": 210705,
      "sha256": "5dd042d154c47bfadd4335953edc3411ccd806a9256b2e4db59cfb4303bb3948",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/marketplace-dynamics/v2/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/marketplace-dynamics/v2/prisma/seed.ts",
      "bytes": 299822,
      "sha256": "b22e25106ac404bdf257fed28d0dbfcdcdb11ed018a441bf32153e98ff775eb2",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/marketplace-dynamics/v2/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/marketplace-dynamics/v2/django/fixtures.json",
      "bytes": 384317,
      "sha256": "8648798570fb81241c7e5b3c222ddbe44f3733fadf0e9484ccc7e1958a27063b",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788767067108,
  "updatedAt": 1788784915515
}
