Accuracy over speed
A timesheet that saves four seconds and loses a quarter of an hour is a worse product. Entry, approval and invoicing are deliberately explicit steps, because each one is where money is either captured or lost.
About HR-LY
The interesting half is the work itself. The other half — who worked on what, for how long, at which rate, and whether it has been billed — is where consultancies lose money quietly.
HR-LY started from a familiar scene: a finance lead with a timesheet export, an invoice register and a spreadsheet, trying to work out why the two disagreed by eleven hours. Nobody was lying. A rate had changed in March, a week had been reopened, and one project had been invoiced from submitted rather than approved time.
Those are not people problems, they are model problems. If a rate is not recorded with the hour it applied to, a later change silently rewrites history. If an entry does not carry the invoice line that consumed it, the same hour can be billed twice. If the approval state is a label rather than a rule, it will eventually be worked around.
So HR-LY is built around three records that cannot lie to each other: a time entry that knows its rate and its approval state, an invoice line that owns the entries it consumed, and an event log that records every transition in the same transaction as the change.
It is deliberately a product for project-based firms — consulting, IT services, agencies, contracting — rather than everyone. That focus is what makes the rules precise instead of configurable into meaninglessness.
A timesheet that saves four seconds and loses a quarter of an hour is a worse product. Entry, approval and invoicing are deliberately explicit steps, because each one is where money is either captured or lost.
Rate precedence, revenue, period boundaries and working days each live in exactly one module with tests. When two screens can compute a number differently, they eventually will — and the invoice is the one that has to be right.
The whole stack is designed to run on one modest machine: static marketing pages served from cache, aggregate queries in the database, and a cache tier that fails open rather than locking people out.
Tell us how your firm bills and what keeps going wrong. We will tell you honestly whether HR-LY fits.