Trayectoria
How much does each job generate, how much profit does the project make, and how much does each person get, without a payroll.

- 10
- screens in the module
- 3
- roles with their own permissions
- 12
- months of cash flow
The module I run in-house to administer the studio: a project is loaded once — agreed price, instalments, costs and who takes part — and from there the margin, the fixed-cost proration, the cash forecast and each person's settlement are all calculated. Ten screens, three access roles and an audit log the database refuses to delete. Every payment received can carry its invoice, every payment made has a printable receipt, and whatever is on screen exports to a spreadsheet. The same skeleton fits any business that works job by job, with an agreed price, staged payments and a team splitting the result: even the name of the thing being administered is a field in Settings.
The problem
A studio that bills by project ends up with its money in three places that don't talk to each other: a spreadsheet of instalments, the bank statement, and the head of whoever keeps the books. None of them answers the question that matters — did this job leave anything? — until the month is already closed. And when more than one person shares the result, the answer has to be argued, because everyone arrives with their own number.
The solution
A single place where the project is loaded once and everything else is derived. Margin is measured against money actually collected, not invoiced. Fixed costs are split across the month's active projects by a rule you choose, not one hard-coded. And everyone signs in with their own account: full control sees the whole portfolio, a reader sees all of it without touching anything, and an employee sees only the jobs they worked on and their own settlement. Even the noun is configurable: the module says "project" because it was born inside a software studio, but a repair shop calls it a work order and a builder calls it a site.
The outcome
The question "what am I owed?" answers itself, and gives the same number on both sides of the counter.
Tech sheet
- Next.js
- App Router
- PostgreSQL
- Roles y auditoría
