Practice Power BI with realistic business datasets

Pick a business question, generate coherent CSV data, model it at the correct grain, and build a dashboard you can explain—not just decorate.

Who this workflow is for

  • Beginners learning Power BI Desktop
  • Analysts building dashboard portfolio projects
  • Teams prototyping reports before production data is available

What you will finish with

  • A clean imported dataset with deliberate data types
  • Measures that respect row grain and repeated identifiers
  • A focused dashboard answering one business question
  • A short validation and insight narrative suitable for a portfolio

A repeatable Power BI practice workflow

Build the model before decorating the report. Keep every decision connected to one business question.

  1. Choose one business question

    Start with a decision such as where profit is declining, which teams breach SLA, or which subscription movements change MRR.

    Validation proof: Write the question above the report canvas before choosing visuals.

  2. Generate a manageable CSV

    Use 500 rows for the first pass so patterns are visible while refreshes and validation remain quick.

    Validation proof: Keep the generated filename, scenario, row count, seed, and anchor date with the project notes.

  3. Import and assign data types

    Load the CSV, inspect dates and numeric columns, and prevent identifiers such as order_id or ticket_id from being treated as measures.

    Validation proof: Confirm dates sort chronologically and currency or rate fields aggregate as intended.

  4. Model from the documented grain

    Use the row-grain statement to decide which fields can be summed and which identifiers require distinct counts or a snapshot filter.

    Validation proof: Document the grain in the model description or a visible report note.

  5. Create measures from totals

    Build core measures before visuals. Recalculate ratios such as margin, CTR, CPA, or ROAS from numerator and denominator totals instead of averaging row-level rates.

    Validation proof: Compare each measure with a simple table visual before using it in KPI cards.

  6. Build a small decision-focused report

    Use one overview page with a few KPIs, one trend, one breakdown, and one diagnostic view tied directly to the business question.

    Validation proof: Every visual should help answer the question or explain a change in a KPI.

  7. Validate and explain the result

    Check totals, distinct counts, blanks, and filters, then write two or three evidence-based observations and one next action.

    Validation proof: A reviewer should be able to reproduce each observation from the visible filters and measures.

Choose a dataset by analytical question

Ecommerce Sales Power BI project

Dashboard question: Where are revenue and profit coming from, and what is eroding margin?

A familiar beginner-friendly sales story with products, customers, fulfillment, and additive financial fields.

Row-grain guardrail: One row is one product line. Sum revenue and profit, but count orders with DISTINCTCOUNT(order_id).

Core measures

  • Revenue
  • Profit
  • Weighted profit margin
  • Distinct orders

Useful visuals

  • Monthly revenue trend
  • Category profit breakdown
  • Customer segment matrix
  • Order-status distribution

Open the Ecommerce Sales Dataset Generator

Support Tickets Power BI project

Dashboard question: Where is support performance breaking down across priority, channel, and team?

Each row is already one ticket, making backlog, SLA, resolution time, and CSAT logic easy to explain.

Row-grain guardrail: Use ticket_id as the unique row identifier. Keep unresolved-ticket resolution and CSAT blanks meaningful.

Core measures

  • Ticket count
  • Open backlog
  • SLA breach rate
  • Average resolution hours

Useful visuals

  • Ticket trend
  • Priority and SLA matrix
  • Team workload bar chart
  • CSAT versus resolution scatter

Open the Support Tickets Dataset Generator

HR Analytics Power BI project

Dashboard question: How do workforce mix, tenure, compensation, and engagement relate to attrition?

A snapshot model supports headcount and attrition analysis without requiring a complex multi-table model.

Row-grain guardrail: One row is one employee snapshot. Use employee_id for headcount and respect status and termination fields.

Core measures

  • Headcount
  • Attrition rate
  • Average tenure
  • Average salary

Useful visuals

  • Department headcount
  • Attrition by tenure band
  • Compensation distribution
  • Workforce location map

Open the HR Analytics Dataset Generator

SaaS Subscriptions Power BI project

Dashboard question: Which customer and plan movements are changing recurring revenue?

Monthly snapshots make it possible to practice MRR movement, churn, reactivation, and cohort analysis.

Row-grain guardrail: One row is one subscription month. Filter one snapshot_month for current MRR and count subscription_id distinctly.

Core measures

  • Current MRR
  • ARR run rate
  • Gross MRR churn
  • Net MRR movement

Useful visuals

  • MRR bridge
  • Plan-mix trend
  • Churn by cohort
  • Movement-type waterfall

Open the SaaS Subscriptions Dataset Generator

Marketing Campaigns Power BI project

Dashboard question: Which channels and campaigns turn spend into efficient conversion value?

Daily campaign-channel rows support pacing, funnel, channel-mix, and creative-fatigue analysis.

Row-grain guardrail: Calculate CTR, CPC, CPA, and ROAS from aggregated totals; do not average the row-level ratios.

Core measures

  • Spend
  • CTR
  • CPA
  • ROAS

Useful visuals

  • Spend and conversion trend
  • Channel efficiency matrix
  • Campaign ROAS ranking
  • Creative fatigue diagnostic

Open the Marketing Campaigns Dataset Generator

Power BI dashboard validation checklist

  • The dashboard states what one row represents.
  • Identifiers use count or distinct count intentionally.
  • Ratio measures are calculated from totals.
  • Lifecycle blanks are preserved rather than replaced with zero.
  • Date filters and snapshot filters are explicit.
  • At least one table is used to validate KPI totals.
  • The final narrative names evidence, not just visual appearance.

Turn the report into a portfolio case study

State the business question, document the row grain and key calculations, show how totals were validated, write reproducible findings, and disclose that the source data is synthetic. The value of the project comes from the modeling and analytical decisions, not only the screenshot.

Frequently asked questions

Which MockRows dataset is best for a first Power BI project?
Ecommerce Sales is the most familiar starting point for revenue and profit, while Support Tickets has the simplest unique-row grain. Choose the business question you understand best.
How many rows should I generate for practice?
Start with 500 rows. It is enough to expose patterns and filters without making early modeling and validation slow. Increase the row count after the measures are correct.
Why should I avoid averaging margin, CTR, CPA, or ROAS columns?
Row-level ratios often have different denominators. Recalculate the final ratio from aggregated numerator and denominator totals so large and small rows receive the correct weight.
Can I use these datasets in a portfolio?
Yes. State clearly that the data is synthetic, describe the row grain and measures, and focus the portfolio story on your modeling, validation, dashboard decisions, and findings.
Does MockRows data contain real customer or employee information?
No. The records are synthetic and intended for learning, demos, prototypes, portfolios, and application testing.