Owner
Sees the whole picture
Revenue, margin, unbilled time and who is over budget — plus the subscription, team and billing settings nobody else can touch.
HR-LY is the time and billing platform for project firms. Vetted talent logs hours against real projects, managers approve a fixed snapshot, and approved hours become invoices that reconcile to the minute.
This quarter
+18.4%$412,800
Revenue vs delivery cost
Hover the chart, or focus it and use ← →, to read a week.
| Week | Revenue | Cost |
|---|---|---|
| W1 | 38 | 24 |
| W2 | 44 | 27 |
| W3 | 41 | 26 |
| W4 | 52 | 30 |
| W5 | 58 | 33 |
| W6 | 55 | 31 |
| W7 | 66 | 35 |
| W8 | 72 | 38 |
| W9 | 69 | 36 |
| W10 | 81 | 41 |
| W11 | 88 | 44 |
| W12 | 96 | 47 |
Revenue
$96.0k
+9.1%
Gross margin
51.0%
+2.4pt
Billable share
78%
−1.2pt
Unbilled
36.5 h
ready to bill
Hours, task, rate recorded together. Draft weeks are editable; submitted ones are not.
A state machine with an append-only event. Rejection requires a reason the member can act on.
Only approved, unstamped entries. Stamped in the same transaction, so nothing bills twice.
Why it reconciles
Every dispute we have seen came from two of these disagreeing. Here they are computed from one another, in order, inside the database.
A weekly sheet against real projects and tasks, with billable and internal hours separated at the point of entry. The rate is recorded with the hour, not looked up later.
Managers see submitted weeks and approve them as a fixed set. Approval is a state change with an event attached, so the history is a record rather than a reconstruction.
Invoices draw only from approved, unbilled entries, and stamping them happens in the same transaction. Two people invoicing at once cannot both win.
Who it is for
Same data, different permissions. Nobody sees a number they cannot act on — and nobody can change one they do not own.
Sees the whole picture
Revenue, margin, unbilled time and who is over budget — plus the subscription, team and billing settings nobody else can touch.
Approves the week
Reviews submitted time, rejects with a reason, and staffs projects. Cannot change an approved entry, which is the point.
Logs the work
One weekly sheet, the projects they are staffed on, and their own utilisation. Drafts stay editable; submitted weeks do not.
Bills it once
Approved unbilled time becomes an invoice, with the general ledger and payroll exports taken from issued documents only.
The honest comparison
You are not buying cells. You are buying refusals: the sheet cannot submit an impossible week, the rate cannot change retroactively, and an hour cannot be billed twice.
Every write resolves identity, organisation, capability and subscription before touching a row.
Invitations and resets store only a hash. A leaked database does not hand out accounts.
Status changes write an event in the same transaction as the change, so nothing moves silently.
Database-backed, revocable, and never trusted from the client for authorisation decisions.
Pricing
Fourteen days of the full product first. No card, no cut-down tier, no surprise at the invoice.
A small team finding its rhythm.
$12/user/mo
Firms running many client projects.
$29/user/mo
Delivery organisations at scale.
$59/user/mo
Still unsure? The contact page reaches a person, not a form robot.
Ask us anythingNo. HR-LY runs on localhost during evaluation and on any HTTPS domain in production. If you want to try Google sign-in, the redirect URI is the only thing that has to match.
Nothing to existing hours. Each entry carries the rate in force when it was written, so a new rate applies to new work only.
No. Approved time is immutable; a correction is a new entry with its own approval. That is what keeps an invoice defensible months later.
A spreadsheet has no model. It cannot refuse a write, snapshot a rate or prove which hours were billed. HR-LY makes the three records that matter agree.
Try the loop