How to Track Profit per Project in a Service Business With AI

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for How to Track Profit per Project in a Service Business With AI.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for How to Track Profit per Project in a Service Business With AI.

Track project profitability by giving every job a reference, recording its revenue and delivery costs, and updating the expected cost to finish each week. Use spreadsheet formulas for the totals and AI to flag missing records and explain changes. Include your own delivery time, even when you do not pay yourself hourly.

A busy diary and a healthy bank balance can hide an unprofitable job. A deposit arrives before much of the work happens, while a supplier bill may arrive afterwards. Keep a project margin view alongside a separate cash view, so timing does not look like profit.

Follow me on Instagram@sagnikteaches

Decide which profit figure will guide your next job

Start with two measures. Project contribution is agreed revenue minus direct delivery costs: labour, materials used, subcontractors, travel and other costs you can reasonably attach to that job. Project profit after allocated overhead subtracts a share of the costs that keep the business running. Write those definitions above the report.

Connect on LinkedInSagnik Bhattacharya

Overhead means shared costs such as premises, general administration and business software. The allocation is a management choice, not a fact that AI can discover from a job title. Ask your accountant to help choose a consistent approach, particularly if this report will feed formal accounts or decisions about unfinished work.

Subscribe on YouTube@codingliquids

For a service business, a cost per delivery hour is often a useful starting point. If a catering company budgets $2,400 of monthly overhead across 300 realistic delivery hours, it allocates $8 per delivery hour. This is an illustrative planning rate. Review the underlying budget rather than changing the rate every time the diary has a quiet week.

Do not hide unused capacity. If the company delivers only 240 hours, jobs absorb $1,920 at that rate. The remaining $480 still belongs in the business result. Otherwise every project could appear healthy while the business loses money between bookings. Keep the difference visible below the project totals.

Use contribution when asking whether extra work covers its additional costs. Use the overhead-inclusive view when assessing whether your overall prices support the business. Neither figure is the same as cash available to spend. Avoid presenting either as an accountant-approved net profit figure unless it has been prepared on that basis.

Give records a project reference before asking AI to read them

Create a simple project register containing Project ID, Customer reference, Job description, Start date, Expected completion, Agreed fee, Approved changes and Owner. Use a short stable identifier such as CAT-041. Put it on the quotation, purchasing record, time entry and invoice. A customer name alone is insufficient when the same customer books several events.

Keep a second sheet for cost records. Each row needs a unique record reference, date, Project ID, cost category, description, amount, source document and status. Status might be recorded, committed or estimated. A committed cost is an order you have placed but have not yet received as a bill.

Keep hours in their own sheet, with Person reference, Project ID, Date, Activity, Hours and Cost rate. Multiply hours by the appropriate rate in the spreadsheet. Use role rates if individuals' pay does not need to be visible to the person reviewing project performance. Keep the underlying payroll detail restricted.

Excel's SUMIFS function can add amounts meeting several conditions, such as the project reference and cost status. If the cost sheet is called Costs and its columns follow the order above (so Project ID is column C, amount F and status H), =SUMIFS(Costs!F:F, Costs!C:C, "CAT-041", Costs!H:H, "recorded") adds the recorded costs for one project; change the last condition to "committed" for open orders. Ask AI for a formula only after describing the actual columns. Test it on three rows you can add by hand before copying it down. The job costing sheet tutorial covers the spreadsheet construction in more detail.

Illustrative matching mistake: a catering company has CAT-041 for an evening reception and CAT-042 for the same customer's morning meeting. A $180 equipment invoice says only the customer name. AI suggests CAT-041 because its description sounds closer. Leave the cost unassigned until the delivery date or purchase order confirms the match. Plausible is not sufficient evidence.

Give unassigned costs a visible place in the report. A zero in the project column must not mean the expense vanished. If the owner sees $620 waiting for a project reference, they know the margin report is provisional. This small control is more useful than a polished explanation built on incomplete records.

Follow one catering booking from quotation to final margin

Consider an illustrative catering project with an agreed fee of $6,000. Its original budget includes 60 delivery hours at a loaded cost of $24 an hour, $1,500 of ingredients, $300 of equipment hire and $160 of transport. Loaded cost here means wages plus the employment costs included in the company's agreed costing method.

