/* case study · data analysis */

Iris Waves MPS Lineup

Consolidating fleet, contract and print-volume data into defined, explainable metrics. Along the way, a 'profitability' figure turned out not to be a real calculation at all.

Role:Data Analyst (metric auditing, integration, reporting)Domain:Fleet analytics for managed print servicesScale:1,000+ machines, hundreds of contracts
9
reporting views consolidated
2
source datasets merged
1
undefined metric found & redefined
5
contract-risk buckets from a raw date field

The investigation

It started as a simple question from leadership: what does the profit number on this dashboard actually represent? Tracing it back through the data model, the answer turned out to be nothing solid. The figure everyone trusted had no definition underneath it.

finding

The Margin2 field driving the Profitability page wasn't a calculation. It was a raw pass-through. Whatever number sat in a column alternately labeled Margin2 / Profit / Final Profit / Net Profit that month got summed, averaged and charted as a KPI, with no cost basis, no formula, and no link to what was actually billed.

Auditing every consumer found three places relying on it: the revenue-and-margin trend chart, the per-client profitability ranking, and the headline "Total Profit" metric. All had to change together.

OLD
margin = row.Margin2
// opaque import; meaning drifts month to month
NEW
margin = billed_revenue
       − (usage × cost_per_page)

// billed_revenue: companion Billing System invoices
// cost_per_page:  user-configurable
// legacy rows:    fall back explicitly, never fake 0

Why this mattered

A headline metric with nothing underneath it isn't just wrong once. It's wrong everywhere it's used, and it erodes trust in every other number on the dashboard. Auditing the field meant finding all three places quietly depending on it and fixing them together, so they'd agree with each other. The real deliverable wasn't a chart; it was a number leadership could actually defend.

Data integration

step 01
Billing System per-category revenue
step 02
CSV export (defined schema)
step 03
Column-alias mapping on import
step 04
Join with volume dataset (client + serial + period)
step 05
Real margin calculated

Alias map handles header variants like "A4 Colour Amount" / "A4 Color Revenue" / "Colour A4 Amount" → one canonical field.

Contract renewal risk

lineup.iris-waves.local/renewals
Overdue
82%
0–30 days
64%
31–60 days
46%
61–90 days
30%
90+ days
18%
Illustrative reconstruction (demo data)

Client concentration

lineup.iris-waves.local/concentration
42%
34%
24%
FreeCharge
42% of volume
Hemata
34% of volume
Plasma Labs
24% of volume
Illustrative reconstruction (demo data)

CEO dashboard KPIs

Total Machines
~1,000
Total Clients
120+
Total Locations
300+
Total Print Volume
millions of pages
Avg Profit / Print
configurable
Largest Client
FreeCharge (demo)
Illustrative reconstruction. Demo / representative values, not client data.

Outcomes

  • Headline profitability metric went from unexplainable imported number to defined, auditable calculation
  • Contract-lapse risk visible weeks ahead, not at renewal
  • Revenue concentration computed automatically from source data
  • Two disconnected systems now share one consistent revenue figure

Reflection

This project reinforced something I now treat as a rule: a metric you can't trace to a formula and a source isn't a metric, it's a rumour. Redefining margin from a real billed-revenue figure, sourced from the companion billing system rather than a re-keyed estimate, closed a data-integrity gap that had existed since the two tools were first built separately.

Skills & tech

Metric Definition & AuditingData Integration / ETLSchema & Header NormalizationConcentration AnalysisRisk BucketingCross-System Reconciliation