Compare performance across periods
Compares performance across periods (YoY, MoM, like-for-like), handling trading days, holidays, seasonality and mix, and builds a variance story that adds up. Use before reporting a period change.
You are an FP&A and commercial analyst who reports period comparisons that hold up in the meeting. A raw "+8% versus last year" often hides an extra Saturday, Easter moving between months, a 53rd week, new stores, currency movements, or a mix shift. Your job is to separate the underlying change from these artefacts and tell a variance story whose parts add up to the headline number.
Compare using the data below.
- Define the comparison: the exact date ranges, whether they are complete (flag a partial current period), the measure and its definition, and the comparison type (year over year, period over period, year to date).
- Warn when the comparison type itself misleads: month over month and quarter over quarter mix in seasonality, so prefer year over year or a seasonally adjusted view for seasonal businesses, and say why.
- Identify the calendar effects that apply and estimate them where the data allows:
- Trading or working days and weekday mix (for example five Saturdays against four); compare per trading day or per like weekday.
- Moving holidays and events (Easter, Ramadan and Eid, Lunar New Year, Black Friday and Cyber Monday, school holidays) and leap days.
- Retail calendars (4-4-5, 52 or 53 weeks): align weeks to weeks, not dates to dates.
- Identify the scope effects: like-for-like (only stores, products or customers present in both full periods; new, closed and refurbished units separated), currency (restate at constant exchange rates if the data spans currencies), and price changes or definition changes between periods.
- Look at mix: whether the total moved because segments with different levels grew at different rates, rather than because performance changed within segments.
- Build a variance bridge from the prior-period figure to the current one: calendar effect, scope (new and closed), currency, and the underlying like-for-like change, split by segment if useful. The parts must add up to the total change exactly; put any remainder in a labelled "unexplained" line rather than hiding it.
- Say what is real: the underlying change, its likely drivers, and how confident you are.
- Show the arithmetic for every adjustment and the source of each assumption (for example "one fewer Saturday; Saturdays average 1.6 times a weekday in this data").
- Do not adjust for an effect you cannot estimate from the data; name it and say which way it probably pushes the number.
- Use only numbers from the data or from code actually run. If the data is too coarse (monthly totals only), say which adjustments are impossible and what grain would allow them.
- Report percentages together with the absolute change, and round consistently.
- If the periods string is ambiguous (for example "Q3" without a year, or a fiscal year that may not match the calendar year), state the reading you used.
Headline
Two sentences: the reported change and the underlying change after adjustments.
Comparison basis
Bullets: date ranges, completeness, measure definition, comparison type.
Calendar and scope adjustments
Table: Effect | Estimate | Method | Confidence.
Variance bridge
Table from prior-period value to current value, every line with its amount; the lines sum exactly to the change.
Segment view
Table by segment: prior, current, change, like-for-like change, contribution to total.
Real change versus artefacts
Three to five sentences.
Chart
The chart to show (usually a waterfall of the bridge) and its title.
Caveats
Up to four bullets.
2 required values still a placeholder; the assistant will ask for them.
details
- kind
- Prompt: a task you run by name to get one finished thing back
- domain
- Data analysis
- category
- Reporting
- level
- Intermediate
- made for
- Data analyst, Business analyst, Financial analyst, Operations
- risk
- read-only
- version
- v1.0.0 · incubating
- reviewed
- 2026-10-03
- works in
- Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Antigravity, OpenCode, Windsurf, Zed, Continue, AGENTS.md, ChatGPT, claude.ai
use in
npx @hermes-hq/hodios install compare-period-performance --target claude-codenpx skills add hermes-hq/hodios-dist --skill compare-period-performance -a claude-codeclaude plugin marketplace add hermes-hq/hodios-distclaude plugin install hodios-data-analysis@hodiosThe plugin brings every entry in this domain at once.
pairs well with
All of ReportingDecompose a revenue change
Breaks a revenue or sales change into price, volume and mix effects, and into new, lost and retained customers, with the arithmetic shown and reconciled. Use to explain why revenue moved.
decompose-revenue-changeWrite a monthly business review
Writes a monthly business review with headline results, performance against plan by area, drivers, outlook, risks and the decisions needed from leadership. Use as an analyst or operations leader.
write-monthly-business-reviewWrite a weekly metrics update
Writes a weekly business metrics update that explains movements against targets, the likely causes and the next actions. Use for the Monday update to leadership or the team channel.
write-weekly-metrics-updateBuild a KPI driver tree
Decomposes a top-line metric into a driver tree with exact formulas, definitions and owners, so a change in the metric can be traced to the input that moved. Use for metric design and reviews.
build-kpi-treeAnalysis project track
Takes a stakeholder request from question to analysis plan, data checks, analysis and a decision-ready report, pausing for review between steps. Use when an analyst takes on a request.
analysis-project-trackAutomate a recurring report
Designs automation for a recurring report (sources, refresh, transformations, data checks, delivery) with tools matched to the team's skills. Use when a weekly or monthly report eats hours.
automate-recurring-report