The original direct cost is $3,400: $1,440 of labour plus $1,960 of other costs. Budgeted contribution is therefore $2,600. Allocating overhead at $8 for each of the 60 hours adds $480, leaving budgeted project profit of $2,120. That is a 35.3% margin, calculated as profit divided by revenue.

Two days before the event, review both spending already recorded and the remaining work. The company has used 54 hours and expects another 18. Ingredients are forecast at $1,680, hire at $420 and transport at $190. Use the following completion forecast rather than comparing the fee only with bills received so far.

Project measureOriginal budgetLatest completion forecast
Agreed revenue$6,000$6,000
Delivery hours6072
Labour at $24 per hour$1,440$1,728
Ingredients, hire and transport$1,960$2,290
Total direct costs$3,400$4,018
Project contribution$2,600$1,982
Allocated overhead at $8 per hour$480$576
Profit after allocated overhead$2,120$1,406
Margin after allocated overhead35.3%23.4%

The forecast has deteriorated by $714. Extra direct labour explains $288, ingredients $180, hire $120, transport $30 and additional overhead allocation $96. Those five differences add to $714. That reconciliation matters: the explanation should account for the full movement rather than selecting whichever expense sounds most convincing.

The owner still has decisions to make. Were the extra hours caused by an approved guest-count change, an internal preparation error or a poor estimate? The numbers cannot answer that alone. Check the event notes and change approvals. Only add extra revenue when the customer has actually agreed to pay it.

If a $400 scope change is approved with no further costs beyond those already forecast, revenue becomes $6,400 and forecast profit becomes $1,806. The margin becomes 28.2%. Record the approval reference. Do not let AI quietly insert that $400 because the job would otherwise miss its target.

After the event, replace estimates with the final hours and invoices. Keep the earlier forecasts as dated snapshots. You then have three useful comparisons: quotation against actual outcome, pre-event forecast against actual outcome, and the effect of agreed scope changes. Over time these show whether your estimating or your delivery needs attention.

Ask AI to investigate a margin change, not manufacture a cause

Give the assistant a checked summary and a small set of relevant notes. You can paste a redacted table into Claude or another approved assistant; no bank connection is needed. An individual Claude Pro subscription has a list price of $20 a month. That is an optional tool cost, not a requirement to begin tracking projects.

For shared confidential work, assess permissions and your chosen plan's data terms before uploading records. Claude Team does not use business content for training by default, but this does not remove your responsibility to limit access and strip out unnecessary customer or staff details.

Review this project margin movement using only the supplied figures.
Project: CAT-041. Budget profit: 2120. Forecast profit: 1406.
Cost movements: labour +288; ingredients +180; hire +120;
transport +30; allocated overhead +96.
Notes: guest count changed; approval reference missing;
equipment hire contains a second delivery charge.
Return: reconciled movement, evidence-supported observations,
unanswered questions, and actions with an owner.
Do not invent reasons, approvals, revenue or savings.

Illustrative output: “Profit is down $714. All of the movement is explained by the supplied cost differences. Check whether the guest-count change was chargeable and approved. Ask purchasing to confirm the second equipment delivery charge.” This is useful because it separates an arithmetic result from questions needing evidence.

An output saying “poor staff productivity caused the labour overrun” would need correcting. The records only show more hours. They do not show whether those hours were wasted, required by changed scope or omitted from the estimate. Replace unsupported blame with a request for the preparation log and the original guest count.

Keep a short recurring action list: Project, Issue, Evidence needed, Owner, Due date and Decision. Without that list, the same unexplained cost appears in a fresh AI paragraph every week. A good report ends with a small number of decisions someone can actually make.

Catch the costs that make profitable jobs look better

Unrecorded owner time

Illustrative correction: the owner of a catering company spends five hours planning a difficult menu and two hours collecting hired equipment. At a management cost rate of $30 an hour, those seven hours add $210. Record them even if the owner takes drawings rather than an hourly wage. Ask the accountant how to keep this management adjustment separate from actual accounting expenses.

The purpose is to compare jobs fairly and price replacement effort. If you ignore owner time, a project requiring constant personal intervention can look more attractive than one the team delivers independently. Do not also include the same owner cost in overhead without adjusting for the duplication.

A bill replacing an earlier estimate

