Resume Leap — fictional support-ticket analysis exercise
Editorial revision: October 10, 2026

Every record is fictional. This fixed fixture is an instructional first-party
example, not customer data, a representative sample or an employer benchmark.
It establishes no operational improvement, revenue effect or hiring outcome.

Files
- support-tickets.csv: 48 tickets; fields ticket_id, opened_at, resolved_at,
  channel, issue_category. Timestamps are ISO 8601 UTC. Two resolution fields
  are blank. Channels and categories are fabricated, not observed frequencies.
- analysis.sql: readable SQLite queries for overall, channel and category views.
- README.txt: provenance, limitations and the exact reproduction command.

Calculation
Volume includes all 48 records. Resolved counts use COUNT(resolved_at).
Mean elapsed resolution hours = AVG((julianday(resolved_at) -
julianday(opened_at)) * 24), rounded to two decimal places. Blank resolution
values are loaded as NULL, so the two unresolved tickets are excluded from means
but remain in volumes. Times measure elapsed calendar hours, not business hours.
The arbitrary fictional durations do not justify channel-quality comparisons.

Reproduce (Python 3, standard library only; no packages or services required)
Extract this ZIP, open a terminal in its directory and run:

python3 - <<'PY'
import csv
import sqlite3
from pathlib import Path

db = sqlite3.connect(":memory:")
db.row_factory = sqlite3.Row
db.execute("CREATE TABLE tickets (ticket_id TEXT PRIMARY KEY, opened_at TEXT NOT NULL, resolved_at TEXT, channel TEXT NOT NULL, issue_category TEXT NOT NULL)")
with Path("support-tickets.csv").open(newline="", encoding="utf-8") as source:
    rows = list(csv.DictReader(source))
assert len(rows) == 48
assert sum(not row["resolved_at"] for row in rows) == 2
db.executemany("INSERT INTO tickets VALUES (?, ?, ?, ?, ?)", [
    (row["ticket_id"], row["opened_at"], row["resolved_at"] or None,
     row["channel"], row["issue_category"]) for row in rows
])
for statement in Path("analysis.sql").read_text(encoding="utf-8").split(";"):
    if statement.strip():
        result = db.execute(statement)
        if result.description:
            print([column[0] for column in result.description])
            for row in result:
                print(dict(row))
PY

The published guide and chart report the outputs of these same queries. Review
the data and SQL instead of presenting the exercise as commercial employment.
