thinkhard.SI

Prompt repository Finance & accounting

Calculate profit margin by product, customer or job

You want to see which products, customers or jobs actually make money once their direct costs are counted.

Registry no.
FIN-026
Collection
Finance & accounting
Laid out for
Any chat model
Score
10 out of 10
Blanks to fill
6
Added

Finance & accountingAny chat

The prompt

Score 10 of 10, Excellent

Use it when You want to see which products, customers or jobs actually make money once their direct costs are counted.

  • {{unit}}
  • {{reader}}
  • {{period}}
  • {{sales_data}}
  • {{direct_costs}}
  • {{shared_costs}}
Full prompt and why it works
Prompt
Calculate the profit margin of each {{unit}} from the data below, for {{reader}}, so we can see which ones make money once their direct costs are counted and which do not.

Sales by {{unit}} for {{period}}:
"""
{{sales_data}}
"""

Direct costs by {{unit}} (materials, direct labor, shipping, payment fees, commissions, discounts):
"""
{{direct_costs}}
"""

Shared costs and how we want them split, if at all: {{shared_costs}}

Produce:
1. A table with the columns Name, Revenue, Direct costs, Contribution (revenue minus direct costs), Contribution margin %, Share of total contribution, sorted from highest contribution to lowest. Under the table, show one worked line, for example "Revenue 12,000 - direct costs 7,800 = 4,200; 4,200 / 12,000 = 35%".
2. If I have given a way to split shared costs, a second table with each line's share and its profit after shared costs. Apply my method across every line that has the figure it needs, so the shares add up to the total shared costs, and put lines with incomplete cost data together on one row, "Incomplete lines", with no profit figure. If I have given no method, leave shared costs out and say so.
3. Findings: up to 6 bullets, such as lines with negative contribution, a few lines making most of the profit, or high revenue with a thin margin.
4. Questions to answer before acting: up to 4, for example whether a low-margin product brings in customers who buy other things.

Rules:
- Use only the figures given. Make sure the contributions add up to total revenue minus total direct costs, and say if any totals in the data differ.
- If a line is in another currency and I have not given a rate, list it as incomplete rather than converting it.
- Do not split shared costs by a method I have not chosen, because a different split can turn a profitable line into a loss on paper.
- Do not recommend dropping a product or customer. Show the numbers and the questions, and leave the decision to us.

Keep the text outside the tables under 300 words. If a {{unit}} has sales but no direct cost data, or the reverse, list it as incomplete instead of treating the missing figure as zero. If it is unclear whether revenue is before or after discounts, treat it as before, show how the totals change if it is after, and ask.

Variables

{{unit}}
What to measure margin for: "product", "customer" or "job".
{{reader}}
Who will read the analysis, for example "the owners" or "our sales manager".
{{period}}
The period the figures cover, for example "last 12 months".
{{sales_data}}
Revenue for each product, customer or job in the period.
{{direct_costs}}
The costs you can tie to each one: materials, direct labor, shipping, fees, commissions, discounts. If your sales figures are already after discounts, leave discounts out here.
{{shared_costs}}
Overheads and the method you want used to split them, for example "rent split by revenue share", or "leave out".

Why it works

  • What to avoid. Shared costs are split only by a method you choose and only across complete lines, because an arbitrary split can make a profitable line look like a loss.
  • An example. A worked line under the table shows the exact form of the arithmetic, so every margin can be checked the same way.
  • If unsure. A line with missing costs, an unconverted currency or unclear discounts is listed as incomplete instead of being treated as pure profit.

How to use it

  1. Press Fill in variables and type your details into each blank. What you type stays in this browser.
  2. Copy the filled prompt into the AI tool you already use, such as ChatGPT, Claude or Gemini, or open it in the Grader or the Prompt Tester here.
  3. Before you rely on it, try it on three or four real examples. The Prompt Tester runs them all at once and shows which ones go wrong.
Use it from code

Get this prompt as JSON from the free REST API, with your own text in the blanks, or let an AI assistant fetch it through the MCP server. No key.

curl -s https://thinkhard.si/api/v1/prompts/margin-by-product-or-customer

With the MCP server added to Claude, ChatGPT, Cursor or VS Code, call get_prompt with {"prompt": "margin-by-product-or-customer"}, or just ask for it by name.