Home · Guides

Is this project actually making money

Two servers hold the answer and neither of them computes it for you, which is worth knowing before you start. The time tracker holds what the project earned. The expense tracker holds what it cost. Ask each, then subtract.

What it earned

How many hours did I put into Acme this month, grouped by task, with amounts?

Paste this into Claude with the server connected.

report on the time tracker returns totals in hours and money, grouped by project, day, task or tag. Money is computed from seconds and the rate in one rounding step, then summed, so the total equals the sum of the lines. On the free tier reads are clamped to the last 7 days, which is enough for a weekly check and not enough for a month; that limit and the two-rated-projects limit are in data/facts.json.

What it cost

Show me the expense summary for Acme this month, grouped by category.

Paste this into Claude with the server connected.

expense_summary groups by category, project, month or merchant, always per currency and never mixing currencies into one number. Free covers the last 30 days and 3 projects.

The two numbers that distort it

Rebillable costs counted as costs. A 400 EUR stock photo licence you will invoice back to the client is not a project cost; it is a pass-through. The expense tracker holds a billable flag for exactly this, and expense_to_invoice previews the unbilled billable expenses of a project as invoice line items, with an optional markup. Until you separate them, every rebillable purchase makes the project look worse than it is.

Unbilled hours. Hours tracked and never invoiced are revenue you have not got. entry_mark_billed closes tracked hours against an invoice number, so a report can tell tracked from billed. If nothing is ever marked, every report reads as though the whole month was paid.

A worked shape

LineEURWhere it came from
Hours billed, 20 at 901,800.00time-tracker report
Rebilled costs420.00expense-tracker, billable, rebilled
Own costs-260.00expense-tracker, not billable
Cost of the rebilled items-420.00the same purchases, at cost
Left1,540.00

Rebilled costs appear twice on purpose, once as revenue and once as cost, and net to zero unless you added a markup. If they only appear once, the project is either 420 EUR better or 420 EUR worse than it looks, depending which side you dropped.

Keeping the hours honest in the first place

The kanban server has task_start_timer and task_log_time, which push time into the time tracker from the board rather than from memory. A task you moved to done with no time against it is the usual source of a project that mysteriously earned nothing. Free tier there is 3 projects and 200 open tasks.

Questions

Is there one tool that returns profit?

No, and there is no plan to pretend otherwise. Profit depends on what you count as a project cost, whether you allocate overhead, and how you treat unbilled time. Two honest reports you subtract yourself beat one number computed from assumptions you did not make.

Can I compare across currencies?

Not inside one number. Both servers group per currency and refuse to add them. Convert deliberately with the currency server's fx_rates_for, which returns European Central Bank reference rates, and state the rate you used. The free currency tier covers history up to 90 days.

How do I handle a fixed-price project?

Track the hours anyway, with a rate set, and treat the reported amount as what the work would have earned hourly. The gap between that and the fixed price is the thing you actually want to know, and it is invisible if you do not track the hours because the price was fixed.

What is the smallest version of this?

One prompt a week: 'hours on every project this week with amounts'. On the free tier that is exactly the window reads are clamped to, so it costs nothing and needs no key.

Related

All MCP servers and prices · All guides · Buy the bundle $39