Windows 11 Migration Dashboard
Replacing weekly status spreadsheets with a self-updating migration tracker
The Problem
OS migrations stall without sustained executive attention. But the manual reporting that keeps leadership engaged was eating 2-4 hours every week.
- Weekly status updates took 2-4 hours of manual spreadsheet work
- No historical tracking to show velocity or identify stalls
- Asset data lived in Lansweeper but required SQL knowledge to extract
- Couldn't answer "which locations are behind?" without extensive analysis
- No visibility into which device models had the lowest migration rates
Solution Architecture
Data Source
Daily SQL query pulls Windows 10/11 assets with full metadata from Lansweeper
Processing
PowerShell moves exports, calculates deltas, updates change log, generates HTML
Visualization
Client-side Chart.js renders interactive doughnut, bar, and pie charts
Delivery
Static HTML on existing Lansweeper IIS with 5-minute auto-refresh
Data Pipeline
Dashboard Components
Key Features
Executive Metrics
Total assets, Windows 11/10 counts, migration percentage, velocity tracking
Interactive Charts
OS distribution doughnut, location bar chart, model analysis, manufacturer breakdown
Smart Filtering
Real-time search, dropdown filters, sortable columns, CSV export
Auto-Refresh
5-minute polling with Last-Modified check to avoid unnecessary reloads
Change History
Daily snapshots, delta calculations, velocity trends, rollback detection
Zero Backend
Papa Parse renders thousands of records client-side. No server logic needed.
Results
| Metric | Before | After |
|---|---|---|
| Status report generation | 2-4 hours | Instant |
| Update frequency | Weekly (manual) | Daily (automatic) |
| Historical tracking | None | Full audit trail |
| Location visibility | Required SQL | One-click filter |
| Stakeholder self-service | None | Direct access |
Technologies
Lessons Learned
Use what you have
Lansweeper already had everything needed. The gap was visualization, not data collection.
Browser-side scales
Papa Parse handles thousands of CSV records client-side. No backend required.
Deltas beat totals
"We migrated 15 devices yesterday" is more actionable than "we're at 45%."
Self-service shortens meetings
Once stakeholders could check progress themselves, status meetings got shorter.