Build a Sales Report with Copilot
Use Power BI Copilot prompts to build a multi-page sales report from scratch.
Introduction
30 Second Summary
Building data reports usually means dragging fields around, clicking through menus, and spending ages on formatting. What if you could just describe the report you want in plain English and watch it build itself?
In this project, you will build a three-page sales report in Power BI Desktop using only Copilot prompts. You will go from a blank canvas to a polished multi-page report with KPI cards, trend charts, slicers, and an AI-generated narrative summary.
What You'll Build
You will type a prompt, watch Copilot assemble your visuals, refine them with follow-up instructions, and save a polished .pbix file you can reopen, publish, or share with your team.
By the end of this project, you'll have:
- A baseline report page where Copilot auto-suggests visuals from your data, revealing its defaults and limitations.
- A targeted report page built with specific prompts that name exact fields and visual types, producing business-ready visuals on demand.
- A narrative summary visual that auto-generates a written explanation of the trends and figures on your page.
- A saved .pbix file as a tangible deliverable you can hand to stakeholders or publish to the Power BI service.
- Secret Mission: Use AI Instructions to control which visual types Copilot selects for specific data combinations.
Are there any prerequisites?
This project assumes you already have Power BI Desktop installed and access to a Power BI Premium capacity (P1 or higher) or Fabric capacity (F2 or higher) with Copilot enabled.
You should also be comfortable creating a basic Power BI report (opening the app, importing data, navigating between views). If you have never used Power BI before, start with an introductory project first.
Before We Start
Before we dive in, let's lock in what you're about to build and why it matters.
This project is about learning to communicate with Copilot effectively. The difference between a generic report and a business-ready one comes down to how you write your prompts.
Set Up Your Data and Connect Copilot
Copilot in Power BI Desktop needs a well-structured data model to generate useful visuals. Without proper table relationships and clear column names, your prompts produce confused or irrelevant results.
In this step, you will import the AdventureWorks Sales sample dataset, verify its star schema relationships, and connect the Copilot pane to your Premium workspace. This foundation ensures every prompt you write in later steps lands on solid data.
In this step, get ready to:
- Download and import the AdventureWorks Sales sample data.
- Verify the star schema relationships in Model view.
- Connect the Copilot pane to your Premium workspace.
Download and import the AdventureWorks data
The AdventureWorks Sales Excel workbook contains a fact table (Sales) surrounded by dimension tables like Customer, Product, Date, and Sales Territory. This multi-table layout gives Copilot a richer semantic model to work with than a single flat table would.
- Download the AdventureWorks Sales sample Excel workbook from Microsoft's GitHub repository.
- Save the file somewhere you can find it easily, such as your Desktop.
- In Power BI Desktop, click Excel workbook in the Data section of the Home ribbon.
- Browse to the AdventureWorks Sales.xlsx file you just downloaded and click Open.
The Navigator window appears, listing all available tables and sheets from the workbook.
- Select all the named tables (Customer, Date, Product, Reseller, Sales, SalesOrder, SalesTerritory). Do not select any items labeled with _data as those are raw sheet references.
- Click Load to import the data into your report.
After loading completes, expand any table in the Fields pane on the right to confirm the data arrived. You should see field names like Sales Amount, Product Category, and Customer.
What are all these tables?
The AdventureWorks dataset uses a star schema. The Sales table sits at the center as the fact table, holding numerical transaction data. Surrounding dimension tables (Customer, Product, Date, Reseller, SalesTerritory) provide context for filtering and grouping.
This structure is what lets Copilot understand questions like "show me sales by region" or "compare product categories over time."
Don't see any tables in the Navigator?
Make sure you downloaded the correct file from the link above. The file should be named AdventureWorks Sales.xlsx. If the Navigator shows no items, close the dialog, verify the file opens normally in Excel, and try the import again.
help me troubleshoot why the Navigator is empty
Verify relationships in Model view
For Copilot to join data across tables correctly, those tables need defined relationships. Power BI auto-detects most of these from the key columns in the AdventureWorks dataset.
- Click the Model view icon in the left navigation bar (the third icon from the top, shaped like a small diagram).
- Look at the diagram that appears. You should see the Sales table in the center with lines connecting it to the dimension tables (Customer, Product, Reseller, SalesTerritory, Date).
- Confirm that relationship lines (thin connectors with 1 and * symbols) exist between the Sales table and each surrounding dimension table.
Your diagram should resemble a star shape with Sales at the center. This confirms Power BI successfully detected the key relationships.
What if a relationship is missing?
If any dimension table appears disconnected (no line connecting it to Sales), you can create a relationship manually. Drag the key column from the dimension table (for example, DateKey in the Date table) onto the matching column in the Sales table (for example, OrderDateKey). Power BI draws the relationship line automatically.
Don't see any relationship lines?
If no lines appear at all, auto-detect may not have run. Click Manage relationships in the Home ribbon, then click Autodetect. Power BI scans the key columns and creates matching relationships.
help me set up relationships in my Power BI data model
Connect Copilot to your Premium workspace
Copilot in Power BI Desktop requires a connection to a workspace running on paid Fabric capacity (F2 or higher) or Power BI Premium capacity (P1 or higher). This is how Copilot accesses the AI engine that interprets your prompts.
- Switch back to Report view by clicking the first icon in the left navigation bar.
- Click the Copilot button in the Home ribbon.
A workspace picker dialog appears, asking you to select a Copilot-compatible workspace. This workspace does not need to be the same one you plan to publish to later.
- Select your Premium workspace from the list and confirm.
Before you look at the result, what do you expect to see after selecting a workspace? Take a moment to predict.
The Copilot pane opens on the right side of the screen, showing a prompt input field. This confirms Copilot is connected and ready to accept your instructions.
Copilot button is grayed out or no workspaces appear?
If the Copilot button appears in the ribbon but stays disabled, your tenant admin may not have enabled the Fabric Copilot setting at the tenant level. Contact your admin to verify.
If no workspaces appear in the picker, make sure you have admin, member, or contributor access to at least one workspace on P1+ or F2+ capacity. Copilot does not support Power BI Premium Per User (PPU) workspaces or trial SKUs.
Also confirm you are running a recent version of Power BI Desktop. Versions dated January 2025 and earlier do not support the Copilot pane.
help me get Copilot working in Power BI Desktop
Your data is loaded, your model is verified, and Copilot is ready to go. Next up, you will see what Copilot produces when given zero guidance, revealing its defaults and limitations before you learn to write targeted prompts.
Let Copilot Auto-Suggest a Page
Your data is loaded and Copilot is connected. Before you start writing custom prompts, you need to see what Copilot produces when you give it zero guidance.
This step reveals Copilot's default behavior and its limitations. By the end, you will have a baseline page to compare against when you write targeted prompts in the next step.
In this step, get ready to:
- Let Copilot auto-suggest a full page of visuals from your data.
- Review the generated visuals for usefulness and gaps.
- Test a vague prompt to see how Copilot handles ambiguity.
Let Copilot suggest a page automatically
Copilot can scan your entire semantic model and propose a ready-made report page without you choosing a single field. This is the fastest way to get visuals on the canvas, but it means Copilot decides everything for you.
- In the Copilot pane on the right, click Suggest content for this report.
- Copilot scans your semantic model and returns several suggested page topics, each with a title and description.
- Select one of the suggestions (such as a Sales Performance page).
- Click + Create to let Copilot build the page automatically.
Copilot generates an entire report page with multiple visuals, cards, and slicers. You should see your canvas fill up with charts and KPI cards within a few seconds.
What just happened?
Copilot evaluated every table and column in your star schema, picked the measures and dimensions it thought were most important, and chose chart types on your behalf.
You did not specify which fields to use, which visual types to create, or what business question to answer. Copilot made all of those decisions for you.
Copilot not showing suggestions?
Make sure you are in Report view (the first icon in the left navigation bar), not Model view. The Copilot pane only generates page suggestions from Report view.
If the button is greyed out, your workspace may not have Copilot enabled at the tenant level. Check with your Power BI admin.
help me troubleshoot why Copilot is not showing suggestions in Power BI Desktop
Review what Copilot generated
Now take a close look at what Copilot chose to build. Your goal is to assess how useful this auto-generated page would be for a real business audience.
- Count the total number of visuals on the page.
- Note which chart types Copilot selected (bar charts, line charts, pie charts, cards, tables).
- Check whether the KPI cards show meaningful numbers (like total revenue or order count) or generic ones.
- Look for visuals that feel unhelpful, such as a pie chart with too many categories or a table with no clear purpose.
This page is your baseline. Leave it exactly as Copilot created it so you can compare it against the targeted page you build in the next step.
What to look for in Copilot's defaults
Copilot tends to pick safe, generic visualizations. It often shows total figures without time comparisons, selects pie charts for categorical data even when there are too many slices, and may miss key business questions entirely.
These gaps are not bugs. They exist because Copilot had no context about what matters to your audience. Prompt specificity is what closes those gaps.
Test a vague prompt
You have seen what Copilot produces with its own suggestions. Now test what happens when you give it a prompt, but a deliberately vague one.
Before you type anything, ask yourself: what do you think Copilot will produce if you just say "show me sales data" with no field names, no visual types, and no business question?
- In the Copilot pane's prompt input field, type the following and press Enter:
- show me sales data.
Look at what Copilot returned. The output is generic and not business-ready. You may see a single chart or a handful of visuals that do not answer any specific question.
Why is this result so generic?
Copilot had no specifics to work with. It did not know which columns you care about, which time period matters, or what chart type would answer your question.
This is exactly the gap that targeted prompts close. When you name specific fields, measures, and visual types, Copilot produces visuals that directly answer a business question instead of guessing.
Leave this page as-is. It serves as your baseline comparison for the next step, where specific prompts produce dramatically better results.
Copilot returned an error or no visuals?
If Copilot returned a message instead of visuals, try rephrasing slightly or ensure you are still connected to your Premium workspace. The prompt input field should be active and accepting text.
help me understand why Copilot did not generate a visual from my prompt in Power BI Desktop
Your baseline is set. You have seen Copilot's best guess with zero guidance and its response to a vague prompt. Next up, you will write specific prompts that name exact fields and visual types to produce a page that actually answers business questions.
Write Targeted Prompts for a Specific Page
In Step 2, you saw what Copilot produces when left to its own devices. The auto-suggested page and vague prompt both returned generic visuals that don't answer a specific business question.
The fix is prompt specificity. In this step, you'll write prompts that name real columns, measures, and visual types from your data model. The difference in output quality is dramatic.
In this step, get ready to:
- Write a targeted prompt that names exact fields and visual types.
- Compare the targeted result against your baseline page.
- Add a second prompt that builds on the same page.
Write a targeted prompt on a new page
Your baseline page exists because Copilot guessed what you wanted. Now you'll tell it exactly what to build by naming the fields and dimensions from your semantic model.
- Click the + icon next to the page tabs at the bottom of the report canvas to create a new blank page.
- In the Copilot pane on the right, click the prompt input field.
- Type the following targeted prompt and press Enter:
Create a page to analyze the sales amount, revenue, and profit margin of different products, categories, and subcategories over time and across regions.
Why does this prompt work so well?
This prompt names three specific measures (sales amount, revenue, profit margin), three dimensions (products, categories, subcategories), and two axes (time, regions). Copilot maps each term to actual columns in your semantic model and picks chart types that suit each combination.
Compare that to "show me sales data" from Step 2. Without specific field names, Copilot has to guess which of your dozens of columns matter most.
Copilot generates a full page with multiple visuals tailored to the fields you specified. You should see charts broken down by product category, time trends, and regional comparisons.
Copilot not generating visuals?
Make sure you pressed Enter after typing the prompt. If Copilot returns an error, check that your Copilot pane is still connected to a Premium workspace (look for the workspace name at the top of the pane).
If Copilot suggests topics instead of building a page, select one of the suggestions or retype the prompt with slightly different wording.
Why isn't Copilot generating visuals from my prompt?
Compare the targeted page with your baseline
Now you have two pages side by side in your report. Clicking between the page tabs at the bottom reveals the contrast between vague and specific prompting.
- Click the first page tab at the bottom of the canvas to view your baseline page from Step 2.
- Click back to the second page tab to view your targeted page.
- Notice how the targeted page contains visuals that directly answer a business question ("how does profit margin vary across product categories over time?") rather than showing generic summaries.
What should I notice?
The targeted prompt produced visuals with clear labels matching the fields you named. Copilot selected appropriate chart types for each data combination. Time-based data appears in line or area charts. Category breakdowns appear in bar or column charts. Regional data may appear on a map.
The auto-suggested baseline, by contrast, may include pie charts with too many categories or cards showing metrics you didn't ask for.
Add a card visual with a follow-up prompt
Copilot remembers the context of your current page. You can add new visuals to the same page by typing follow-up prompts without starting over.
- Make sure you are on your targeted page (the second page tab).
- In the Copilot pane, type this follow-up prompt and press Enter:
Add a card visual showing total sales amount for the current year compared to the prior year.
What does this prompt do?
This prompt names a specific visual type (card), a specific measure (total sales amount), and a specific comparison (current year vs prior year). Copilot places the new card on your existing page alongside the visuals you already generated.
You did not need to drag any fields, resize anything, or configure formatting. The prompt handled all of it.
Before you look at the result, predict what you'll see. Do you think Copilot will add a new card to the existing page, or replace something that's already there?
Look at your page now. Copilot adds the card visual to the existing layout without removing your other visuals. The card shows total sales amount with a year-over-year comparison.
Card not showing year comparison?
If the card shows only a single number without a comparison, try rephrasing: ask Copilot to show "total sales amount this year versus last year." The exact wording can affect how Copilot interprets the comparison.
If the card appeared on the wrong page, click Ctrl+Z to undo it. Switch to the correct page tab and re-enter the prompt.
Help me get Copilot to add a card visual with a year comparison.
Your targeted page now has multiple specific visuals plus a year-over-year card. Next up, you'll refine these visuals by deleting what you don't need, changing chart types, and adding interactivity with slicers.
Refine Visuals with Follow-Up Prompts
Your targeted page already looks far better than the auto-suggested baseline. But real reports require iteration.
Some visuals may use the wrong chart type for the data they show. Others might be cluttering the page without adding value. In this step, you will refine the page entirely through follow-up Copilot prompts, without ever touching the Visualizations pane.
In this step, get ready to:
- Change or delete an unhelpful visual using a follow-up Copilot prompt.
- Add a calendar year slicer to filter the entire page.
- Use undo and re-prompt to practice the iterative Copilot workflow.
Change or delete an unhelpful visual
Copilot picked chart types for you in the previous step, but some choices may not be ideal. A bar chart showing sales by geographic region, for example, communicates far better as a filled map.
- Look at your targeted page (Page 2) and identify a visual that uses the wrong chart type or is not useful.
- In the Copilot pane on the right, type a follow-up prompt that tells Copilot exactly what to change.
For example, if you see a bar chart for regional sales, try this prompt:
Change the bar chart showing sales by region to a filled map
Or if there is a visual cluttering the page, try:
Delete the pie chart
What happens when you send a follow-up prompt?
Copilot modifies the page in place. It does not create a new page or start over. Your existing visuals stay put while Copilot changes or removes only what you specified.
- Press Enter to send your prompt.
- Watch the canvas update. The visual you targeted should now reflect your instruction.
If you changed the bar chart to a filled map, you should now see a geographic map visual with regions shaded by sales amount instead of a bar chart.
Visual did not change?
Make sure your prompt references the exact visual that exists on the page. If the chart is labeled differently than you expected, try describing it by its data fields instead of its chart type.
Also note that Copilot cannot currently make styling or formatting changes. It can change chart types, add visuals, and delete visuals, but it cannot adjust colors or fonts.
Why isn't my Copilot follow-up prompt changing the visual on my report page?
Add a slicer for filtering
A slicer lets anyone viewing the report filter the entire page by a specific dimension. Adding one for calendar year means stakeholders can instantly compare performance across different years.
- In the Copilot pane, type the following prompt to add a slicer:
Add a slicer for calendar year so I can filter the entire page by year
- Press Enter to send the prompt.
- Verify the slicer appears on the canvas. It should display year values you can click to filter.
- Click one of the year options in the slicer.
All other visuals on the page should update to show data for only the selected year. This confirms the slicer is connected to the page correctly.
Why add a slicer through Copilot?
You could drag a slicer from the Visualizations pane manually. But prompting Copilot is faster and keeps your workflow consistent. Every visual on this page was prompt-driven, including the slicer.
Slicer not filtering other visuals?
Check that the slicer uses a date or year column from a dimension table that has relationships to your fact table. If the slicer uses an unrelated column, it will not cross-filter the other visuals.
Try clicking a year value and watching whether chart totals change. If nothing changes, the slicer field may not be related to the other visuals' data source.
My Copilot-generated slicer is not filtering the other visuals on the page. How do I fix this?
Use undo and re-prompt to iterate
Not every Copilot change will be perfect on the first try. The iterative workflow is: prompt, review, undo if the result is not what you wanted, then re-prompt with a different instruction.
- Pick a visual on the page and type a follow-up prompt to change it. For example:
Change the line chart to a stacked area chart
- Review the result. If it does not look right, press Ctrl+Z to undo the change.
The canvas reverts to its previous state. Your undo worked.
- Now re-prompt with a different instruction. For example:
Change the line chart to a clustered column chart
- Confirm the visual now uses the chart type you specified in the re-prompt.
Why does undo matter here?
Undo and redo work on Copilot actions just like they work on manual edits. This means you can experiment freely. If a prompt produces something unexpected, one keystroke takes you back.
Before you check the final state of your page, think about this: after all your follow-up prompts, what should Page 2 look like compared to when you started this step?
- Scan your Page 2 from left to right. Every visual on the page should be one you intentionally chose or kept.
- Confirm your page has a filled map (or your changed visual), the current year vs prior year card, a calendar year slicer, and only visuals with chart types that match your instructions.
Your refined page should look noticeably different from where it started. Generic or unhelpful visuals are gone, replaced by exactly what you asked for.
Your report page is now built exactly to your specifications. Next, you will add a narrative summary visual that writes a plain-text explanation of the data for stakeholders who prefer reading over charts.
Add a Narrative Summary Visual
Your targeted page now has exactly the visuals you asked for. But charts alone only tell half the story.
Stakeholders often want a quick written takeaway alongside the numbers. A Narrative visual auto-generates a text summary of the data on the page. This lets Copilot produce prose, not just visuals, from your semantic model.
In this step, get ready to:
- Place a Narrative visual on the canvas and generate an AI summary.
- Review and verify that the summary references real numbers and trends.
- Save the finished report as a .pbix file.
Place the Narrative visual on your page
The Narrative visual lives in the Visualizations pane, just like a bar chart or card. Once placed on the canvas, it connects to Copilot and writes a summary of whatever other visuals are on the page.
- Make sure you are on your targeted report page (Page 2).
- In the Visualizations pane on the right, click the Narrative icon (it looks like a small text block).
- Power BI places an empty Narrative visual on the canvas.
What if I see a Choose a narrative type dialog?
If a dialog appears asking you to choose between Copilot mode and Custom mode, select the Copilot button. With the latest version of Power BI Desktop and a Copilot license, the visual opens in Copilot mode by default and you may skip this dialog entirely.
- In the Create a narrative with Copilot dialog, select the option to summarize the current page.
- Click Create.
- If prompted to accept Copilot terms, click Accept to continue.
Copilot generates a written summary inside the Narrative visual. You should see text appearing that describes key figures and trends from the other visuals on the page.
What does the Narrative visual do?
The Narrative visual reads the data behind every other visual on the page. It then writes a plain-text explanation referencing specific numbers, comparisons, and trends.
Footnotes in the generated text link back to the specific visuals the numbers came from. Hover over a footnote to see which visual it references.
Narrative visual is empty or shows an error?
- Make sure other visuals exist on the same page. The Narrative visual needs content to summarize.
- If you see a message about content Copilot cannot work with, try selecting fewer visuals or simplifying the prompt scope in the dialog.
- Confirm that your Copilot workspace is still connected by checking the Copilot pane on the right.
Still stuck? Why is my Narrative visual not generating a summary in Power BI?
Review the generated narrative
A good narrative summary references specific numbers and comparisons from your visuals. It should not be a vague description of what charts are on the page.
- Read through the generated text. Look for specific sales amounts, percentages, and regional comparisons that match the data in your other visuals.
- If the summary is too generic, try resizing the Narrative visual to give it more space on the canvas, then click Refresh inside the visual to regenerate.
- You can also refine the summary by typing a follow-up instruction in the Adjust your summary with Copilot field inside the visual.
Refine with a focused prompt
Try typing something like "Shorten this summary and make the key information bold" to see how Copilot reformats the text. You can iterate just like you did with chart visuals in the previous step.
Your Narrative visual should now show a concise, data-driven summary that references specific numbers and trends from the charts beside it.
Save your finished report
You have built a multi-page report entirely through Copilot prompts. The final step is saving your work as a .pbix file so you can reopen, publish, or share it later.
- Click File in the top menu bar.
- Click Save As.
- Name the file AdventureWorks-Copilot-Report.pbix and choose a location on your computer.
- Click Save.
Before you confirm the save, what do you expect to see in the title bar after saving?
The title bar of Power BI Desktop now shows AdventureWorks-Copilot-Report instead of "Untitled". This confirms your report is saved locally.
Title bar still shows Untitled?
- Make sure you clicked Save As (not just Save) if this is your first save.
- Check the folder you chose to confirm the .pbix file exists there.
Need help? Why isn't my Power BI report saving with the correct name?
Your report is saved. You now have a finished .pbix file with two pages, targeted visuals, and an AI-generated narrative summary. Next up, you will take on a Secret Mission to control exactly which visual types Copilot selects for your data.
Secret mission
Control Copilot's Visual Choices with AI Instructions
By default, Copilot picks whatever visual type it thinks is best. What if you could tell it exactly which chart to use for specific data combinations? AI Instructions let you override Copilot's defaults and enforce visualization standards across your reports.
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, so there are no ongoing costs.
Resources you used:
- AdventureWorks-Copilot-Report.pbix file saved on your local machine.
- AdventureWorks Sales.xlsx sample data file downloaded from GitHub.
- Premium workspace pairing for Copilot capacity (uses your existing capacity, no additional cost).
Keep everything running
No action needed. Choose this if you plan to continue refining your report or want to practice more Copilot prompts.
- Your .pbix file stays on your local machine at no cost.
- Copilot usage is included in your existing Premium capacity. There is nothing extra to pay.
- You can reopen the file any time to add pages, refine prompts, or publish to the Power BI service.
Pause - I'll come back to this later
Close Power BI Desktop to free up memory. Your files remain on disk for when you return.
- Save any unsaved changes in Power BI Desktop (Ctrl+S).
- Close Power BI Desktop.
- Your AdventureWorks-Copilot-Report.pbix and AdventureWorks Sales.xlsx files remain on your machine, ready to reopen later.
Delete - I don't want to use this again
Remove all project files from your computer. This cannot be undone.
- Close Power BI Desktop if it is still open.
- Navigate to the folder where you saved AdventureWorks-Copilot-Report.pbix and delete it.
- Navigate to the folder where you downloaded AdventureWorks Sales.xlsx and delete it.
- Empty your Recycle Bin to permanently remove the files.
What about my Premium workspace?
The workspace you paired with Copilot is your existing Premium workspace. It was not created by this project, so there is nothing to delete or unpair.
Nice Work!
Nice Work!
Nice work! You just built a complete multi-page sales report using nothing but Copilot prompts in Power BI Desktop.
You've learned how to:
- Build a full report from a blank canvas using only Copilot prompts, without dragging a single field onto a visual.
- Write targeted prompts that name specific fields and visual types, producing business-ready visuals instead of generic defaults from vague requests.
- Add an AI-generated narrative summary visual that auto-generates a written explanation of the data on your report page.
- Secret Mission: Controlled Copilot's visual type selections using AI Instructions to enforce visualization standards across specific field-measure combinations.
Ready to quiz yourself?