agentleFS
waj-1waj-1/waj-plugin/skills/sales-analysis/SKILL.md

sales-analysis

Skill0 starsChanged 10 days agoMITView on GitHub

Analyze a WAJ salon or spa's sales for a period - total revenue and how it splits, the change against the previous period, best and declining services and categories, payment methods, busiest day, money still owed and, when asked, profit and margins. Use when the user asks how sales or revenue went, wants a sales report or summary, or asks why revenue went up or down.

4 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

8 rules. 0 are common, 2 are distinctive, and 6 are very specific to this project.

  • 0

    Common

    Most of the 3 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 6

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Period: Use the dates the user gives.

    line 13
  2. Very specific:

    Branch: All branches unless the user names one.

    line 17
  3. Very specific:

    Call get_business_performance for the period (increment_interval 1 for up to 31 days, 7 for longer) and again for the comparison period.

    line 22
  4. Very specific:

    Call get_services for both periods and get_categories for the period.

    line 24
  5. Very specific:

    Call get_invoices with status "owed" for the period when the user asks about money owed, or when total_unpaid_amount is above zero.

    line 26
  6. Very specific:

    When the user asks about profit, costs or margins, call run_report with slug "income_statement" for both periods and use its …

    line 28
  7. Distinctive:

    Every number must come from a tool result in this conversation.

    line 63
  8. Very specific:

    Use the discount from get_business_performance.

    line 65

“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Sales analysis

Answer sales and revenue questions with WAJ's own figures. The user's explicit instructions (period, branch, what to include) override every default below.

Inputs

  • Period. Use the dates the user gives. Without one, use the last 30 days ending today and say so. Dates are YYYY-MM-DD in the business's local time.
  • Comparison. The period of the same length just before it, unless the user names another (for example "this month vs the same month last year").
  • Branch. All branches unless the user names one; resolve a name with list_branches. Ask which branch only when the name matches more than one.

Steps

  1. Call get_business_performance for the period (increment_interval 1 for up to 31 days, 7 for longer) and again for the comparison period.
  2. Call get_services for both periods and get_categories for the period. Service rows carry bookings_revenue and no_booked.
  3. Call get_invoices with status "owed" for the period when the user asks about money owed, or when total_unpaid_amount is above zero.
  4. When the user asks about profit, costs or margins, call run_report with slug "income_statement" for both periods and use its profit_and_loss: net_revenue, cost_of_goods, gross_profit, staff_pay, expenses, net_profit and net_margin_pct. If the report is locked for the user's role, say so.
  5. Compute changes yourself: absolute difference and percentage per figure. A service with sales in only one of the periods is "new" or "no sales", not a percentage.

Output

Lead with two sentences: total revenue for the period, and its change against the comparison period. Then:

  • A table for both periods with the change: total revenue, service sales (services_amount), product sales (products_amount), memberships (memberships_amount), gift cards (gift_cards_amount), discounts (total_discount), VAT (total_tax), services sold (services_sold) and still unpaid (total_unpaid_amount). Say that total revenue includes the unpaid amount.
  • Top 5 services by revenue, and services whose revenue fell by more than 25% against the comparison period.
  • Busiest day (summary.busiest_day_by_revenue).
  • Payment methods: summary.payment_methods, the amount per method for the period.
  • Profit, only when asked: net revenue, cost of goods, gross profit, operating expenses and net profit with the net margin, for both periods.
  • Money owed: the count and amount from the invoices summary. Never print an invoice's client field; it can contain a phone number.
  • One to three observations the numbers support, each with its figure.

Offer a CSV with export_csv only when the user asks for a file.

Rules

  • Every number must come from a tool result in this conversation. If a tool returns no data or an error, say which part is missing; do not estimate it.
  • Use the discount from get_business_performance; service-level discounts are counted differently, so do not add or compare the two.
  • Amounts are in the business's currency as returned; do not convert them.
  • Name the period, the comparison period and the branch scope in the answer.
  • This skill only reads data. It never changes prices, sales or invoices.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.