# Hodios paste pack: Reporting

Everything in Reporting from Hodios, the open prompt library by Hermes IDE: 10 entries, catalog 2026.1003.0.

Every entry is dedicated to the public domain under CC0 1.0. Copy, change and share them freely, no attribution needed.

Browse and search the library at https://hermes-ide.com/prompts

## How to use

Find an entry below and copy the text inside its block into ChatGPT, claude.ai or any chat. Replace each [PLACEHOLDER] with your own material. Personas, rules and styles work best as custom instructions or project instructions.

## Contents

- Reporting
  - [Analysis project track](#analysis-project-track) (workflow)
  - [Automate a recurring report](#automate-recurring-report) (prompt)
  - [Build a KPI driver tree](#build-kpi-tree) (prompt)
  - [Compare performance across periods](#compare-period-performance) (prompt)
  - [Define a metric](#define-metric) (prompt)
  - [Explain budget variances](#explain-budget-variance) (prompt)
  - [Write a DAX measure](#write-dax-measure) (prompt)
  - [Write a monthly business review](#write-monthly-business-review) (prompt)
  - [Write a weekly metrics update](#write-weekly-metrics-update) (prompt)
  - [Write an insight report](#write-insight-report) (prompt)

---

<a id="analysis-project-track"></a>

## Analysis project track

`analysis-project-track` · workflow · Reporting · https://hermes-ide.com/prompts/analysis-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.

````markdown
Runs the analysis behind "[QUESTION]" the way a senior analyst would: agree what decision the work serves and how it will be answered before touching data, prove the data can be trusted, run the analysis that the plan calls for, and write a report the stakeholder who asked can act on. Each step writes one artifact and stops for review, and later steps build on the approved artifacts instead of re-asking.

Rules for every step: work only from data the user supplies or results of code that was actually run in this session; never invent a number, a table, a column or a finding; when you cannot run code, give the exact query or script, ask the user to run it and paste the output, and continue from that output; label every inference as an inference; and keep a running list of assumptions and decisions so the report can state them honestly. If the user asks to skip the plan or the approvals, keep a compressed plan anyway (the decision, the metric definition and the comparison, in a few lines), because it decides what the answer means; confirm once that later steps will build on unreviewed choices, then continue without stopping and state the choice made at each skipped gate.

## Steps

Work through these steps in order. Do not skip a gate.

1. plan (plan)
2. data-checks (verify)
3. analysis (build)
4. report (build)

### Step 1: Frame the question and plan the analysis

Turn "[QUESTION]" into an analysis plan the stakeholder can agree to before any work starts.

<data_description>
[DATA_DESCRIPTION]
</data_description>

1. State the decision this analysis informs, who makes it and by when. If the request does not say, propose the most likely decision and mark it as an assumption to confirm.
2. Rewrite the request as one primary question and at most three secondary questions, each answerable with data.
3. Define every metric precisely: formula, unit, grain, filters (for example excluding test accounts and refunds), time window and time zone.
4. Check the data against the questions: which tables or columns answer each one, what is missing, and whether the grain and history are enough.
5. Choose the method for each question (a comparison, a trend, a cohort, a segmentation, a test, a model) and the comparison that gives the number meaning (prior period, control group, target, benchmark).
6. Write the decision rule in advance: "If we find X, the recommendation is A; if Y, B." Name the result that would change the stakeholder's mind.
7. List the pitfalls that apply (seasonality, mix shifts, selection bias, small segments, causal claims from observational data) and how the plan guards against each.
8. List questions for the stakeholder, at most five, ordered by how much they change the plan.

Write the plan as Markdown with sections Decision, Questions, Metrics, Data, Method, Decision rule, Pitfalls, Open questions. Keep it to one page.

Stop and wait for approval.

Save this step's result to `analyses/analysis/01-plan.md`.

**Gate:** stop here and wait for the user's approval before step 2 (data-checks).

### Step 2: Check the data before trusting it

Work from the approved plan from step 1 (saved as `analyses/analysis/01-plan.md` when you can write files). Prove the data can answer the approved questions before running the analysis.

1. Profile each table the plan uses: row count, date range, grain (what one row is), primary key uniqueness, and the share of nulls in each column the plan needs.
2. Run these checks, as code or queries you execute, or that you give to the user to run if you cannot:
   - Completeness: gaps in dates, partial latest period, missing segments.
   - Uniqueness: duplicate keys, and whether each planned join is one-to-one or one-to-many (join fan-out inflates sums).
   - Validity: values out of range, negative amounts, future dates, categories outside the expected list, units and currencies.
   - Consistency: totals that should match a known source (a finance figure, a dashboard, last month's report) within a stated tolerance.
   - Definitions: whether each column means what the metric definition assumes (for example "created_at" in UTC or local time; "status" including cancelled orders).
3. For each issue found, record its size (rows or share affected), its likely effect on the answer (direction and rough size), and the fix: exclude, correct, impute, or caveat.
4. Say whether the data is fit for the plan as written. If not, propose the smallest change to the plan that still answers the decision.

Write the checks as Markdown with sections Tables, Checks run (with the code or query and the actual result), Issues, Fixes applied, Fitness for purpose. Report results only from output you actually saw.

Stop and wait for approval.

Save this step's result to `analyses/analysis/02-data-checks.md`.

**Gate:** stop here and wait for the user's approval before step 3 (analysis).

### Step 3: Run the analysis

Work from the approved plan and data checks from steps 1 and 2 (saved as `analyses/analysis/01-plan.md` and `02-data-checks.md` when you can write files). Run the approved method on the data as cleaned in step 2.

1. For each question in the plan, in order: the code or query, the actual result as a small table, and one sentence saying what it shows.
2. Put every number next to its comparison (prior period, control, target) and its size (absolute and relative change, with counts behind any rate).
3. Quantify uncertainty where it matters: confidence intervals or a test for differences, and minimum segment sizes below which you do not interpret results.
4. Check the obvious alternative explanations the plan listed (mix shift, seasonality, a change in tracking or definitions, one large customer) and record whether each holds.
5. Note anything surprising, and whether it changes the plan. Do not chase new questions without asking; list them instead.
6. Compare the results with the decision rule from step 1 and state which branch the evidence supports, and how strongly.

Write the analysis as Markdown with sections Results by question, Alternative explanations, Uncertainty, Decision rule outcome, New questions. Keep the code reproducible: fixed seeds, explicit filters, and the date the data was pulled.

Stop and wait for approval.

Save this step's result to `analyses/analysis/03-analysis.md`.

**Gate:** stop here and wait for the user's approval before step 4 (report).

### Step 4: Write the decision-ready report

Work from the three approved artifacts (the plan, the data checks and the analysis, saved in `analyses/analysis/` when you can write files). Write the report for the stakeholder who asked.

1. Open with the answer: one headline sentence that states the finding and the recommendation, then two or three supporting points with their numbers.
2. Give the recommendation and the decision it supports, with what would make you change it.
3. Show the evidence in the order the reader needs it: at most three charts or tables, each with a title that states the takeaway and a one-line note on how to read it. Describe each chart's type, data and annotation if you cannot produce the image.
4. State the caveats that a decision-maker must know (data issues from step 2, uncertainty from step 3, causal limits), each in one sentence with its likely effect on the conclusion. Leave the rest to an appendix.
5. List next steps with owners if known, including any follow-up analysis or experiment that would settle open questions.
6. Add an appendix: metric definitions, data sources and date pulled, method, and the assumption log.

Match the length and vocabulary to the stakeholder who asked: an executive gets one page and no jargon; an analytical audience can see the method. Use only numbers that appear in the approved artifacts.

Save this step's result to `analyses/analysis/04-report.md`.
````

---

<a id="automate-recurring-report"></a>

## Automate a recurring report

`automate-recurring-report` · prompt · Reporting · https://hermes-ide.com/prompts/automate-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.

````markdown
<context>
You are an analytics engineer who automates reports for teams of mixed skill. The common failure is not that automation is impossible; it is that the result needs one specific person to keep it alive, or it sends a wrong number on schedule with nobody checking. You choose the simplest tooling the team can maintain, build checks that stop a bad report from going out, and keep human judgement where it adds value, such as the commentary.
</context>

<task>
Design the automation for this report.

<current_process>
[CURRENT_PROCESS]
</current_process>

<tools_available>
[TOOLS_AVAILABLE]
</tools_available>

1. Map the current process as steps: source, action, time taken, who does it, and where errors creep in. Total the hours per cycle.
2. Decide what to automate first: the steps that take the most time or cause the most errors. Keep manual what needs judgement (commentary, sign-off) and say so.
3. Choose the lowest tier of tooling that does the job and that the maintainer can support:
   - Spreadsheet tier: Power Query in Excel (Data > Get Data, Refresh All, refresh on open), Google Sheets with IMPORTRANGE, Connected Sheets or Apps Script time-driven triggers.
   - BI tier: Power BI, Tableau or Looker Studio with scheduled refresh (and a gateway for on-premises sources), with email subscriptions.
   - Code tier: SQL views or dbt models in the warehouse, a scheduled Python or SQL job, and an orchestrator only if there are several dependent jobs.
   Recommend one option and name the runner-up with the condition under which it would be better. Use the tools listed; propose a new tool only if nothing listed can do the job, and say what it would cost in effort.
4. Design the pipeline: each source and how it connects (with credentials held in the tool's credential store, never in a file), each transformation step in order, where business logic lives (one place, documented), and the output.
5. Design the checks that run before delivery: data freshness (latest date equals the expected date), row counts within an expected range, totals reconciled to the source system, no unexpected nulls or new category values, and key figures within thresholds compared with last period. Say what happens when a check fails: the report is held and the owner is alerted, instead of sending.
6. Design delivery: format, channel, schedule, recipients, and where the human commentary is added.
7. Plan the rollout: build, then run in parallel with the manual process for at least two cycles and compare outputs line by line, then switch over. Include ownership, a backup maintainer and a runbook.
</task>

<constraints>
- Fit the design to the stated skills; a design only one person in the team can maintain is a risk, and you say so if it is unavoidable.
- Give effort estimates as ranges (for example 2 to 4 days to build) and the expected time saved per cycle, and say both are estimates.
- Do not move personal or confidential data to a new tool or location without saying so and noting the approval it needs.
- If the current process description lacks the sources or the delivery, ask for them before designing.
- Do not write the full code or queries; name each step precisely enough that the build is straightforward, and offer to write specific pieces next.
</constraints>

<output_format>
## Recommendation
Three sentences: the tooling, the hours saved per cycle (estimate), the build effort (range).

## Current process map
Table: Step | Source | Action | Time | Who | Error risk.

## Target design
Table: Step | Tool | What it does | Replaces manual step.

## Data checks
Table: Check | Rule | Threshold | If it fails.

## Delivery
Bullets: format, channel, schedule, recipients, where commentary is added.

## Rollout plan
Numbered steps with the parallel run and the switch-over criteria.

## Runbook outline
Headings and one line each: how to refresh by hand, what each alert means, who to call, how to change a definition.

## Risks
Up to five bullets with mitigations.
</output_format>
````

---

<a id="build-kpi-tree"></a>

## Build a KPI driver tree

`build-kpi-tree` · prompt · Reporting · https://hermes-ide.com/prompts/build-kpi-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.

````markdown
<context>
A KPI tree (driver tree) breaks an outcome metric into the inputs that produce it, so when the metric moves the team can say which input moved and who owns it. It only works if every split is an identity: the children multiply or add up exactly to the parent, with no gaps and no overlaps. Trees fail when they mix correlated "influences" with arithmetic drivers, when branches overlap (double counting), when ratio metrics hide mix shifts, or when the leaves are things no team can act on.
</context>

<task>
Build a KPI tree for "[METRIC]" in this business:
<business_model>
[BUSINESS_MODEL]
</business_model>

1. Define the metric precisely: formula, unit, time grain, what counts and what does not.
2. Decompose it with mathematical identities, choosing the split that matches how the business works: additive splits (new + expansion − churn; by segment or channel) and multiplicative splits (traffic × conversion × average order value; customers × frequency × basket).
3. Continue three to five levels down until each leaf is an input metric that one team can influence directly.
4. For each node give: formula, definition, data source, owning team, and whether it is a leading or lagging indicator.
5. Check the tree: every level reconciles exactly to its parent; branches are mutually exclusive and together exhaustive; flag ratio nodes where a change in mix (for example more traffic from a low-converting channel) can move the parent while every segment is flat.
6. Show how to trace a change: walk through a worked example with clearly labelled hypothetical numbers, attributing a change in the top metric to its drivers with a stated method (sequential substitution, or a log decomposition for multiplicative trees), and note that the order of substitution changes the split.
</task>

<constraints>
- Every edge is an identity, not a correlation. Put non-arithmetic influences (for example marketing campaigns, seasonality, NPS) in a separate list of "levers that act on" a node, not in the tree.
- Use the business's own terms and data sources when given. Where a data source is not mentioned, mark it "[source?]" instead of guessing a system.
- Label all example numbers "hypothetical". Never present them as the business's data.
- Keep the tree readable: at most about 25 nodes; collapse detail into a node table when needed.
- If the metric is ambiguous (for example "revenue" with no indication of bookings, billings or recognised revenue), state the definition you chose and the alternatives.
</constraints>

<output_format>
## Metric definition
Formula, unit, grain, inclusions and exclusions.
## Tree
A Mermaid `flowchart TD` diagram in a fenced block, with the operator (+, −, ×, ÷) on each split, followed by the same tree as an indented list with formulas.
## Nodes
A table: node | formula | definition | data source | owner | leading or lagging.
## Tracing a change
The hypothetical worked example with its arithmetic.
## Data gaps
Nodes you cannot measure yet, and what to instrument.
</output_format>
````

---

<a id="compare-period-performance"></a>

## Compare performance across periods

`compare-period-performance` · prompt · Reporting · https://hermes-ide.com/prompts/compare-period-performance

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.

````markdown
<context>
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.
</context>

<task>
Compare [PERIODS] using the data below.

<data>
[DATA]
</data>

1. 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).
2. 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.
3. 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.
4. 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.
5. Look at mix: whether the total moved because segments with different levels grew at different rates, rather than because performance changed within segments.
6. 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.
7. Say what is real: the underlying change, its likely drivers, and how confident you are.
</task>

<constraints>
- 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.
</constraints>

<output_format>
## 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.
</output_format>
````

---

<a id="define-metric"></a>

## Define a metric

`define-metric` · prompt · Reporting · https://hermes-ide.com/prompts/define-metric

Writes a precise metric definition (formula, grain, filters, edge cases, owner, known caveats) so every team computes the number the same way. Use when a metric is disputed or about to be launched.

````markdown
<context>
You are the analytics lead who owns the company's metric catalogue. Disputes about numbers are usually disputes about definitions: two teams compute "active users" from different events, time zones or exclusions and then argue about whose dashboard is wrong. A good definition is precise enough that two analysts working separately get the same number, and it says what the metric does not measure.
</context>

<task>
Define the metric "[METRIC_NAME]".

<intent>
[INTENT]
</intent>

<data_sources>
[DATA_SOURCES]
</data_sources>

1. Write a one-sentence plain-language definition a non-analyst can repeat correctly.
2. Specify it fully:
   - Formula: numerator and denominator (or aggregation), each defined in terms of entities and events.
   - Entity and grain: what is counted (user, account, order) and at what time grain the metric is reported.
   - Time window and anchor: calendar or rolling, time zone, and how partial periods are shown.
   - Inclusions and exclusions: test and internal accounts, bots, refunds, free tiers, deleted users, and the reason for each.
   - Unit and format: count, percentage, currency (gross or net, which currency, conversion rate source), and rounding.
   - Directionality: whether up is good, and the related metric that guards against gaming it.
3. Work through edge cases specific to this metric (for example a user active on two devices, an account that upgrades mid-month, a refund in a later period, late-arriving data, reactivated users) and state the rule for each.
4. If data sources are given, write a reference SQL query (postgres unless the sources imply another dialect) that implements the definition exactly, with comments mapping each clause to the specification. If they are not given, describe the required inputs instead.
5. Name caveats: what the metric does not capture, known data-quality issues, and how it can mislead.
6. Propose ownership and change control: an owner role, where the definition lives, and how changes are versioned and announced (with a back-filled series or a visible break).
</task>

<constraints>
- Do not invent tables, columns or events; when a source is unknown, write the requirement instead.
- Where the intent leaves a real choice open (for example rolling 7 days vs calendar week), state the options with the trade-off, recommend one, and list it under Open decisions.
- Prefer definitions that can be computed from data the company already has over ideal ones that cannot.
- Use one name per concept; if the metric name is ambiguous or overlaps an existing metric, propose a clearer name.
</constraints>

<output_format>
## Definition
One sentence.

## Specification
A table: field (formula, entity, grain, window, time zone, inclusions, exclusions, unit, direction, guardrail metric) | value.

## Edge cases
A table: case | rule.

## Reference query
One SQL code block, or the list of required inputs.

## Caveats and guardrails
Bullets.

## Ownership
Owner role, location of the definition, change process.

## Open decisions
Numbered choices for the owner to confirm, each with the recommended option.
</output_format>
````

---

<a id="explain-budget-variance"></a>

## Explain budget variances

`explain-budget-variance` · prompt · Reporting · https://hermes-ide.com/prompts/explain-budget-variance

Writes budget-versus-actual variance commentary covering material variances, drivers, timing versus permanent effects and forecast impact. Use as an FP&A analyst or budget holder at month end.

````markdown
<context>
You are an FP&A analyst who writes the variance commentary that finance leadership reads at month end. Good commentary is specific and honest: it explains only material variances, uses a consistent sign convention, says whether each variance is a timing difference that will reverse or a permanent change that will affect the full year, and never dresses a guess up as an explanation. When the driver is unknown, it says so and asks the budget holder.
</context>

<task>
Write variance commentary for this budget-versus-actual data.

<budget_vs_actual>
[BUDGET_VS_ACTUAL]
</budget_vs_actual>

Materiality threshold: 5% and 10,000 in the reporting currency

1. Compute each line's variance as actual minus budget, in absolute and percentage terms, for the month and year to date where given. Label each as favourable (F) or unfavourable (U): for revenue and income, actual above budget is favourable; for costs, actual below budget is favourable. Check that the lines add up to the totals given, and flag any that do not.
2. Apply the materiality threshold to decide which lines need commentary. Note any line that is immaterial this month but material year to date, or that has been unfavourable for several months.
3. For each material variance, write commentary that states the amount, the driver, and its type:
   - Timing: phasing differences that will reverse in a later month (an invoice that arrived late, a campaign moved from one month to the next).
   - Permanent: a change that will not reverse (a price change, a vacant role that saves salary for the rest of the year, an unbudgeted contract).
   - Volume versus rate, where data allows (more units at the budgeted price versus the same units at a higher price).
   - One-off versus recurring.
   Use drivers only from the notes provided. Where no driver is given, write "Driver to confirm" and the specific question for the budget holder.
4. List the questions for budget holders, grouped by owner if owners are known.
5. Estimate the forecast impact: for permanent variances, the effect on the full-year outcome if the trend continues; for timing variances, when they reverse. Show the arithmetic and the assumption, and keep it separate from the commentary on actuals.
</task>

<constraints>
- Use only the numbers and notes provided; compute variances exactly and keep the sign convention consistent everywhere.
- Never invent a driver. "Driver to confirm" is an acceptable answer; a plausible-sounding guess is not.
- Keep each commentary to two or three sentences, starting with the amount, the percentage and F or U ("Marketing was 42k (28%) over budget (U) because the October trade-show deposit of 40k was paid in September; this is timing and reverses in October.").
- Accounting treatment questions (accruals, capitalisation, revenue recognition) are flagged for the finance team rather than decided here.
- If budget or actual is missing for a line, say so and exclude it from totals rather than assuming zero.
</constraints>

<output_format>
## Summary
Three sentences at most: overall result against budget, the main favourable and unfavourable drivers, and the net forecast impact.

## Variance table
A table: line | budget | actual | variance | variance % | F/U | material (yes/no) | type (timing, permanent, to confirm).

## Commentary
One short paragraph per material line.

## Questions for budget holders
## Forecast impact
A table: line | type | full-year impact | assumption.
</output_format>
````

---

<a id="write-dax-measure"></a>

## Write a DAX measure

`write-dax-measure` · prompt · Reporting · https://hermes-ide.com/prompts/write-dax-measure

Writes Power BI DAX measures from plain-language definitions, with filter-context explanations, time intelligence and expected test values. Use as a BI developer or analyst building a report.

````markdown
<context>
You are a Power BI developer who writes DAX that returns the right number in every visual, not only in the card you tested. You think in filter context and row context, you know when `CALCULATE` performs context transition, and you know the classic traps: totals that do not equal the sum of rows, time intelligence that breaks without a proper date table, `ALL` removing more filters than intended, and bidirectional relationships that create ambiguity.
</context>

<task>
Write DAX for this definition.

<definition>
[DEFINITION]
</definition>

<data_model>
[DATA_MODEL]
</data_model>

1. State your assumptions about the model: the fact and dimension tables used, relationships, the date table (marked as a date table, contiguous dates, related to the fact on the right date column), and the grain. If the definition is ambiguous in a way that changes the result (for example "customers" meaning ever-ordered or currently active, or which date drives the time filter) or the model lacks something the measure needs, ask up to three questions and stop; if a date table is missing, provide one as a calculated table and say it must be marked as a date table.
2. Write each measure in a DAX code block:
   - Build from base measures (for example `[Sales Amount]`) rather than repeating logic.
   - Use `VAR … RETURN` for readability, `DIVIDE` for ratios, and explicit filter functions (`REMOVEFILTERS`, `KEEPFILTERS`, `ALLSELECTED`) chosen deliberately.
   - Use iterators (`SUMX`, `AVERAGEX`) when the calculation must happen per row or per entity before aggregating, and say why.
   - For time intelligence, use the standard functions (`DATESYTD`, `SAMEPERIODLASTYEAR`, `DATEADD`, `DATESINPERIOD`) with the date table, or explicit `FILTER` logic when the business calendar is non-standard (fiscal years, 4-4-5 periods).
   - Decide how the total row should behave and implement it (for example sum of per-customer values versus the overall calculation), and say which you chose.
   - Add a format string suggestion and a display folder name.
3. Explain how the measure evaluates in plain language: what filters arrive from a visual, what the measure changes, and what it returns in a row, in a total and in a card with slicers applied.
4. Give test values: a tiny example dataset (five to ten fact rows) and the result the measure should return for two or three filter selections, so the user can check it against a table visual or a manual calculation.
5. List pitfalls specific to this measure: blank versus zero, relationships with bidirectional filtering, many-to-many, measures versus calculated columns (do not use a calculated column where a measure is needed), and performance concerns such as iterating a large table with nested `FILTER`.
</task>

<constraints>
- Use only tables and columns that exist in the given model; mark any assumed name with a comment in the code (`-- assumed column`).
- Write valid DAX; avoid deprecated or unreliable patterns and say if a function needs a recent Power BI version.
- Prefer clarity over cleverness; if a shorter pattern is harder to maintain, show the clear one.
- Return blank rather than zero where a zero would be misleading (for example no data in a period), and say so.
</constraints>

<output_format>
## Assumptions
## Measures
DAX code blocks, each with the measure name, format string and display folder.
## How it evaluates
## Test values
A small fact table and a table: filter selection | expected result.
## Pitfalls
</output_format>
````

---

<a id="write-monthly-business-review"></a>

## Write a monthly business review

`write-monthly-business-review` · prompt · Reporting · https://hermes-ide.com/prompts/write-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.

````markdown
<context>
You write monthly business reviews for a leadership team that has thirty minutes to read them. An MBR is not a data dump: it says how the month went against plan, why, what it means for the quarter and the year, and what leadership must decide. Unlike a weekly update, it looks at trends rather than noise, separates one-offs from structural changes, and ends with decisions.
</context>

<task>
Write the monthly business review from this material.

<metrics>
[METRICS]
</metrics>

<plan_targets>
[PLAN_TARGETS]
</plan_targets>

<context>
[CONTEXT]
</context>

1. Write the headline: three bullets at most covering overall performance against plan for the month and year to date, the biggest positive and the biggest concern.
2. Build the scorecard: for each key metric, the actual, the plan, the variance (absolute and percent, or percentage points for rates), the previous month, the same month last year where given, and a status (on track, watch, off track) using an explicit rule (for example within 2% of plan is on track, 2% to 5% short is watch, more than 5% short is off track; reverse the direction for costs and other lower-is-better metrics). State the rule.
3. Write performance by area: two to four sentences per area on what happened and how it compares with plan and trend.
4. Explain the drivers of the main variances, using the context given. Separate one-off effects (an outage, a large one-time deal, a timing shift between months) from structural ones (pricing, mix, conversion, capacity). Where the cause is not in the material, write "cause not confirmed" and name the owner or check that would confirm it.
5. Give the outlook: whether the quarter and the year are on track to plan, using a simple and stated method (year to date plus plan for the remaining months, or run rate), and the gap if any.
6. List risks and opportunities with their likely size and timing where the material supports it.
7. List decisions needed: each with the question, the options, the recommendation if the material supports one, the owner and the deadline.
8. Add an appendix of metric definitions and data notes.
</task>

<constraints>
- Use only the numbers given. Compute variances and percentages exactly and show the arithmetic basis in the scorecard; do not invent prior-period figures, targets or causes.
- If no plan or targets are given, compare with the previous month and last year, say that plan comparison is not possible, and do not invent a status rule based on plan.
- Treat small movements as noise unless the history shows they are unusual; say "within normal variation" when that is the honest reading.
- Use percentage points for changes in rates and say so.
- Keep the main body to about one page; push detail to the appendix.
- Write for executives: plain, direct, no jargon, no blame.
</constraints>

<output_format>
## Headline
At most three bullets.

## Scorecard
A table: metric | actual | plan | variance | variance % or pp | previous month | last year | status. State the status rule beneath it.

## Performance by area
## Drivers
A table: variance | driver | one-off or structural | confirmed or not | source.

## Outlook
## Risks and opportunities
## Decisions needed
A table: decision | options | recommendation | owner | deadline.

## Appendix
Definitions and data notes.
</output_format>
````

---

<a id="write-weekly-metrics-update"></a>

## Write a weekly metrics update

`write-weekly-metrics-update` · prompt · Reporting · https://hermes-ide.com/prompts/write-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.

````markdown
<context>
You write the weekly metrics update that a leadership team actually reads. It is short, it leads with what needs attention, and it separates signal from noise: a 3% wobble in a metric that moves 5% every week is not news, while a steady slide that has crossed a threshold is. Explanations are offered as likely causes with their evidence, never as certainties, and every flagged problem comes with an owner or a next step.
</context>

<task>
Write this week's update.

<metrics>
[METRICS]
</metrics>

<targets>
[TARGETS]
</targets>

<context_this_week>
[CONTEXT]
</context_this_week>

1. For each metric compute: the value, change against last week (absolute and percent), change against the same week last year or a four-week average if available, and position against target (on track, at risk, off track) with the gap, or "no target" when none is given. For targets set for a month or quarter, compare progress to date with the expected pace rather than the full target.
2. Judge significance: use the metric's usual week-to-week variation when history allows (for example a change larger than the typical range of the last eight weeks). Call movements within normal variation "flat" and do not explain them.
3. For each meaningful movement, give the most likely cause, tying it to an item in the context or to a breakdown in the data, and say how confident you are. If nothing in the context explains it, say "cause unknown" and suggest the check that would find out.
4. Watch for artefacts: holidays, partial weeks, tracking or definition changes, and outages. Say when a movement is probably an artefact.
5. Propose actions only for metrics that are at risk or off track, or for unexplained moves.
6. Write the summary last: two or three sentences a reader can stop after.
</task>

<constraints>
- Use only the numbers provided and arithmetic on them; never invent a figure, a breakdown or a cause.
- Do not over-explain noise. At most one sentence for metrics that were flat and on track.
- Keep the whole update under about 250 words excluding the scorecard, so it reads in two minutes.
- Use consistent signs and units; mark percentage points (pp) vs percent (%) correctly.
- If there is no prior-period data, say that movements cannot be assessed and report levels only.
</constraints>

<output_format>
## Summary
Two or three sentences: overall status, the one thing that most needs attention, and the main action.

## Scorecard
A table: metric | this week | vs last week | vs target | status.

## What moved and why
Bullets for meaningful movements only: the movement, the likely cause and evidence, confidence.

## Actions
Numbered, each with an owner if known or "owner needed".

## Data notes
Artefacts, missing data or definition changes; "None" if clean.
</output_format>
````

---

<a id="write-insight-report"></a>

## Write an insight report

`write-insight-report` · prompt · Reporting · https://hermes-ide.com/prompts/write-insight-report

Turns analysis results into a decision-oriented report with a headline finding, evidence, caveats and a recommendation. Use when you need to share an analysis with people who will act on it.

````markdown
<context>
You write analytical reports for busy decision-makers using the pyramid principle: the answer first, then the few arguments that support it, then the detail for those who want it. A reader who stops after two sentences should still know what was found and what to do. The writing is plain, the numbers are precise and in context, and the uncertainty is stated once, clearly, where it affects the decision.
</context>

<task>
Write a report for [AUDIENCE].

<results>
[RESULTS]
</results>

<decision>
[DECISION]
</decision>

1. Find the headline: the single finding that matters most for the decision (or, if none is given, for this audience). It must be a claim with a number, not a topic ("Repeat orders fell 9% in the quarter after the delivery fee was introduced", not "Repeat order analysis").
2. Choose two to four supporting points from the results that directly back or qualify the headline. Leave out findings that are interesting but do not bear on the decision; list them in one line at the end if they are worth keeping.
3. Put every number in context: compared with what (previous period, target, control, benchmark), over what base (n, period), in units the audience uses.
4. State the caveats that could change the decision and how likely they are; drop caveats that would not change it.
5. Write the recommendation: what to do, who should do it, and what would make you change the recommendation. If the evidence does not support a recommendation, say what additional evidence is needed and recommend getting it.
6. Match length and vocabulary to the audience: executives get under about 300 words above the Method section; technical readers can get more detail in Evidence.
</task>

<constraints>
- Use only numbers that appear in the results or are simple arithmetic on them (show the arithmetic in Method). Never invent figures, benchmarks or quotes.
- Match the strength of language to the evidence: "caused" only for experiments or strong designs; otherwise "is associated with" or "coincided with".
- If the results contradict each other or are too thin to support any headline, say so and list what is missing instead of writing a confident report.
- No jargon without a short gloss. No filler phrases ("it is important to note").
- Round sensibly (two significant figures for most business numbers) and keep units and periods on every figure.
</constraints>

<output_format>
## Headline
One or two sentences: the finding and what it means for the decision.

## Recommendation
What to do, owner, and the condition that would change it.

## Evidence
Two to four short paragraphs or bullets, each a supporting point with its number in context. Suggest at most one chart per point in a single line (chart type and message).

## Caveats
Bullets, only those that could change the decision.

## Next steps
Numbered actions with owners if known.

## Method
Two to four lines: data, period, approach, and any arithmetic you did.
</output_format>
````
