◇ OpenCyber Academy
Engineering · Chapter 29 · English

Chapter 29 — Data governance: measurement

Open, free learning for anyone who wants to protect people and technology. No account is required to read this text or its worked answers.

Chapter 29 — Data governance: measurement

Lesson map

Lesson 29 published. Map, example, EX085.

flowchart TD
  N0["Learning outcomes"]
  N1["29.1 The service level"]
  N2["Lab — Feed arrivals against a 06:00 service level ov"]
  N3["29.2 Results"]
  N4["29.3 Finding the cause"]
  N5["29.4 Reporting service"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5
  N5 --> EX["Worked example"]
  EX --> Q["Exercise EX085"]

Logical drawing

flowchart LR
  N0["Learning outcomes"]
  N1["29.1 The service level"]
  N2["Lab — Feed arrivals against a 06:00 service level ov"]
  N3["29.2 Results"]
  N4["29.3 Finding the cause"]
  N5["29.4 Reporting service"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> Q["EX085"]
[Learning outcomes]
    |
    v
[29.1 The service level]
    |
    v
[Lab — Feed arrivals against a 06:00 service level ov]
    |
    v
[29.2 Results]
    |
    v
[29.3 Finding the cause]
    |
    v
[29.4 Reporting service]
    |
    v
[Worked example] --> [Exercise EX085]

Learning outcomes

You will (1) measure timeliness against a service level; (2) find patterns in breaches; (3) report service performance.

29.1 The service level

The daily supplied-volume feed must reach the warehouse by 06:00 so the morning leakage view is ready for network engineers. Kofi measures arrival times over ninety synthetic days. He records the time each feed lands and compares it with the deadline. He explains that a service level is only useful if it is measured continuously and reported to both the supplier and the consumer, so each side knows whether the agreement is being kept. The supplier here is network operations. It runs the export job each morning.

Lab — Feed arrivals against a 06:00 service level over 90 synthetic days

"""Measure daily feed timeliness against a 06:00 service level over 90 synthetic days (stdlib only)."""
import random
random.seed(19)
arr = [random.gauss(5.2, 0.6) + (1.5 if 40 <= d < 47 else 0) for d in range(90)]   # hours after midnight
late = [d for d, a in enumerate(arr) if a > 6.0]
print(f"days {len(arr)}; feed after 06:00 on {len(late)} days ({100*len(late)/len(arr):.1f}%)")
print(f"late days in the week 40-46: {sum(1 for d in late if 40 <= d < 47)} of 7")

Run with python3 lab_sla.py. Verified output:

days 90; feed after 06:00 on 11 days (12.2%)
late days in the week 40-46: 7 of 7

29.2 Results

The lab shows the feed arrived after 06:00 on 11 of 90 days, or 12.2 percent. The service level target is 95 percent on time, which allows about four or five late days; Tidewater achieved 87.8 percent. All seven days in the week from day 40 to day 46 were late. The other four late days were scattered. Kofi notes that a single summary figure hides this pattern, which points to a specific event rather than general slowness. Kofi plots the daily arrival times so that the cluster is visible at a glance to every reader.

29.3 Finding the cause

Kofi investigates the late week with network operations. During that week, a control system upgrade added a backup job that ran before the export, delaying the feed by about an hour and a half every day. Nobody connected the upgrade to the late feed because the warehouse team was not told about the change. He recommends that changes affecting the export schedule notify the data owner, and that the upgrade's backup job be moved. The backup job is rescheduled to after the export.

29.4 Reporting service

Kofi designs a monthly service report showing on-time percentage, a daily arrival chart with the deadline marked, clusters of breaches and causes found. The report goes to the network operations owner and the data consumers. Prof. Varga notes that showing the daily chart rather than only the percentage lets readers see patterns themselves, and that service reports should explain breaches rather than merely count them, since counting alone gives no basis for improvement. The first report is discussed at the monthly operations meeting.

Worked example

Kofi measures 11 late days of 90 (12.2 percent), with all seven late in week 40 to 46, traces them to an upgrade's backup job and designs a monthly service report with a daily chart.

Synthetic case. Arrivals are synthetic; outputs come from lab_sla.py.

Errors and limits

Averages hide clusters; plot daily values.

Exercises

Continue studying — lesson 29 (chapter 29 of 50)

← Chapter 28 · Course chapter index · Chapter 30 →

Continue to the next authored lesson.