E-Commerce Sales Dashboard in Power BI
Build an interactive e-commerce sales dashboard using real data in Power BI.
Introduction
30 Second Summary
Every e-commerce business is sitting on thousands of transactions they never look at. Freelance data analysts who can turn that raw data into clear decisions charge $40 to $120 per hour on platforms like Upwork.
In this project, you will build an interactive sales dashboard in Power BI using 100,000+ real orders from Brazil's largest marketplace. You will also write a business insight memo that packages your findings into actionable recommendations for a client.
What You'll Build
An interactive Power BI dashboard analysing real e-commerce transaction data, paired with a 1-page client-ready insight memo structured as a freelance portfolio piece.
By the end of this project, you'll have:
- A working interactive dashboard with KPI cards, a monthly revenue trend line, and product category breakdowns.
- A 1-page business insight memo that frames your data findings as actionable client recommendations.
- A repeatable workflow for importing, cleaning, and visualizing data that mirrors a real freelance engagement.
- Secret Mission: Add a delivery performance analysis page showing on-time vs. late deliveries and their impact on customer review scores.
Are there any prerequisites?
You need basic familiarity with spreadsheets (Excel or Google Sheets) and a Windows PC. No prior Power BI experience is required.
Power BI Desktop is completely free to download and use. You will also need a free Kaggle account to access the dataset.
Set Up Your Tools
Before you can build a dashboard, you need two things: a tool to visualize data and actual data to work with.
In this step, you will install Power BI Desktop (a free data visualization tool from Microsoft) and download a real e-commerce dataset from Kaggle.
In this step, get ready to:
- Install Power BI Desktop on your computer.
- Download and extract the Brazilian E-Commerce dataset from Kaggle.
- Verify Power BI can read the data files without errors.
Install Power BI Desktop
Power BI Desktop is a free Windows application that lets you connect to data, transform it, and create interactive visual reports. Let's check if you already have it installed.
- Press the Windows key on your keyboard to open the Start menu.
- Type Power BI Desktop and look at the results.
✔️ I see Power BI Desktop in the results
You already have Power BI Desktop installed.
- Click on Power BI Desktop to open it.
- A welcome screen appears. Close the welcome dialog by clicking the X in its top-right corner.
- You should now see the main interface with a blank canvas in the center, a Fields pane on the right, and a ribbon at the top with tabs like Home, Insert, and Modeling.
Skip ahead to the next substep (downloading the dataset).
ⓧ I don't see it
You need to install Power BI Desktop. Follow these steps to download and install it.
- Open your web browser and go to the Microsoft Download Center for Power BI Desktop:
- https://www.microsoft.com/en-us/download/details.aspx?id=58494
- Click Download.
- Select PBIDesktopSetup_x64.exe (the 64-bit version), then click Next to begin the download.
- Once the download finishes, run the downloaded PBIDesktopSetup_x64.exe file and follow the on-screen setup steps.
- After installation completes, press the Windows key, type Power BI Desktop, and press Enter to launch it.
- A welcome screen appears. Close the welcome dialog by clicking the X in its top-right corner.
- You should now see the main interface with a blank canvas in the center, a Fields pane on the right, and a ribbon at the top with tabs like Home, Insert, and Modeling.
Power BI Desktop won't install?
Make sure your PC meets the system requirements: Windows 10 or later, at least 2 GB of RAM (4 GB recommended), and a display resolution of at least 1440x900.
If the installer fails, try running it as Administrator by right-clicking the file and selecting Run as administrator.
Help me troubleshoot my Power BI Desktop installation
What is Power BI Desktop?
Power BI Desktop is Microsoft's free data visualization application for Windows. It lets you connect to data sources, clean and transform data, and build interactive visual reports.
You do not need a Microsoft account or paid subscription to use Power BI Desktop locally. It only requires an account if you want to publish reports to the cloud.
Download the dataset from Kaggle
You need real data to build a dashboard. You will use the Brazilian E-Commerce Public Dataset by Olist, which contains 100,000+ orders from a real marketplace in Brazil.
What is Kaggle?
Kaggle is a free platform that hosts public datasets and data science competitions. You need a free account to download datasets.
- Open your web browser and go to:
- https://www.kaggle.com/datasets/olistbr/brazilian-ecommerce
✔️ I already have a Kaggle account
- Sign in to Kaggle if you are not already signed in.
- Continue to the download step below.
ⓧ I don't have a Kaggle account
- Click Register on the Kaggle page.
- Choose Register with Google or Register with Email to create your free account.
- Complete the registration process and return to the dataset page.
- On the dataset page, click the Download button. This downloads a ZIP archive (approximately 120 MB).
- Once the download completes, navigate to your Downloads folder in File Explorer.
- Right-click the downloaded ZIP file and select Extract All....
- Choose a destination folder you can easily find later (for example, C:\Users\YourName\Documents\olist-data).
- Click Extract.
- Open the extracted folder. You should see 9 CSV files listed inside.
What files are in the dataset?
The dataset contains 9 CSV files covering different aspects of the e-commerce marketplace. The key files you will use are:
- olist_orders_dataset.csv (order records with timestamps and statuses).
- olist_order_items_dataset.csv (individual items in each order, with prices).
- olist_products_dataset.csv (product details and categories).
- product_category_name_translation.csv (translates category names from Portuguese to English).
Don't see 9 files?
Some ZIP extractors create a nested folder inside the extraction destination. Open any sub-folders until you find the individual .csv files.
If the download failed or the ZIP is corrupted, delete it and re-download from the Kaggle dataset page.
Help me find my extracted CSV files
Verify your setup
Now that you have Power BI Desktop installed and the dataset extracted, let's confirm they work together. You will test that Power BI can read one of the CSV files.
- Switch back to Power BI Desktop (it should still be open from earlier).
- In the Home ribbon at the top, click Get Data.
- Select Text/CSV from the dropdown menu.
- Browse to your extracted folder and select olist_orders_dataset.csv.
- Click Open.
A preview window appears showing order data with columns like order_id, customer_id, order_status, and order_purchase_timestamp.
- Click Cancel (you will load data properly in the next step).
Why click Cancel?
This test confirms Power BI can read your files without errors. In the next step, you will load multiple tables and set up proper relationships between them. Loading a single file now would mean extra cleanup later.
Power BI can't read the file?
Make sure you selected a .csv file, not the ZIP archive itself. The file browser should point to the folder where you extracted the files.
If you see garbled text or encoding errors, make sure you downloaded the dataset directly from the Kaggle page rather than from a third-party mirror.
Help me fix my Power BI data import issue
Your tools are ready. Next up, you will load all four core tables into Power BI and transform the data for analysis.
Import and Transform the Data
Your tools are ready and your data files are waiting. Now it's time to bring that raw data into Power BI and shape it into something useful.
Raw CSV files contain noise. Extra order statuses, unformatted dates, and disconnected tables all get in the way of clear analysis. In this step, you'll import the data, clean it up, and connect the tables so Power BI can treat them as one unified dataset.
In this step, get ready to:
- Load 4 core CSV tables into Power BI.
- Clean and transform the orders table using Power Query.
- Create relationships between tables to build a data model.
Load the core tables into Power BI
You only need 4 of the 9 CSV files for the main dashboard. These cover orders, order items, products, and product category translations.
- In Power BI Desktop, click Get Data in the Home ribbon.
- Select Text/CSV from the list.
- Browse to your extracted data folder and select olist_orders_dataset.csv.
- Click Open.
- A preview window appears showing column headers and sample rows. Click Load to import the data directly.
Why Load instead of Transform Data?
Clicking Load imports the file as-is into your data model. You will open Power Query Editor afterwards to transform all tables at once, which is faster than editing each file during import.
- Repeat the same process (Get Data > Text/CSV > browse > Open > Load) for each of these 3 files:
- olist_order_items_dataset.csv
- olist_products_dataset.csv
- product_category_name_translation.csv
After loading all 4 files, check the Fields pane on the right side of the screen. You should see 4 tables listed: olist_orders_dataset, olist_order_items_dataset, olist_products_dataset, and product_category_name_translation.
Don't see all 4 tables?
Make sure you clicked Load (not Cancel) on each file's preview window. If a table is missing, repeat Get Data > Text/CSV for that file.
help me load CSV files into Power BI
Clean and transform the data in Power Query
The orders table currently includes all order statuses (cancelled, shipped, processing, etc.). For accurate revenue analysis, you only want completed orders. You also need to format the date column and extract months for trend analysis.
- Click Transform Data in the Home ribbon to open Power Query Editor.
- In the Queries pane on the left, select olist_orders_dataset.
What is Power Query Editor?
Power Query Editor is Power BI's built-in data cleaning tool. Every change you make here is recorded as a step in the Applied Steps list on the right. You can undo or reorder steps at any time.
First, fix the date column's data type.
- Click the order_purchase_timestamp column header to select it.
- Go to the Transform tab in the ribbon.
- Click Data Type and select Date/Time.
- If Power BI asks whether to replace the current step or add a new one, select Replace current.
Next, add a custom column that extracts the month from each order date.
- Go to the Add Column tab in the ribbon.
- Click Custom Column. The Custom Column window appears.
- In the New column name field, type order_month.
- In the Custom column formula box, enter the following formula:
Date.StartOfMonth([order_purchase_timestamp])
- Click OK.
What does this formula do?
Date.StartOfMonth([order_purchase_timestamp]) takes each order's purchase date and rounds it down to the first day of that month. This creates a clean grouping column for monthly trend charts later.
Finally, filter the table to keep only delivered orders.
- Click the dropdown arrow on the order_status column header.
- Uncheck Select All to deselect everything.
- Check only delivered, then click OK.
- Click Close & Apply in the Home tab of the Power Query Editor ribbon to save your transformations and return to the main Power BI window.
Why filter to delivered only?
Cancelled, returned, and in-progress orders haven't generated revenue. Including them would inflate your order count and distort your average order value calculations.
You should now be back in the main Power BI Desktop window. The olist_orders_dataset table now contains only delivered orders with a new order_month column.
Seeing an error after Close & Apply?
If you see a formula error, go back to Transform Data and check the Applied Steps pane on the right. Click on each step to find where the error appears. The most common issue is a typo in the custom column formula.
help me fix a Power Query formula error
Create relationships between tables
Right now your 4 tables are loaded but disconnected. Power BI needs to know which columns link them together so it can combine data across tables in your visuals.
- Click the Model view icon in the left sidebar (it looks like a small diagram with boxes and lines).
What is a data model?
A data model defines how your tables relate to each other. It is like a map that tells Power BI "this order's product_id matches that product's product_id." Without relationships, Power BI cannot combine information across tables in a single chart.
Power BI may auto-detect some relationships. Verify that these 3 connections exist, or create them manually by dragging a field from one table onto the matching field in the other:
- olist_orders_dataset > order_id connects to olist_order_items_dataset > order_id.
- olist_order_items_dataset > product_id connects to olist_products_dataset > product_id.
- olist_products_dataset > product_category_name connects to product_category_name_translation > product_category_name.
To create a relationship manually, drag the field name from one table box and drop it onto the matching field name in the other table box.
You should see lines connecting the 4 tables through their shared keys in the Model view diagram.
Relationship won't connect?
If dragging doesn't create a line, double-check that the field names match exactly. For example, both tables must have a column literally named order_id. Also ensure the columns contain the same type of data (both text or both numbers).
help me create table relationships in Power BI
Your data is now imported, cleaned, and connected. Next up, you'll create calculated measures using DAX to turn this raw data into meaningful KPIs like Total Revenue and Average Order Value.
Create Key Measures with DAX
Your data model is connected and clean. The four tables know how to talk to each other through the relationships you built.
Raw columns like price and freight_value are useful on their own, but a freelance client wants answers to bigger questions: What is total revenue? How many orders came through? What is the average order value? To answer those, you need calculated measures built with DAX (Data Analysis Expressions), Power BI's formula language.
In this step, get ready to:
- Create revenue, order count, and average order value measures.
- Create a time intelligence measure for month-over-month comparison.
Create revenue and order measures
Measures are dynamic calculations that respond to whatever filters or visuals you place them in. Unlike a static column, a measure recalculates every time you interact with the dashboard.
- In the Fields pane on the right, right-click the olist_order_items_dataset table.
- Select New measure from the context menu.
- A formula bar appears at the top of the report canvas with the placeholder text Measure =. Replace the entire contents with the following formula and press Enter to save:
Total Revenue = SUM(olist_order_items_dataset[price]) + SUM(olist_order_items_dataset[freight_value])
What does this formula do?
This measure adds the product price and shipping cost for every line item in your dataset. Because it is a measure (not a column), it recalculates dynamically whenever you filter by date, category, or any other field.
- Now right-click the olist_orders_dataset table in the Fields pane and select New measure.
- Replace the formula bar contents with the following and press Enter:
Total Orders = DISTINCTCOUNT(olist_orders_dataset[order_id])
Why DISTINCTCOUNT?
A single order can contain multiple line items (one row per product purchased). DISTINCTCOUNT counts each unique order_id only once, giving you the true number of orders rather than the number of line items.
- Right-click the olist_order_items_dataset table again and select New measure.
- Enter the following formula and press Enter:
Avg Order Value = [Total Revenue] / [Total Orders]
Referencing other measures
Square brackets with no table prefix ([Total Revenue]) reference measures you already created. DAX lets you build measures on top of other measures, keeping your formulas short and readable.
- Verify by dragging Total Revenue from the Fields pane onto the blank canvas.
- A Card visual appears showing a numeric value. This confirms the measure calculates without errors.
- Delete the test card by selecting it and pressing the Delete key on your keyboard.
Seeing an error in the formula bar?
Double-check that the table and column names match exactly, including brackets and no extra spaces. DAX column references use the format TableName[ColumnName] with no space between the table name and the opening bracket.
If you see a circular dependency error on Avg Order Value, make sure you created Total Revenue and Total Orders as measures first. The order matters because Avg Order Value references both of them.
Help me fix my DAX formula error
Create a time intelligence measure
Freelance clients love month-over-month comparisons. This measure calculates last month's revenue so you can show growth trends later in your dashboard.
- In the Fields pane, right-click the olist_order_items_dataset table and select New measure.
- Enter the following formula and press Enter:
Revenue Previous Month = CALCULATE([Total Revenue], DATEADD(olist_orders_dataset[order_month], -1, MONTH))
What does CALCULATE do?
CALCULATE takes an existing measure and evaluates it under a modified filter context. Here, it takes your Total Revenue formula and shifts the date filter back by one month using DATEADD.
This means when your dashboard shows November 2017 revenue, this measure automatically returns October 2017 revenue in the same row. You can use both side by side to show growth or decline.
- Confirm the measure appears in the Fields pane under olist_order_items_dataset with a calculator icon and no error indicator.
Formula accepted but showing blank values?
This is normal at this stage. Measures only produce visible results when placed inside a visual with a date context. You will use this measure in the next step when building your trend chart.
If you see an actual error (red underline or error message), check that olist_orders_dataset[order_month] matches the custom column name you created in Step 2. Column names are case-sensitive.
Help me troubleshoot my Revenue Previous Month measure
✔️ Awesome, I've got all four measures!
Great. You should now see four measures across your tables in the Fields pane, each marked with a small calculator icon.
ⓧ I'd like to double check all measures
Here are all four DAX measures you should have at this point:
Total Revenue = SUM(olist_order_items_dataset[price]) + SUM(olist_order_items_dataset[freight_value])
Total Orders = DISTINCTCOUNT(olist_orders_dataset[order_id])
Avg Order Value = [Total Revenue] / [Total Orders]
Revenue Previous Month = CALCULATE([Total Revenue], DATEADD(olist_orders_dataset[order_month], -1, MONTH))
Total Revenue and Avg Order Value live under olist_order_items_dataset. Total Orders lives under olist_orders_dataset. Revenue Previous Month lives under olist_order_items_dataset. Each should show a calculator icon with no error warnings.
Your data model now has the calculations a client cares about. Next up, you will turn these measures into a visual, interactive dashboard with KPI cards, trend lines, and category breakdowns.
Design the Interactive Dashboard
Your data model is connected and your DAX measures are ready to go. Now comes the most satisfying part: turning those numbers into a visual story that a client can actually understand at a glance.
In this step, you will build a complete interactive dashboard with KPI cards, trend charts, and category breakdowns. You will also add a date slicer so anyone viewing the report can filter the data to any time period they choose.
In this step, get ready to:
- Create three KPI cards showing Total Revenue, Total Orders, and Average Order Value.
- Add a revenue trend line chart and a top-10 product category bar chart.
- Add interactivity with cross-filtering, a date slicer, and a dashboard title.
Build the KPI cards row
KPI cards are the first thing a client looks at on any dashboard. They provide instant answers to the big questions: how much revenue, how many orders, and what is the average spend per order.
- Make sure you are in Report view (the bar chart icon on the left sidebar).
- In the Visualizations pane on the right side, click the Card visual icon.
- From the Fields pane, drag Total Revenue into the Fields well of the card.
- Resize the card by dragging its corner handles and position it at the top-left of the canvas.
- Click on the card to select it, then click the Format icon (paint roller) in the Visualizations pane.
- Expand the Title section and type Total Revenue as the title text.
Now repeat this process to create the other two KPI cards.
- Click on empty canvas space to deselect the first card.
- Select the Card visual again from the Visualizations pane.
- Drag Total Orders into the Fields well.
- Position it to the right of the first card and title it Total Orders.
- Create a third Card visual for Avg Order Value and position it to the right of the Total Orders card.
- Title this third card Avg Order Value.
You should now see three KPI cards side by side at the top of your report, each displaying a numeric value.
What are KPI cards?
KPI stands for Key Performance Indicator. A KPI card shows a single important number prominently so viewers can immediately grasp the headline metric without reading a chart.
In freelance dashboards, clients want to open a report and know the answer to their biggest question within two seconds. KPI cards deliver that instant clarity.
Card showing 'blank' or no number?
Make sure you dragged the measure (not a raw column) into the Fields well. Measures appear with a calculator icon next to their name in the Fields pane.
If you still see no value, check that your olist_orders_dataset table still has the order_status filter set to only show delivered orders. An empty filter can result in zero rows.
Help me troubleshoot my KPI card not showing data
Add trend and breakdown visuals
KPI cards answer "how much" but clients always ask "when" and "what" next. A line chart shows revenue trends over time, and a bar chart reveals which product categories drive the most revenue.
- Click on an empty area of the canvas to make sure nothing is selected.
- In the Visualizations pane, click the Line Chart icon.
- Drag order_month from the olist_orders_dataset table to the X-axis well.
- Drag Total Revenue to the Y-axis well.
- Resize the line chart and position it below the KPI cards on the left side of the canvas.
You should see a line chart showing monthly revenue over time. The trend reveals seasonal patterns in the marketplace data.
Why a line chart for revenue?
Line charts are the standard for showing change over time. They make it easy to spot peaks, dips, and growth patterns at a glance. A freelance client can immediately see which months perform best.
Now add the category breakdown bar chart.
- Click on an empty area of the canvas.
- In the Visualizations pane, click the Clustered Bar Chart icon.
- Drag product_category_name_english from the product_category_name_translation table to the Y-axis well.
- Drag Total Revenue to the X-axis well.
- Position the bar chart to the right of the line chart, below the KPI cards.
The bar chart shows all product categories, but there are too many to read clearly. Apply a Top N filter to show only the top 10.
- With the bar chart selected, look at the Filters pane (next to Visualizations).
- Find product_category_name_english under Filters on this visual.
- Change the filter type dropdown from Basic filtering to Top N.
- Set the value to 10 and drag Total Revenue into the By value field.
- Click Apply filter.
The bar chart now shows only the top 10 product categories ranked by Total Revenue.
Bar chart showing category names in Portuguese?
Make sure you dragged product_category_name_english from the product_category_name_translation table, not product_category_name from the products table. The translation table contains the English names.
Help me fix my bar chart categories
Add interactivity and formatting
A static dashboard is just a report. What makes Power BI valuable for freelance clients is interactivity. Clicking one chart automatically filters the others, and slicers let users explore the data on their own terms.
- Click on any bar in the category bar chart.
Notice how the line chart and KPI cards automatically update to show only that category's data. This is Power BI's built-in cross-filtering. It works between all visuals on the page without any configuration.
Click the same bar again (or click empty canvas space) to clear the filter. Now add a date slicer so users can filter by time period.
- Click on an empty area of the canvas.
- In the Visualizations pane, click the Slicer visual icon.
- Drag order_month from the olist_orders_dataset table into the Field well of the slicer.
- Click the dropdown arrow at the top-right of the slicer visual and select Between to show a date range selector.
- Position the slicer above or beside your charts where it is easy to find.
What does a slicer do?
A slicer is a visual filter control that lets viewers narrow down all the other visuals on the page. In "Between" mode, it gives users a start and end date slider. When they adjust the range, every chart and card updates to show only data within that window.
Finally, add a title and apply consistent formatting.
- Click the Insert tab in the top ribbon.
- Click Text Box.
- Type E-Commerce Sales Performance Dashboard into the text box.
- Increase the font size to at least 20pt and position the text box at the very top of the canvas, above the KPI cards.
Now apply a consistent color theme across all your visuals.
- Click the View tab in the top ribbon.
- Click Themes and pick a theme that looks professional to you.
- The theme applies consistent colors across all visuals on the page automatically.
Test the full interactivity by clicking different bars and adjusting the date slicer. Every visual should respond to your selections.
- Save your report by pressing Ctrl+S.
- If this is your first save, name the file ecommerce-dashboard.pbix and save it in the same folder as your data files.
Date slicer not filtering the other visuals?
Make sure you used order_month from the olist_orders_dataset table (the custom column you created in Step 2). The slicer must reference the same table that your other visuals are connected to through relationships.
Also confirm the slicer is set to Between mode (not List mode). Click the dropdown arrow at the top-right corner of the slicer to change this.
Help me fix my date slicer in Power BI
Your interactive dashboard is complete. It has headline KPIs, trend analysis, category breakdown, and date filtering. Next up, you will turn these visuals into actionable business insights by writing a professional memo that could sit in a real freelance deliverable.
Write the Business Insight Memo
Your dashboard is live and interactive. KPI cards, trend lines, and category breakdowns are all working together to tell a story about this marketplace's revenue.
A dashboard alone doesn't win freelance clients. Clients want proof that you can interpret data and turn patterns into decisions they can act on. In this step, you'll extract insights from your dashboard and write a structured memo that frames your work as a professional deliverable.
In this step, get ready to:
- Analyse your dashboard to identify key revenue patterns and trends.
- Write a structured insight memo with findings and recommendations.
- Frame the entire project as a portfolio case study for freelance proposals.
Analyse your dashboard findings
Before writing anything, you need to read the story your dashboard is telling. Every chart contains patterns that translate into business decisions.
- Switch back to Power BI Desktop and look at your monthly revenue line chart.
- Identify the peak month (the highest point on the line) and the trough month (the lowest point).
- Hover over these points to see the exact month and revenue figure.
- Look at your top categories bar chart and note the top 3 revenue-generating categories.
- Check your KPI cards and write down the Total Revenue, Total Orders, and Avg Order Value numbers.
- Write down 3 key observations using the specific numbers you found.
What makes a good observation?
A strong observation pairs a pattern with a possible explanation. For example: "Revenue peaked in November 2017, likely driven by Black Friday promotions" or "The top 3 categories account for X% of total revenue."
Always include specific numbers. "Revenue went up" is weak. "Revenue grew 40% between September and November 2017" is what clients pay for.
Write the 1-page insight memo
The insight memo is the deliverable you'd hand to a client alongside the dashboard. It distills your analysis into a format that a non-technical business owner can act on immediately.
- Press the Windows key to open your search bar.
- Type Notepad and press Enter to open it.
- Type the following memo structure into Notepad, replacing the placeholder lines with your own findings and recommendations:
=== BUSINESS INSIGHT MEMO ===
Business Question: What are the key revenue drivers and trends for this e-commerce marketplace?
Key Findings:
1. [[FINDING_1="your first observation with a specific number, e.g. Revenue peaked in November 2017 at R$1.2M"]]
2. [[FINDING_2="your second observation with a specific number, e.g. The top 3 categories account for 45% of total revenue"]]
3. [[FINDING_3="your third observation with a specific number, e.g. Average order value is R$154 across 96K delivered orders"]]
Recommendations:
1. [[REC_1="actionable recommendation based on Finding 1, e.g. Increase inventory for top categories ahead of November peak season"]]
2. [[REC_2="actionable recommendation based on Finding 2, e.g. Focus marketing spend on the top 3 categories to maximize ROI"]]
3. [[REC_3="actionable recommendation based on Finding 3, e.g. Introduce bundle offers to increase average order value above R$160"]]
What does each section do?
- Business Question frames what the analysis set out to answer. This keeps the memo focused.
- Key Findings are the patterns you spotted. Every finding must include a specific number from your dashboard.
- Recommendations turn each finding into something the business can do. One recommendation per finding keeps the memo actionable.
Use your dashboard interactively
Click on specific bars or time periods in your Power BI dashboard while writing. The cross-filtering updates all other visuals, helping you discover relationships between categories, time periods, and order volumes.
Frame it as a portfolio case study
Freelance clients skim portfolios quickly. A case study framing at the top of your memo tells them in seconds what you did, how you did it, and what result you delivered.
- Place your cursor at the very top of your Notepad file (before the "=== BUSINESS INSIGHT MEMO ===" line).
- Add the following portfolio framing section above everything else:
=== PORTFOLIO CASE STUDY ===
Project Title: E-Commerce Sales Performance Analysis
Client: Olist Marketplace (spec project using public data)
Business Problem: The marketplace needed visibility into revenue drivers, seasonal trends, and category performance to inform inventory and marketing decisions.
Approach: Imported and cleaned 100K+ transaction records, built relational data model, created interactive Power BI dashboard with KPI tracking and category analysis.
Outcome: Identified top revenue categories, seasonal peaks, and average order value benchmarks. Delivered actionable recommendations for inventory planning and promotional timing.
Why this structure works for freelancing
This five-part structure (Title, Client, Problem, Approach, Outcome) mirrors what freelance guides recommend for data analytics portfolios. It answers a hiring client's three questions in order: "What did you do?", "How did you do it?", and "What was the result?"
Even though this is a spec project using public data, stating that honestly ("spec project using public data") builds trust. Clients respect transparency over inflated claims.
- Save the file by pressing Ctrl+S.
- In the Save As dialog, navigate to the same folder where your .pbix file is saved.
- Name the file insight_memo.txt and click Save.
Your file should now have the portfolio framing at the top, followed by the Business Question, Key Findings, and Recommendations sections below it.
File saved as .txt.txt?
Windows sometimes appends an extra .txt extension. If your file shows as insight_memo.txt.txt in File Explorer, change the "Save as type" dropdown to All Files (*.*) in the Save As dialog and save again.
Having trouble structuring your memo?
✔️ Awesome, I've got everything!
Great. Double check you've saved your file as insight_memo.txt in the same folder as your .pbix report.
ⓧ I'd like to double check the full file
Here's the complete structure of your insight_memo.txt file. Your specific findings and recommendations will differ based on your dashboard analysis.
=== PORTFOLIO CASE STUDY ===
Project Title: E-Commerce Sales Performance Analysis
Client: Olist Marketplace (spec project using public data)
Business Problem: The marketplace needed visibility into revenue drivers, seasonal trends, and category performance to inform inventory and marketing decisions.
Approach: Imported and cleaned 100K+ transaction records, built relational data model, created interactive Power BI dashboard with KPI tracking and category analysis.
Outcome: Identified top revenue categories, seasonal peaks, and average order value benchmarks. Delivered actionable recommendations for inventory planning and promotional timing.
=== BUSINESS INSIGHT MEMO ===
Business Question: What are the key revenue drivers and trends for this e-commerce marketplace?
Key Findings:
1. [[FINDING_1="your first observation with a specific number from the dashboard"]]
2. [[FINDING_2="your second observation with a specific number from the dashboard"]]
3. [[FINDING_3="your third observation with a specific number from the dashboard"]]
Recommendations:
1. [[REC_1="actionable recommendation based on Finding 1"]]
2. [[REC_2="actionable recommendation based on Finding 2"]]
3. [[REC_3="actionable recommendation based on Finding 3"]]
Secret mission
Add a Delivery Performance Analysis Page
Your sales dashboard tells clients where the money is. But what about the customer experience? In this secret mission, you'll add a second report page that connects delivery speed to customer satisfaction, giving your portfolio piece real analytical depth.
Clean Up Your Resources
Clean Up Your Resources
Decide whether to keep your resources running, pause them to come back later, or delete them entirely. This project runs entirely locally with free tools, so there are no ongoing costs.
Resources you used:
- Power BI Desktop (installed application).
- Olist dataset CSV files (local folder, approximately 120 MB).
- Power BI report file (.pbix).
- Business insight memo (insight_memo.txt).
- Kaggle account (free).
Keep everything running
No action needed. Choose this if you are still actively building on your dashboard or plan to expand it with new data sources.
- Your Power BI Desktop installation stays ready for future projects.
- Your .pbix file and CSV data remain on disk for reference or iteration.
- Your Kaggle account gives you access to thousands of other public datasets for future portfolio pieces.
Pause - I'll come back to this later
Free up disk space from the raw data while keeping your finished work intact.
- Keep your .pbix file and insight_memo.txt. These are your finished deliverables.
- Delete the extracted CSV folder (approximately 120 MB) to free up space. You can re-download it from Kaggle any time.
- Leave Power BI Desktop installed so you can reopen your report later.
Delete - I don't want to use this again
Remove all project resources and start fresh.
- Delete the extracted Olist CSV folder from your computer. Open File Explorer, navigate to the folder where you extracted the data, right-click the folder, and select Delete.
- Delete your .pbix report file and insight_memo.txt from the same folder.
- Uninstall Power BI Desktop. Press the Windows key, type Add or remove programs, and press Enter. Find Microsoft Power BI Desktop in the list, click it, and select Uninstall.
- Delete your Kaggle account (optional). Log in to Kaggle, click your profile icon in the top right, select Settings, scroll to the bottom of the page, and click Delete Account.
Nice Work!
Nice Work!
You just built a complete freelance-ready data analytics deliverable from scratch. You went from raw CSV files to an interactive dashboard and a client-ready insight memo, all using free tools.
Here's what you accomplished:
- Built an interactive Power BI dashboard with KPI cards, revenue trend lines, and category breakdowns analysing 100,000+ real e-commerce orders.
- Cleaned and modelled raw data using Power Query transformations, built a relational data model, and created DAX measures for revenue analytics.
- Wrote a business insight memo with specific findings and actionable recommendations, framed as a portfolio case study ready for freelance proposals.
- Secret Mission: Added a delivery performance analysis page connecting on-time delivery rates to customer review scores.
Ready to quiz yourself?