Detailed Step-by-Step: Build an Attractive Power BI Dashboard from /AAW/Dashboard
Source folder: smb://192.168.1.165/AAW/Dashboard (mounted as /Volumes/AAW/Dashboard)
Last Updated: Friday, 02/27/2026
What this guide uses:
Student Data Export (3).csv (main data)
DASHBOARD_KPI_SPEC.md (KPI definitions)
POWERBI_DAX_MEASURES.md (measure templates)
POWERBI_DASHBOARD_DESIGN_PLAN.md (visual layout/spec)
- Code maps: disability, ethnicity, and LRE placement CSVs
Step 1) Prepare your local files
- Open Finder → Go to folder:
/Volumes/AAW/Dashboard.
- Confirm these files exist:
Student Data Export (3).csv
DISABILITY_CODE_MAP.csv
ETHNICITY_CODE_MAP.csv
LRE_PLACEMENT_CODE_MAP.csv
- Copy them into a stable local working folder (optional but recommended), e.g.:
~/Documents/PowerBI/AAW-Dashboard/.
Step 2) Create a new Power BI report
- Open Power BI Desktop.
- Create a new report.
- Save immediately as:
AAW_Public_Dashboard.pbix.
Step 3) Load data files
- Home → Get Data → Text/CSV.
- Load
Student Data Export (3).csv.
- Load each mapping CSV:
DISABILITY_CODE_MAP.csv
ETHNICITY_CODE_MAP.csv
LRE_PLACEMENT_CODE_MAP.csv
- Click Transform Data to open Power Query.
Step 4) Clean and type fields in Power Query
4.1 Student table cleanup
- Ensure
SSDID is text or whole number consistently.
- Convert date columns to Date type:
DOB, iepDueDate, ReevalDueDate.
- Convert numeric text to decimal/whole number:
TotalIEPMinutes, RelatedServiceMinutes, LRE, SESPercentage.
- Optional rename for clarity:
PrimaryDis → PrimaryDisabilityCode
SecondDis → SecondaryDisabilityCode
ThirdDis → TertiaryDisabilityCode
AttendingSchooldId keep note: spelling appears source typo
4.2 Mapping joins
- Merge Student table with disability map on
PrimaryDis.
- Merge with ethnicity map on
Ethnicity.
- Merge with LRE map on
LRE (cast to matching type first).
- Expand useful display columns (e.g., short labels + expanded labels).
4.3 Load model
Step 5) Model setup and relationships
- Open Model view.
- Verify one-to-many from each map table to student table.
- Single direction filter from maps to student fact table.
- Hide technical columns not needed in visuals.
Step 6) Add KPI DAX measures
Create a new measure table called Measures, then paste/adapt these core measures (from your local DAX spec):
Total Students = DISTINCTCOUNT(Students[SSDID])
Active IEP Students =
CALCULATE(DISTINCTCOUNT(Students[SSDID]), Students[iepStatus] = "ACTIVE")
IEP Service Rate % = DIVIDE([Active IEP Students], [Total Students])
Inclusion 80+ Count =
CALCULATE(DISTINCTCOUNT(Students[SSDID]), Students[iepStatus]="ACTIVE", Students[LRE]="1100")
Inclusion 80+ Rate % = DIVIDE([Inclusion 80+ Count], [Active IEP Students])
Mostly Separate (<40) Count =
CALCULATE(DISTINCTCOUNT(Students[SSDID]), Students[iepStatus]="ACTIVE", Students[LRE]="1301")
Mostly Separate (<40) Rate % = DIVIDE([Mostly Separate (<40) Count], [Active IEP Students])
Add due-date and transition/ESY/related-services measures from POWERBI_DAX_MEASURES.md.
Public suppression rule (required)
Suppression Threshold = 10
Inclusion 80+ Rate % (Public) =
VAR n = [Active IEP Students]
RETURN IF(n < [Suppression Threshold], BLANK(), [Inclusion 80+ Rate %])
Step 7) Build the dashboard layout (attractive one-page design)
Follow your design plan in this exact section order:
- Header band: title + last refresh + compact slicers (District, School, Grade, Ethnicity, Disability).
- KPI card row (6 cards):
- Active IEP Students
- IEP Service Rate %
- Inclusion 80+ Rate %
- Mostly Separate (<40) Rate %
- Transition Services Rate %
- ESY Eligibility Rate %
- Placement mix section: 100% stacked bar + donut by LRE categories.
- Supports section: clustered bars by grade + average minutes cards.
- Timelines section: IEP/Reeval due counts by school with urgency colors.
- Equity section: matrix by ethnicity with suppression-aware public measures.
Step 8) Styling for a polished look
- Use rounded cards (10–12 px), subtle shadow, high contrast text.
- Color semantics:
- Green: Inclusion 80%+
- Blue: neutral primary metrics
- Amber/Orange: watchlist metrics
- Red: urgent due-date visuals
- Typography: Segoe UI, large KPI values (28–36 pt), concise labels.
- Avoid internal jargon on visible labels (use parent-friendly language).
Step 9) Add interactions and usability
- Enable cross-filtering across visuals.
- Create tooltip pages with plain-language KPI definitions.
- Add a “Reset filters” button in top-right.
- Build mobile layout (card-first arrangement).
Step 10) QA checklist before publish
- KPI values match formulas in
DASHBOARD_KPI_SPEC.md.
- Subgroup suppression (
n < 10) works in all public breakdowns.
- Due-date metrics only count non-blank dates and correct windows.
- LRE and disability labels map correctly from code tables.
- Filters behave consistently and don’t produce contradictory totals.
Step 11) Suggested report page set
- Public Overview
- School Comparison
- Disability & Placement Detail
- Timelines & Caseload Management (internal)
Outcome: Following this guide gives you a clean, stakeholder-friendly Power BI dashboard built directly from your AAW folder specs and data.