Revenue is growing, but the money in the account is not increasing — almost always the culprit is the margin that no one calculates by item. An averaged "business-wide markup" hides goods and services that you sell at a loss. This skill breaks down margin for each item and shows the bare numbers — the pricing decision remains with you.
⚠️ Disclaimer. Prepared for review by your accountant. This is not tax or legal advice. Tax figures are for the 2026 tax period; verify before use.
Quick start
When the owner asks "should I raise prices?" or "is my margin normal?", the skill:
- Determines what to analyze — which goods/services are in focus
- Pulls cost data from accounting (cost of goods sold, direct expenses)
- Pulls revenue data from payment systems (transaction history)
- Calculates unit economics — revenue, cost of goods sold, gross profit, margin % for each item, taking into account VAT status
- Compares with context — inflation, changes in costs, industry benchmarks, if available
- Builds price scenarios — what happens to revenue and margin when the price rises by +5%, +10%, +15%, relying on historical correlation where the data allows
- Shows the analysis — without a price recommendation; the owner makes the decision
As a result, the owner has real numbers to make the pricing decision themselves.
Workflow
Step 1: Preflight check
Accounting (~~бухгалтерия): if connected (for example, 1C:Accounting or MoySklad) — check whether the industry/line-of-business field is filled in. If it is not — ask: "I need your business category to pull in relevant benchmarks. What field are you in?"
Payments (~~платежи): no pre-flight check is needed, but some services (for example, YooKassa) limit the request rate — see reference/gotchas.md.
VAT status — must be clarified. Since 2026, the simplified tax system with income over 20 million ₽ — is a VAT payer (rates 5% / 7% / 22%). Margin is calculated differently depending on whether prices are "with VAT" or "without VAT". Ask the owner:
"Clarify on VAT: did your income for last year exceed 20 million ₽? If so — which rate do you apply: 5%, 7%, or 22%? And are your prices stated with VAT or without? This directly affects the margin calculation."
If income ≤ 20 million ₽ — the owner operates without VAT, and prices and margin are calculated directly.
Nothing is connected: offer a CSV export as a fallback. The skill works with an export of transactions and expenses. The expected CSV structure is in reference/csv-schema.md.
Step 2: Clarify the scope
Ask the owner two questions:
-
"Which products or services do you want to analyze?"
- All or a specific part?
- If "all" — first make sure there are enough records in the data for the analysis to be meaningful.
-
"Which metric is most important to you?"
- Gross margin (revenue minus direct costs)?
- Net margin (after all expenses)?
- Revenue per unit?
- The answer determines how to present the result.
Step 3: Pull in cost data (~~бухгалтерия)
If accounting is connected (for example, 1C:Accounting, MoySklad, or Kontur.Elba) — export the P&L:
- Period: the last 12 months (or the entire history, if less)
- Extract: cost of goods/services, direct expenses
If accounting is not connected — ask the owner for:
- A breakdown of cost by item (materials, labor, direct delivery costs for each)
- Any changes in costs over the last 6–12 months
If accounting is connected, but cost = 0 ₽ in all periods — do not use 0 ₽ as input. Tell the owner:
"Cost for this period is not recorded in the accounting. To calculate meaningful margin, I need a breakdown of costs by goods or services — not a general average for the business. How much does it cost you to make/provide each item? Materials, direct labor, direct costs per unit. Even rough figures will do."
Note this limitation in the "Data Quality Notes" section of the final output.
Step 4: Pull in revenue data (~~платежи)
If payments are connected (e.g., YooKassa, Tinkoff Kassa, SBP) — export the transactions:
- Period: coincides with the cost window (last 12 months)
- Extract: transaction amount, product/service name, date, quantity, if available
Important about VAT in revenue. Acquiring receipts usually come with VAT (if the owner is a VAT payer). To calculate gross margin, bring revenue and cost to the same basis:
- owner without VAT (income ≤ 20 million ₽) → calculate directly;
- owner on VAT → strip VAT from revenue (revenue excluding VAT = amount ÷ (1 + rate)) so that margin is not overstated. For example, at a 5% rate: revenue excluding VAT = receipt ÷ 1.05.
If you hit the payment service's rate limit — pause for 30 seconds, retry once. If blocked again — suggest: "The payment service is temporarily limiting requests. Switch to exporting a CSV from your bank client?"
If only one data source is available — note the limitation in the output.
Step 5: Calculate unit economics
For each item in scope, calculate:
| Metric | Formula |
|---|---|
| Revenue (excluding VAT) | The amount of transactions for the item, cleared of VAT, if the owner is a VAT payer |
| Cost of goods sold | Data from accounting or from the owner |
| Gross profit | Revenue excluding VAT − cost of goods sold |
| Gross margin % | (Gross profit ÷ revenue excluding VAT) × 100 |
| Units sold | Number of transactions, if available |
| Revenue per unit | Revenue ÷ units sold |
| Cost per unit | Cost of goods sold ÷ units sold |
Flag any item with a margin below 20% — not as a recommendation, but as a point the owner should pay attention to.
About VAT in margin. If the owner became a VAT payer in 2026 but did not manage to raise prices — the margin actually dropped by the amount of VAT (for the item, 5–7% of revenue goes to the budget). This should be shown explicitly: “When switching to 5% VAT without raising the price, your margin for this item fell from X% to Y%.”
Step 6: Compare with benchmarks
Add context so the numbers become meaningful:
- Inflation: note the cost trend if we are talking about rising input prices. Example: “Input costs rose by approximately X% over the period, while prices stayed flat — this squeezed the margin by Y points.”
- Industry benchmarks: use
reference/industry-benchmarks.md. These are approximate ranges ⚠️, not exact RF figures. - Year-over-year comparison: if there are 24+ months of data — compare this year's margin with last year's to show the direction of the trend.
Low data — handle with care: if there are fewer than 6 months of transactions, skip the elasticity block and note: “At least 6 months of price history is needed to assess how volume responds to price changes. Instead, I will show scenario arithmetic.”
Step 7: Price scenarios
Build a table for each position with three price change scenarios:
| Scenario | New price | Revenue forecast* | Gross margin % |
|---|---|---|---|
| +5% | X ₽ | Y ₽ | Z% |
| +10% | X ₽ | Y ₽ | Z% |
| +15% | X ₽ | Y ₽ | Z% |
How to calculate the revenue forecast:
- If there is 6+ months of history: estimate the volume response from historical data. If there was a price change in the past — calculate the observed elasticity:
Эластичность = % изменения объёма ÷ % изменения цены. Apply it to the volume forecast at the new price. - If there is little history: show three volume assumptions (−0%, −5%, −10%) and let the owner choose a realistic one.
VAT in the scenarios. If you are raising the price and the owner is a VAT payer, clarify: is the price rising "with VAT" or "without VAT"? With a "with VAT" price, part of the increase goes to the budget, and the real margin increase is less than the nominal one. Always show margin from revenue excluding VAT.
Add a note: "These are forecasts based on available data, not guarantees. The actual volume response depends on competition, customer sensitivity and timing."
Step 8: Show the analysis
Output structure: an H2 heading with the business name and period, then four sections — a "Unit Economics Summary" table (product/service, revenue excluding VAT, cost, gross profit, margin %), a "Context and Benchmarks" section (2–4 sentences about inflation, cost shifts, industry ranges, VAT status), "Price Scenarios" (a table per position or top 3–5 if there are many) and "Data Quality Notes" (any limitations: partial data, missing cost, short history, unclear VAT status).
Stay factual. Do not write "you should raise prices" or "consider lowering them." The owner looks at the data to make the decision themselves.
Boundary of responsibility
This skill shows data. It does not recommend a price.
If the owner asks "so what should I do?" — answer: "I can show what the data says, but the pricing decision is yours. Model any other scenarios?"
This is intentional. Pricing decisions have real consequences and depend on context that only the owner knows (competitive position, customer relationships, need for cash). The skill's job is to make sure that when deciding, they look at real numbers.
Connectors
Main: ~~бухгалтерия (1C:Accounting, MoySklad), ~~платежи (YuKassa, Tinkoff Kassa)
Also: Kontur.Elba, SBIS · manual export (CSV/Excel from bank client)
If nothing is connected → ask for a CSV export or paste the data manually.
Reference files
reference/gotchas.md— typical traps (data gaps, elasticity traps, margin calculation errors, VAT)reference/industry-benchmarks.md— approximate gross margin ranges by categoryreference/csv-schema.md— expected columns when exporting CSVreference/examples/— worked-through scenarios (retail, services)
Need to go deeper? This is a quick margin breakdown for the owner. For profitability across all products/customers with a calculation engine, pricing, and reverse costing for marketplaces, there are skills margin-analysis и pricing-rf in the pack finance-ru (the RU Business Packs line).