{
  "format": "dataset-manifest/1",
  "slug": "freelancer-marketplace-insights",
  "version": 2,
  "seed": "freelancer-marketplace-insights:1",
  "spec": {
    "format": "dataset/1",
    "slug": "freelancer-marketplace-insights",
    "name": "Freelancer Marketplace Insights",
    "tagline": "Freelancer profiles, client information, task details, invoices, reviews, and portfolios from a freelance marketplace.",
    "description": "Freelancers connect with clients to collaborate on a range of projects in a dynamic marketplace. Each freelancer brings a unique set of skills, and clients post tasks that require these skills. As independent professionals complete these tasks, they not only deliver results but also seek to build their reputations through client reviews. This creates a cycle of engagement where successful projects lead to positive feedback, enhancing the freelancer's portfolio and attracting further opportunities. Clients subscribe to various plans that allow them to access a pool of talent, ensuring they can find the right professional for their needs.\n\nThe dataset comprises several interrelated tables that capture the nuances of this freelancer marketplace. The 'freelancers' table details individual professionals, including their skills and experience. The 'clients' table holds information about the businesses or individuals seeking freelance help. Tasks posted by clients are recorded in the 'tasks' table, and each task can have multiple associated entries in the 'invoices' table that track the financial transactions between the freelancers and clients. The 'reviews' table captures client feedback on freelancers' work, while the 'portfolios' table showcases a freelancer's past projects and accomplishments. This structure allows for rich queries about performance, pricing trends, and satisfaction levels in the marketplace.\n\nPracticing with this data enables developers to answer essential questions about freelancer-client dynamics, such as what skills are in demand, which freelancers receive the highest ratings, and how client subscriptions correlate with project completion rates. By analyzing financial transactions and reviews, developers can also explore trends in invoicing and client satisfaction over time. This dataset is entirely synthetic, thus providing a safe space to experiment and hone data skills without the risks associated with real-world data.",
    "domain": "saas",
    "shape": "transactional",
    "useCases": [
      "sql-practice",
      "orm-seeding"
    ],
    "keywords": [
      "freelancer",
      "marketplace",
      "clients",
      "tasks",
      "invoices",
      "reviews",
      "portfolios",
      "skills"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "freelancers": {
        "description": "This table contains data on freelancers, detailing their skills, availability, and personal information. Each freelancer can be linked to multiple tasks and reviews.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each freelancer."
          },
          "full_name": {
            "kind": "fullName",
            "description": "The freelancer's full name."
          },
          "email": {
            "kind": "email",
            "from": "full_name",
            "description": "The freelancer's email address."
          },
          "skills": {
            "kind": "words",
            "min": 1,
            "max": 3,
            "description": "Comma-separated list of skills the freelancer possesses.",
            "nullable": true,
            "when": {
              "column": "availability",
              "in": [
                "busy",
                "on vacation"
              ]
            },
            "pool": [
              "design",
              "development",
              "writing",
              "marketing",
              "graphic",
              "seo",
              "programming",
              "data",
              "analytics",
              "consulting",
              "copywriting",
              "video",
              "animation",
              "project",
              "management",
              "social",
              "media",
              "photography",
              "illustration",
              "branding",
              "user",
              "experience",
              "web",
              "app",
              "content",
              "strategy",
              "research",
              "sales",
              "customer",
              "service",
              "support",
              "testing",
              "quality",
              "assurance",
              "networking",
              "security",
              "cloud",
              "architecture",
              "database",
              "mobile",
              "ecommerce",
              "virtual",
              "assistant",
              "transcription",
              "translation",
              "voice",
              "over",
              "editing",
              "proofreading",
              "html",
              "css",
              "javascript",
              "python",
              "ruby",
              "php",
              "wordpress",
              "shopify",
              "marketing-automation"
            ]
          },
          "availability": {
            "kind": "enum",
            "values": [
              "available",
              "busy",
              "on vacation"
            ],
            "description": "Current availability status of the freelancer."
          }
        }
      },
      "clients": {
        "description": "This table contains information about clients who hire freelancers, including their subscription level and contact details.",
        "rows": 100,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each client."
          },
          "full_name": {
            "kind": "fullName",
            "description": "The client's full name.",
            "nullable": true,
            "when": {
              "column": "subscription_level",
              "in": [
                "premium",
                "enterprise"
              ]
            }
          },
          "email": {
            "kind": "email",
            "from": "full_name",
            "description": "The client's email address.",
            "nullable": true
          },
          "subscription_level": {
            "kind": "enum",
            "values": [
              "basic",
              "premium",
              "enterprise"
            ],
            "description": "Client's subscription level.",
            "nullable": true
          }
        }
      },
      "tasks": {
        "description": "This table tracks tasks assigned to freelancers, including their status and deadlines. Each task is linked to a freelancer and a client.",
        "rows": {
          "per": "clients",
          "via": "client_id",
          "min": 1,
          "max": 5,
          "skew": "long-tail"
        },
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each task."
          },
          "client_id": {
            "kind": "fk",
            "ref": "clients.id",
            "description": "Identifier for the client who created the task."
          },
          "freelancer_id": {
            "kind": "fk",
            "ref": "freelancers.id",
            "description": "Identifier for the freelancer assigned to the task."
          },
          "status": {
            "kind": "enum",
            "values": [
              "pending",
              "in_progress",
              "completed"
            ],
            "description": "Current status of the task."
          },
          "deadline": {
            "kind": "date",
            "from": "2023-01-01",
            "to": "2023-12-31",
            "description": "The deadline for task completion.",
            "nullable": true,
            "when": {
              "column": "status",
              "in": [
                "in_progress",
                "completed"
              ]
            },
            "trend": "seasonal"
          }
        }
      },
      "invoices": {
        "description": "This table captures financial transactions between clients and freelancers for completed tasks, including amounts and statuses.",
        "rows": {
          "per": "tasks",
          "via": "task_id",
          "min": 1,
          "max": 3,
          "skew": "long-tail"
        },
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each invoice."
          },
          "task_id": {
            "kind": "fk",
            "ref": "tasks.id",
            "description": "Identifier for the task associated with this invoice."
          },
          "amount": {
            "kind": "decimal",
            "min": 50,
            "max": 2000,
            "scale": 2,
            "description": "Total amount billed for the task.",
            "nullable": true,
            "when": {
              "column": "status",
              "in": [
                "pending",
                "overdue"
              ]
            },
            "distribution": "long-tail"
          },
          "status": {
            "kind": "enum",
            "values": [
              "paid",
              "pending",
              "overdue"
            ],
            "description": "Current payment status of the invoice."
          }
        }
      },
      "reviews": {
        "description": "This table contains feedback from clients about freelancers after task completion, including ratings and comments.",
        "rows": {
          "per": "tasks",
          "via": "task_id",
          "min": 1,
          "max": 2,
          "skew": "long-tail"
        },
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each review."
          },
          "task_id": {
            "kind": "fk",
            "ref": "tasks.id",
            "description": "Identifier for the task related to this review."
          },
          "rating": {
            "kind": "int",
            "min": 1,
            "max": 5,
            "description": "Rating given by the client, from 1 to 5.",
            "distribution": "high"
          },
          "comment": {
            "kind": "sentence",
            "min": 10,
            "max": 200,
            "description": "Client's feedback on the freelancer's performance.",
            "nullable": true
          }
        }
      },
      "portfolios": {
        "description": "This table showcases the previous work of freelancers, linked to their profiles. It includes project descriptions and links.",
        "rows": {
          "per": "freelancers",
          "via": "freelancer_id",
          "min": 1,
          "max": 4,
          "skew": "long-tail"
        },
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each portfolio entry."
          },
          "freelancer_id": {
            "kind": "fk",
            "ref": "freelancers.id",
            "description": "Identifier for the freelancer associated with this portfolio entry."
          },
          "project_description": {
            "kind": "sentence",
            "min": 10,
            "max": 100,
            "description": "Description of the freelancer's project.",
            "nullable": true
          },
          "project_link": {
            "kind": "url",
            "description": "Link to the project's details or demonstration.",
            "nullable": true
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "categorical",
      "nullable",
      "high-cardinality"
    ],
    "analysisQuestions": [
      "What skills are most commonly associated with successful freelancers?",
      "Which clients provide the most reviews and how does that relate to their subscription level?",
      "What is the average payment amount for tasks based on their status?",
      "How do client ratings vary with different freelancer skills?",
      "What trends can be observed in task completion times across different freelancers?"
    ],
    "suggestedQueries": [
      {
        "title": "Join Freelancers and Tasks",
        "sql": "SELECT f.full_name, t.status FROM freelancers f JOIN tasks t ON f.id = t.freelancer_id;"
      },
      {
        "title": "Count Reviews per Freelancer",
        "sql": "SELECT f.full_name, COUNT(r.id) as review_count FROM freelancers f LEFT JOIN reviews r ON f.id = r.freelancer_id GROUP BY f.full_name;"
      },
      {
        "title": "Average Invoice Amount by Status",
        "sql": "SELECT t.status, AVG(i.amount) as average_amount FROM tasks t JOIN invoices i ON t.id = i.task_id GROUP BY t.status;"
      },
      {
        "title": "Top Rated Freelancers",
        "sql": "SELECT f.full_name, AVG(r.rating) as average_rating FROM freelancers f JOIN reviews r ON f.id = r.freelancer_id GROUP BY f.full_name ORDER BY average_rating DESC;"
      },
      {
        "title": "Task Completion Over Time",
        "sql": "SELECT DATE(t.deadline) as completion_date, COUNT(t.id) as tasks_completed FROM tasks t WHERE t.status = 'completed' GROUP BY completion_date ORDER BY completion_date;"
      }
    ],
    "usageScenarios": [
      {
        "title": "Freelancer Performance Analysis",
        "body": "Data analysts can use this dataset to evaluate the performance of freelancers based on client reviews and task completion rates. By analyzing the correlations between skills and ratings, they can provide insights to improve freelancer selection on the platform."
      },
      {
        "title": "Client Subscription Insights",
        "body": "Marketing teams can leverage this dataset to assess how client subscription levels impact freelancer engagement and satisfaction. By exploring the relationships between subscription types and the number of reviews or task completions, they can identify opportunities for upselling."
      },
      {
        "title": "Financial Health Monitoring",
        "body": "Financial analysts can utilize the invoices table to monitor the financial health of the marketplace. By analyzing payment statuses and amounts, they can determine trends in cash flow and identify potential issues in payment processing."
      },
      {
        "title": "Skill Demand Forecasting",
        "body": "Product managers can explore the skills data to forecast future demand for specific freelancer skills. By examining the skills tied to high-rated freelancers and successful tasks, they can adapt the platform's offerings to meet market needs."
      }
    ]
  },
  "counts": {
    "clients": 100,
    "freelancers": 200,
    "portfolios": 384,
    "tasks": 233,
    "invoices": 376,
    "reviews": 310
  },
  "stats": {
    "freelancers": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "full_name": {
          "nulls": 0,
          "distinct": 197,
          "min": "Alice Kaya",
          "max": "Zoe Kim"
        },
        "email": {
          "nulls": 0,
          "distinct": 200
        },
        "skills": {
          "nulls": 74,
          "distinct": 106
        },
        "availability": {
          "nulls": 0,
          "distinct": 3,
          "min": "available",
          "max": "on vacation"
        }
      }
    },
    "clients": {
      "rows": 100,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 100,
          "min": 1,
          "max": 100
        },
        "full_name": {
          "nulls": 40,
          "distinct": 59,
          "min": "Alice Chen",
          "max": "Yara Mendes"
        },
        "email": {
          "nulls": 46,
          "distinct": 53
        },
        "subscription_level": {
          "nulls": 8,
          "distinct": 3,
          "min": "basic",
          "max": "premium"
        }
      }
    },
    "tasks": {
      "rows": 233,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 233,
          "min": 1,
          "max": 233
        },
        "client_id": {
          "nulls": 0,
          "distinct": 100,
          "min": 1,
          "max": 100
        },
        "freelancer_id": {
          "nulls": 0,
          "distinct": 133,
          "min": 2,
          "max": 200
        },
        "status": {
          "nulls": 0,
          "distinct": 3,
          "min": "completed",
          "max": "pending"
        },
        "deadline": {
          "nulls": 84,
          "distinct": 120,
          "min": "2023-01-02",
          "max": "2023-12-23"
        }
      }
    },
    "invoices": {
      "rows": 376,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 376,
          "min": 1,
          "max": 376
        },
        "task_id": {
          "nulls": 0,
          "distinct": 233,
          "min": 1,
          "max": 233
        },
        "amount": {
          "nulls": 120,
          "distinct": 255,
          "min": 50.02,
          "max": 1988.56
        },
        "status": {
          "nulls": 0,
          "distinct": 3,
          "min": "overdue",
          "max": "pending"
        }
      }
    },
    "reviews": {
      "rows": 310,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 310,
          "min": 1,
          "max": 310
        },
        "task_id": {
          "nulls": 0,
          "distinct": 233,
          "min": 1,
          "max": 233
        },
        "rating": {
          "nulls": 0,
          "distinct": 5,
          "min": 1,
          "max": 5
        },
        "comment": {
          "nulls": 30,
          "distinct": 279
        }
      }
    },
    "portfolios": {
      "rows": 384,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 384,
          "min": 1,
          "max": 384
        },
        "freelancer_id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "project_description": {
          "nulls": 39,
          "distinct": 345
        },
        "project_link": {
          "nulls": 29,
          "distinct": 350
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/clients.csv",
      "format": "csv",
      "table": "clients",
      "key": "datasets/freelancer-marketplace-insights/v2/csv/clients.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/freelancer-marketplace-insights/v2/csv/clients.csv",
      "bytes": 3293,
      "sha256": "27806fc5849d45526ce17aee17002caa60b1248814f4745c2b8748d1961c2a03",
      "rows": 100,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/freelancers.csv",
      "format": "csv",
      "table": "freelancers",
      "key": "datasets/freelancer-marketplace-insights/v2/csv/freelancers.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/freelancer-marketplace-insights/v2/csv/freelancers.csv",
      "bytes": 12156,
      "sha256": "69705bafa60dca332d78ca751521538c5758d43ad32ff076373548958473dfa8",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/portfolios.csv",
      "format": "csv",
      "table": "portfolios",
      "key": "datasets/freelancer-marketplace-insights/v2/csv/portfolios.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/freelancer-marketplace-insights/v2/csv/portfolios.csv",
      "bytes": 34907,
      "sha256": "cb7bb66fb1534c3ce1abf13b62f7b27855fea8d7c1f5c6682765404958e06c73",
      "rows": 384,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/tasks.csv",
      "format": "csv",
      "table": "tasks",
      "key": "datasets/freelancer-marketplace-insights/v2/csv/tasks.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/freelancer-marketplace-insights/v2/csv/tasks.csv",
      "bytes": 6639,
      "sha256": "22a9e69210a04be4d025fc00de8d0638277533ac26d01fec6b2e624355b5538b",
      "rows": 233,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/invoices.csv",
      "format": "csv",
      "table": "invoices",
      "key": "datasets/freelancer-marketplace-insights/v2/csv/invoices.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/freelancer-marketplace-insights/v2/csv/invoices.csv",
      "bytes": 7727,
      "sha256": "cbac50dbecc663c8367feac0e8c55fe89e593765e507daab0d8219958011f8e0",
      "rows": 376,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/reviews.csv",
      "format": "csv",
      "table": "reviews",
      "key": "datasets/freelancer-marketplace-insights/v2/csv/reviews.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/freelancer-marketplace-insights/v2/csv/reviews.csv",
      "bytes": 19238,
      "sha256": "c28fc6391b1c567fe110483e612d623434492dbd5456aac0cd2735b5f68bab46",
      "rows": 310,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "freelancer-marketplace-insights.json",
      "format": "json",
      "table": null,
      "key": "datasets/freelancer-marketplace-insights/v2/freelancer-marketplace-insights.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/freelancer-marketplace-insights/v2/freelancer-marketplace-insights.json",
      "bytes": 235149,
      "sha256": "eb2b2d3d280d6a9d6759d6048ad7bdba8e39c2dbe4dfc7c43d494b562bdbb8c7",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/freelancer-marketplace-insights/v2/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/freelancer-marketplace-insights/v2/sql/postgres.sql",
      "bytes": 109030,
      "sha256": "b163285abe38a8702a02604c97535a558c96ec6a7372c4511942e1e7448fa9b4",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/freelancer-marketplace-insights/v2/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/freelancer-marketplace-insights/v2/sql/mysql.sql",
      "bytes": 108367,
      "sha256": "4e38bb91c1d03f9a8416976b51fc6aedaca33270172f4eee4e4051f18399437e",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/freelancer-marketplace-insights/v2/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/freelancer-marketplace-insights/v2/sql/mssql.sql",
      "bytes": 111431,
      "sha256": "4cc0fffbd2b86ee2a60139338ec354be263b696e9c802ac6daa915d8a262ecb2",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/freelancer-marketplace-insights/v2/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/freelancer-marketplace-insights/v2/sql/sqlite.sql",
      "bytes": 108135,
      "sha256": "23bc49a69cc923f9c0c2e32238571c501ccdaeb88b13e9633578e17bdf84381a",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/freelancer-marketplace-insights/v2/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/freelancer-marketplace-insights/v2/prisma/seed.ts",
      "bytes": 188342,
      "sha256": "eb85dd71e1e70a4ae1bf6441ad79fb619cb554b90b7dd828bcf7086fddf3279c",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/freelancer-marketplace-insights/v2/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/freelancer-marketplace-insights/v2/django/fixtures.json",
      "bytes": 301753,
      "sha256": "027d43c69506122d91cab30925ebf5487da69dc03d47af5efa148d92d2a5b313",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788767208282,
  "updatedAt": 1788778881850
}
