Data Visualization 2024

Windows 11 Migration Dashboard

Replacing weekly status spreadsheets with a self-updating migration tracker

100% Time Saved
Auto Daily Updates
5min Refresh Cycle

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

Diagram: Data flow from Lansweeper SQL to browser dashboard with scheduled processing Lansweeper SQL Server Scheduled Task Daily @ 6AM CSV Export Network Share PowerShell Process & Delta Change Log CSV + HTML IIS Server Static Hosting Dashboard Chart.js Papa Parse CSV → Data Browser Auto-refresh 5min Fully automated · Zero manual intervention

Dashboard Components

Diagram: Dashboard UI components showing metrics, charts, filters, and data table Windows 11 Migration Dashboard Total Assets 1,247 Windows 11 892 Windows 10 355 Progress 71.5% 71.5% OS Distribution By Location Top Models Search: OS: Location: Export Sortable table with pagination · CSV export

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

HTML5 CSS3 JavaScript Chart.js Papa Parse Lansweeper SQL Server PowerShell IIS Task Scheduler

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.