Profile the extract before looking for patterns
Learn the reasoning. Try the task. Compare your answer.
Prepared for DataCareerHub · Curriculum version 2026-10-15.2
By the end of this lesson
- Reconcile rows, keys, types and missing fields before interpretation.
- Separate observed zeros, missing observations and invalid values.
- Maintain an exploration log with checks and actions.
Harbor Helpdesk · UTC · Snapshot 22 June 2026 00:00 · Prepared fictional extract · No Python or SQL required.
Understand the method
Exploration starts by finding out what the extract can support. A chart can be technically correct yet misleading if the source contains repeated tickets, mixed time zones or a denominator that silently drops unresolved cases. Begin with a small profile that describes the unit, scope, completeness and validity of the records. This is not paperwork to complete after the interesting analysis; it is how you decide whether the apparent patterns deserve attention.
Carry the plan into the evidence
This module reuses Harbor Helpdesk's 24-ticket source from Module 1 without alteration. One row is one ticket, not a customer or a message. The creation cohorts are [1 June 2026 00:00, 8 June 00:00) and [8 June 00:00, 15 June 00:00), UTC. The fixed observation cutoff is 22 June 2026 00:00 UTC. All tickets have sufficient follow-up for a 72-hour outcome. The small extract is deliberately constructed teaching data, not a representative business sample.
Read the dictionary before importing. Ticket identifiers and categories are text. Event fields are UTC timestamps, and ratings are integers from one to five when observed. Some spreadsheet tools import ISO timestamps as text; verify parsing and timezone interpretation before subtracting cells. Do not assume a displayed date means the underlying value is a valid date. A calculator and the worked duration list are sufficient for this lesson; the optional Python source reproduces the calculations locally.
Write a short profile
Count 24 records and 24 unique nonblank ticket IDs. Reconcile 12 tickets to each cohort. There are 12 email tickets and 12 chat tickets overall, but those balanced totals conceal different weekly compositions. Check each response timestamp against creation and the cutoff. Check resolution only where recorded. Count missing values by field and cohort rather than relying on one overall completeness percentage.
The source has all 24 first responses, six blank first-resolution timestamps and eight blank satisfaction ratings. Under this teaching dictionary, a blank resolution means no first resolution recorded by the snapshot; mature unresolved tickets remain in the resolution denominator. A blank rating is unobserved satisfaction, not zero satisfaction. Neither condition authorizes deleting the whole ticket from all measures. Zero elapsed hours, if present in another extract, would be a numeric observation requiring a check for automated responses, not an empty field.
Pair every check with an action
Test unique keys, documented categories, parseable UTC timestamps, nonnegative elapsed times, events no later than the snapshot and sufficient outcome maturity. If a creation timestamp cannot be parsed, quarantine the row from cohort calculations and seek correction while retaining the original. If a key repeats, investigate whether records are copies or conflicting events; do not automatically keep the first one. The supplied source is prepared and passes these checks. Do not invent defects or a cleaning story to make the exercise look more substantial.
Record the file/version, check, observed result, analytical implication and next action in an exploration log. Your profile should end with a readiness decision: proceed with the bounded descriptive comparisons while retaining the documented blanks and limitations. It should not end with “the data is perfect.” Missing routing exposure, staffing and a longer baseline still limit interpretation, even when every supplied timestamp is internally consistent.
Practical exercise
Use profile_checklist.txt and the unchanged tickets.csv. Record row/key counts, cohort counts, category values and missing counts for responses, resolutions and ratings. Write six checks with a pass condition and an action for failure.
- Explain why six missing resolution timestamps do not justify dropping six tickets.
- Distinguish a blank rating from an observed zero-duration response.
- State what the prepared source does not prove about completeness of the real business.
Retain the original file and label your exploration notes separately.
Open the worked solution
Profile: 24 records, 24 unique nonblank keys, 12 tickets per creation cohort, email/chat categories, general/billing queues and high/normal priorities. First responses observed: 24/24. Missing first resolutions: six, three per cohort. Missing ratings: eight, four per cohort. Every record is mature for 72 hours at the stated cutoff.
Checks: key uniqueness → investigate conflicts; parseable UTC dates → quarantine malformed rows; creation in cohort interval → count exclusions; events after creation and no later than cutoff → investigate chronology; categories/ratings within dictionary → flag unsupported values; counts by cohort and maturity → reconcile before rates. Prepared source passes these conditions. Missing ratings remain outside the rating mean only; mature non-resolutions stay in the guardrail denominator. None of this establishes that the fictional file covers the whole organization's activity or identifies routing exposure.
One more question.
How these learning materials are prepared and maintained · Report a correction: support@datacareerhub.io
Read and practice without an account. Sign in with an existing account to save lesson completion.
Next lesson →Harbor Helpdesk is a fictional teaching case. Descriptive comparisons do not establish routing causality. Portfolio practice is not a claim of client work or an accredited qualification. Explore practical lessons, worked examples and projects. Follow a published path, practise the method and build work you can explain.