spreadsheet-data-analysis-reporting
Skill14 starsChanged 10 days agoMITView on GitHub
Use for any request that needs figures from the sales spreadsheets (Excel/CSV), even a single file or a single period - e.g. 'analyse Q4', 'how did sales do last month', 'compare regions', YoY/MoM/QoQ/YTD growth, top products, share of revenue, trends, outliers, currency-converted totals, or building/updating a consolidated master file. Finds and loads the relevant files, cleans and normalises them, computes metrics with standard definitions and edge-case handling, flags outliers and data issues, explains every transformation, and produces on-brand charts. Use this before the report or email skills whenever numbers must be computed. Do NOT use for questions that need no data (e.g. 'what does YoY mean') or for re-formatting results already computed in this conversation.
In this repository20 other files it gives its agents.
- AGENTS.mdAGENTS.md
- rubric-scoringSkill
- required-fields-progressSkill
- category-subcategory-resolverSkill
- html-report-generationSkill
- dataverse-mcp-saveSkill
- file-usecase-extractionSkill
- confirmation-final-qaSkill
- usecase-strengthening-gapsSkill
- prorated-refund-calculatorSkill
- points-reconciliationSkill
- slip-pdf-generatorSkill
- membership-card-pngSkill
- legal-compliance-reviewSkill
- internal-consistency-reviewSkill
- generating-podcast-scriptSkill
- polished-report-builderSkill
- newsletter-style-email-composerSkill
- loading-dock-selectorSkill
- dock-assignment-pass-pdfSkill
The file
We split this skill into the rules it gives an agent
7 rules. About 0 are common, 2 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 25
Find and load: Default location: the SharePoint site set in the agent instructions, library Shared Documents, folder Monthly Sales (the …
- Very specific: line 34
Currency: If more than one currency appears, or the user wants another one, follow references/fx-conversion.md with scripts/fx_convert.py: …
- Very specific: line 39
Compute: Use scripts/compute_metrics.py (period windows, YoY/MoM/QoQ/YTD/LTM, contribution, mix, constant currency) with the definitions …
- Very specific: line 42
Flag: Run scripts/flag_outliers.py and read references/outlier-guidance.md.
- Distinctive: line 62
No imputation: blanks stay blank and are reported.
- Very specific: line 66
Call chart_style.apply_theme("report") (or "email"), then use its helpers: bar_ranked, column_by_period, line_trend (direct labels, prior …
- Distinctive: line 73
Every answer that contains figures ends with Data notes: scope and files.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Sales data analysis
Turns the user's sales spreadsheets into trustworthy figures, flags and charts, and always says how the
numbers were produced. Everything in references/ is a default: adapt definitions and thresholds to the
data and the request (fiscal year, net vs gross, a different outlier threshold) and say what you changed.
Branding - edit here. Colours, chart palette, fonts, logo and the header/footer/disclaimer text live in ONE file:
assets/style-tokens.json. Charts (scripts/chart_style.py), the PDF report and the email all read it. Never type hex values anywhere else. Logo:assets/logo-placeholder.pngis a placeholder bar-chart icon in the brand blue and green, drawn top right of the PDF header. To swap it, replace that file with your own PNG (same name), or add your file toassets/and setbrand.logo_pathto its name (""= no logo). The email never shows it.
Analyse mode (default)
- Scope. Work out the period, metric, breakdowns and comparison. Get today's date in the sandbox
(
datetime.date.today()) to resolve "last month", "this quarter" and to spot partial periods. Default to calendar quarters (Q4 = Oct-Dec); if a fiscal calendar is hinted or the request is ambiguous, ask. Ask at most one short question; otherwise state the assumption and continue. - Find and load. Default location: the SharePoint site set in the agent instructions, library
Shared Documents, folderMonthly Sales(the user may point elsewhere). List the folder with the SharePoint tool, pick the files covering the period and its comparison period, and load them into the sandbox. Record files used and skipped (and why). SharePoint is read-only: list and read only - never create, write, move or delete anything there. - Prepare. For new or differently laid-out files run
scripts/discover_fields.py; then always runscripts/prepare_data.py(all sheets, header detection, numbers-as-text, explicit date formats, labels, subtotal rows, duplicates, currency detection). Read its warnings andtransformation_log.json; judgement calls are inreferences/data-preparation.md. Ask the user about ambiguous dates or duplicate keys. - Currency. If more than one currency appears, or the user wants another one, follow
references/fx-conversion.mdwithscripts/fx_convert.py: dominant currency by default; a fresh spot rate looked up at the moment of analysis (xe.com, otherwise the user provides or confirms it - never reused); apply it and disclose pair, direction, rate, source and as-of date in the Data notes. Nothing is stored. Never invent a rate. - Compute. Use
scripts/compute_metrics.py(period windows, YoY/MoM/QoQ/YTD/LTM, contribution, mix, constant currency) with the definitions and edge cases inreferences/metrics-glossary.md. Label partial periods provisional. - Flag. Run
scripts/flag_outliers.pyand readreferences/outlier-guidance.md. Flag only - show the notable flags with context; never exclude a value unless the user asks. - Present. Insight first, then a small table, then a chart only if it adds something, then the
Data notes block (
assets/analysis-notes-template.md). Save figures, chart PNGs and the data notes in the sandbox working folder so the report and email skills can reuse them without recomputing.
Master-file mode (only when asked to build or extend a master file or a focused view)
Confirm which outcome is wanted: extend an existing master (append a new period, check schema and
duplicate keys first, never alter history, add a change-log line), focused view (filter periods/fields,
state what is in and out), or build from scratch (canonical fields from discover_fields.py, alias and
change-log sheets from the start). Use references/field-mapping-checklist.md before merging. Confirm the
field list with the user when it isn't obvious. Build the file in the sandbox and give it to the user as a
chat attachment - never write it to SharePoint.
Guardrails (always)
- Name the denominator of every percentage; distinguish % change from percentage points.
- Sum only the lowest level of a hierarchy - never subtotals plus detail.
- Combine rates and ratios as sum(numerator)/sum(denominator), not an average of averages.
- No imputation: blanks stay blank and are reported. No causes the data can't show.
Charts
Call chart_style.apply_theme("report") (or "email"), then use its helpers: bar_ranked,
column_by_period, line_trend (direct labels, prior year dashed), variance_bars, small_multiples.
Pick the type with references/chart-selection-guide.md, run scripts/visual_check.py (pass target=) and
fix any FAIL, then save_chart. Title = what it shows; subtitle = unit, currency, period.
Output contract
Every answer that contains figures ends with Data notes: scope and files; transformations; FX; flags and outliers; caveats. Keep it to 3-6 short lines. No bare numbers without unit, period and basis.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

