Report · REP-025 · v1.0
Bellatrix · Project profitability for service firms
Which project makes money, which one loses and why, with each contract's margin at completion and your team's real utilization.
For consultancies, agencies, accounting and law firms, engineering firms and any business that sells hours or projects. It matches the month's hours with each role's cost and rate, direct expenses and billing, and calculates each project's margin according to its contract: time and materials, retainer or fixed price.
For fixed-price contracts it measures progress by cost incurred, compares the estimated margin at completion with the budgeted one and recognizes now the expected loss on contracts that will not cover their cost. It separates the contract asset (work done, not yet billed) from the contract liability (billed in advance) and measures utilization against available hours, not recorded ones.
Figures come from a table the AI builds by code and validates with cuadre.py; the Control sheet reconciles hours, capacity cost, progress and billing. If someone records more hours than available or a contract has no cost to complete, it stops and asks. People appear only by code and role.
What it includes
5 sections, in this order
- 01In 30 seconds: project margin, unit margin, utilization and net contract position
- 02Project portfolio: revenue, cost, margin, realization and margin at completion against budget
- 03Projects at risk: progress, estimate at completion, change in estimate and expected loss
- 04People and capacity: utilization by role, internal hours, unrecorded hours and retainer overruns
- 05Decisions (change orders, reassignments, rates and losses), assumptions, controls and glossary
Controls 6/6
What it checks before writing a single figure
C1Complete data: headers, numeric figures, no duplicate lines and valid units (cuadre.py).
C2Pre-check stop: nobody records more hours than available, all hours go to an existing project and every fixed-price contract has its cost to complete.
C3Hours and capacity reconcile: project + internal + unrecorded hours = available hours, in hours and in cost (Control sheet = 0).
C4Fixed-price contracts: cumulative revenue = progress × contract value and estimate at completion = cumulative cost + cost to complete (Control sheet = 0).
C5Billing and margin: cumulative billing = prior + month, and total margin = revenue − direct costs − provisions (Control sheet = 0).
C6Traceable figures: every figure in the Word file exists in calculo.json with the same rounding (cuadre.py verificar).
If the script ran
Repporti controls 6/6 · REP-025 v1.0 · RS2026.10 · {fecha} · fingerprint {hash}
If it did not run
NOT VERIFIED — controls not executed by code. Review the Control sheet of the XLSX.
Prompt outline
What the prompt contains, block by block
- 0Before you paste your filesFixed618
- 1Role, audience and business context839
- 2Parameters614
- 3Repporti standard405
- 4Data contract1,255
- 5Questions first420
- 6Validation with a hard stop1,814
- 7Calculation by code213
- 7-bisNo-code modeFixed455
- 8Formulas1,727
- 9Structure1,321
- 10Writing without «AI slop» and without invention908
- 11Theme and notation951
- 12QA, traceability and seal1,074
Core available in: Spanish · English
Repporti Standard
It comes out adapted to your report profile
Compatible with every country and framework in the Standard: when you copy, it is composed with your profile (country, accounting framework, report language, currency, unit and year-end). Terminology, number format and statement names come from the Standard, not from the prompt.
See the Repporti StandardHow to use it
From the trial balance to the report in three steps
- 01Configure and copy
- 02Paste into your AI
- 03Review and deliver
Anonymize before pasting
- Company name → an alias (“Client 07”); tax ID → “ID-XX”.
- Customers, suppliers and employees → codes (C001, P001, E001). The mapping table stays on your computer.
- Use an AI that does not train on your data: business plan, API or training turned off.
Who it is for
Made for whoever delivers the report
- Area
- Profitability and costs
- Frequency
- Monthly
- Industry
- Services, Agencies, Consulting
Compatibility
Which AI it works with
| Level | AI | |
|---|---|---|
| With code execution | ChatGPT · Claude | Designed for plans with data analysis (ChatGPT) or code execution (Claude): cuadre.py runs inside the AI. |
| No-code mode | Copilot · Gemini | Generates the Excel file with formulas and a Control sheet. The footer says “NOT VERIFIED” unless you run cuadre.py on your computer. |
Questions
About this report
Does it work if I don't track hours by project?
Not fully: without hours there is no cost by project. If you only have hours by person and week, the AI asks you to split them by project and states it as an assumption; the report flags that margin as estimated.
How is revenue recognized on a fixed-price contract?
By default, over time by progress measured as cost incurred over total estimated cost. If your accounting policy or framework uses another method (milestones, hours), the AI asks before calculating.
Why does a project show a negative margin for the month if the contract still makes money?
Because the project manager raised the estimated cost to complete, and the catch-up on everything recognized so far is booked in the month. The report separates that effect from the month's work.
Do individual salaries show up?
No. Cost goes by role (loaded hourly cost) and people only by code. Low utilization is presented as available capacity, not as performance.
Profitability and costs