Illustrative duplication: a furniture maker's installation service has a $250 transport commitment. The actual invoice arrives at $270. Replace the commitment with the bill, or explicitly mark it as superseded. Counting both produces $520 of cost and a false $250 deterioration. Link the two records through the purchase reference.

The same rule applies to estimated hours. Once completed hours enter the actuals sheet, reduce the remaining estimate. “Actual plus remaining” means only work still to do; it does not mean actual hours plus the original full job estimate.

Deposits treated as earned margin

Illustrative cash trap: a food truck receives a $900 deposit for a private service worth $3,000. It has spent $300 preparing. The $600 cash difference is not the project's profit because most delivery costs remain ahead. Show the $900 receipt in cash collected, the $3,000 agreed fee in the project forecast, and the remaining costs separately.

For work spanning reporting periods, ask your accountant how revenue and unfinished work should be recognised in the accounts. Keep the operational completion forecast clearly labelled. You can make useful delivery decisions without pretending that an informal weekly report is the formal financial statement.

Rework disappearing into general administration

Illustrative coding fix: a delicatessen provides a staffed tasting event. Two staff spend three extra hours each remaking incorrectly labelled presentation cards and rechecking the order. At $22 an hour, that is $132 of project effort. Record it under rework on the event, with a factual reason, rather than hiding it in a miscellaneous office category.

A rework category helps the owner distinguish necessary customer changes from avoidable repetition. It should not become a mechanism for punishing honest time recording. If staff believe bad news will be used against them, the report will become tidier while the underlying margins become less reliable.

Make Friday's review a short, repeatable decision meeting

Choose a weekly cut-off and ask everyone to finish time and purchasing entries before it. Start with unassigned transactions, missing hours and overdue supplier bills. Then refresh the cost-to-finish estimate with the person delivering each open project. Only after those checks should AI produce the commentary.

Use explicit local triggers rather than a universal “good margin”. For this illustrative catering company, the owner might review any project whose forecast profit falls by more than $200 or whose margin falls by more than five percentage points. These are suggested starting rules, not industry benchmarks. Adjust them to the size and variability of your jobs.

A $150 movement on a $500 job may matter more than a $250 movement on a $20,000 job. Combine an absolute amount with a percentage measure so neither disappears. Also flag missing data regardless of apparent margin. An excellent-looking result based on half the hours is not ready for a green status.

Connect the review to reliable time capture and to capacity planning. A job can remain profitable while consuming the only person available for another commitment. Margin and capacity answer different questions, but both affect whether to accept more work.

Allow, as a planning estimate, two to four hours to set up a small register and clean a handful of current jobs. Budget another 20 to 30 minutes for the first weekly reviews. Historical reconstruction can take much longer. Start with open projects and recent completed ones instead of trying to repair years of incomplete records.

At an illustrative internal time value of $30 an hour, a three-hour setup represents $90 of staff time. A 25-minute review represents $12.50. Count those costs alongside any assistant subscription. Measure whether the review helps you correct a quotation, obtain an approved variation or stop repeating avoidable rework; do not assume the tool pays for itself.

Prove the report agrees with reality before relying on it

Select three completed projects: a straightforward job, one with scope changes and one with late bills. Add their costs manually from source records. Check that each invoice appears once, each hour uses the intended rate and every approved revenue change has evidence. Investigate differences before adding more projects.

Compare the total project costs with the relevant accounting totals, allowing explicitly for timing differences, management-only adjustments and unallocated overhead. A difference is a reconciliation task, not something to smooth away. Keep a short bridge explaining which amounts sit outside the project report and why.

After four weekly reviews, check whether cost-to-finish estimates are getting closer to actual outcomes. If the final week repeatedly brings surprise hours, change when you ask delivery staff for estimates. If hire bills always arrive late, add commitments earlier. Improve the source process behind the error instead of repeatedly rewriting the AI prompt.

The finished routine should let you answer four concrete questions for any job: what was agreed, what has been spent, what remains to spend, and what decision is needed now. Once those answers are dependable, AI can make the review easier to read without becoming the authority on your profit.

Further reads

Sources: Microsoft Support, SUMIFS function; Anthropic Claude pricing page (Pro and Team plans) and commercial data-use terms, checked September 2026. All project figures are illustrative.

Want a project margin report you can trust?

On a 1:1 call, we can map your job records, agree which costs belong to each project, and identify an AI reporting routine your team can maintain.

Book a 1:1 call with me