Sorting Ticket Rows Into a Report Worth Reading
A weekly report begins with one clear question
Most teams that produce a weekly report start with a spreadsheet full of ticket rows, and most of them make the same mistake: they treat the spreadsheet as the report. The spreadsheet is a working surface, a place to collect facts as they change during the week. The report is a short, shaped argument that tells a reader what happened, what is stuck, and what deserves attention next. Keeping those two jobs separate is the first habit worth building, because it frees you to clean and reshape the data without worrying that you are breaking the document people actually read.
Before you touch a single column, decide what question the report must answer. A report that tries to answer ten questions answers none of them. Newcomers often aim for completeness and end up with a wall of numbers that no manager can act on. Pick one primary question, such as what moved this week and what did not, and one secondary question, such as where the team spent its effort. Write those questions at the top of your working notes so every later choice, from sorting to phrasing, has something to measure against.
It also helps to name the reader out loud. A report for an engineering manager can carry detail about owners and blockers, while a report for a support lead should emphasise volume, age, and customer impact. The same rows can serve both audiences, but the ordering, the emphasis, and the length will differ. Once the reader and the question are fixed, the rest of the work becomes a series of small, defensible decisions rather than a weekly guessing game.
Good column names answer questions instead of preserving habits
If a column exists only because someone created it years ago, rename it or drop it. A clean sheet for weekly reporting usually needs a small, stable set of fields, and each one should map to something a reader might ask about.
- Ticket identifier so rows can be traced back to the source system.
- Short title written in plain language rather than internal shorthand.
- Owner, filled in for every row without exception.
- Status, taken from one agreed short list.
- Opened date and last touched date, recorded in one format.
- Category, chosen from a fixed set of broad themes.
- Resolved date, left empty until the work is genuinely done.
- Age and days since last touch, calculated from the two dates.
Status is the field that most often ruins a weekly report. When people type whatever they feel like typing, the counts stop meaning anything. Agree on a short vocabulary, for example open, waiting, in progress, resolved, and closed, and refuse to extend it without a team decision. A ticket waiting on a customer is different from a ticket waiting on an engineer, and that difference is exactly what a weekly report should reveal. Consistency here is cheap and pays for itself every week.
Dates deserve the same discipline. Use one format everywhere, and record the moment of the last meaningful update rather than the last time someone opened the row. From those two dates you can derive an age column and a days-since-last-touch column, both of which do more useful work in a report than any amount of colour coding. Keep every owner field filled, because an empty owner hides a ticket from every sorting and grouping you will later attempt.
Sorting by age surfaces the work people avoid
Filtering by the current week tells you what arrived; sorting by age tells you what is rotting. Both matter, but the second one is the pattern people prefer not to look at. A ticket that has been open for forty days and untouched for two weeks is a fact about the team and not only about the customer, and a report that names it plainly earns more trust than a report full of this week's highlights.
A simple way to see the pattern is to sort the sheet by days since last touch and read the first dozen rows. Then group those rows by category or owner and look for clusters. Clusters reveal causes: a queue that waits on one approver, a type of ticket that always needs a second team, a customer segment with recurring confusion. Each cluster deserves one sentence in the report, and each sentence should name a next step and the person who owns it.
Comparison is the other half of the picture. Keep a saved snapshot from the previous week so you can say that aged tickets grew, that resolution time fell, or that one category doubled. Avoid comparing too many measures at once, since two or three well-chosen comparisons are easier to read and harder to misinterpret. When a number moves sharply, write the reason beside it, even when the reason is simply that a holiday shortened the working week.
Narrative sentences turn raw counts into decisions
A number on its own is neutral and therefore easy to ignore. A sentence that explains what the number means, why it changed, and what should happen next gives the reader something to act on. The pattern is simple: state the finding, give the reason when you know it, propose an action, and name the owner. Keep the sentences short, because a weekly report competes with a hundred other messages arriving in the same hour.
Many teams now draft these sentences with the help of a language model before editing them by hand, and that workflow depends on the model actually being the one you asked for. BestRelay, the quality-first relay behind this article, forwards each request to the official model named in it and makes no substitution, so the summary you review is the summary you requested. It works with Claude Code, Codex, Gemini CLI, and any OpenAI SDK, and a request naming Claude Opus 5.5 reaches Claude Opus 5.5. Billing is pay-as-you-go from the token counts the provider reports, with cache reads and writes priced separately, and members earn a referral commission when people they invite top up.
Treat any generated draft as a first pass. Check every figure against the sheet, because a confident sentence carrying a wrong number is worse than a plain number on its own. Trim adjectives, keep the verbs active, and cut any sentence that repeats a fact the table already shows. If you want to try the drafting step on your own ticket data, create a BestRelay account.
Automation keeps the schedule while judgment keeps the trust
Once your columns are stable, refreshing the sheet becomes a small weekly ritual instead of a rebuild. Save a template with the column order, the status list, and the snapshot folder already in place. Automate the collection of new rows and the calculation of age columns if you can, but leave the sorting decisions and the writing to a person who remembers last week's context and the conversations behind it.
Review before sending, always. Read the report once as if you were the reader you named at the start, and ask whether the first paragraph alone would be useful. Then check the arithmetic on two or three rows by hand. A single inconsistent date or a duplicated ticket can quietly undermine the whole document, and credibility is the only real currency a weekly report has. Archive each report beside its snapshot so a future question can be answered with evidence rather than memory.
Finally, resist the urge to grow the report. Length is not rigour, and a weekly report that stays near one page will be read while one that runs to five will be skimmed. Keep the question fixed, the columns clean, the age of the work visible, and the sentences decisive. Follow that routine for a few weeks and the spreadsheet stops being a chore, because the report it produces is genuinely useful to the people who receive it.