Finances

Billable rates, budgets, and live margin. In one tool.

The number that drives the timesheet also drives the invoice. No two spreadsheets diverging by week three.

What it does

The anatomy of finances.

  • 1
    Rate sheets

    Per-person and per-project billable rates. Multi-currency with daily FX rate snapshots.

  • 2
    Live project margin

    (Billable hours × rate) − cost. Updated every time a timer stops.

  • 3
    Budgets that warn early

    Threshold-based alerts at 70 / 90 / 100% of budget. Slack DM, email, or both.

  • 4
    Invoice push

    Push billable hours to QuickBooks or Xero as invoice line items. Stripe-direct optional.

Jobs to be done

Workflows we obsess over.

  • See margin live, not next quarter

    Project margin updates with every tracked hour. Identify the unprofitable retainer in week two, not at quarter-close.

  • Catch overrun before it happens

    Project budget at 70%? Slack DM to the project lead before the next hour gets logged. No surprises at month-end.

  • Send invoices in five minutes

    Click 'Generate' on the project. Lines pre-populated from tracked time at the right rate. Review, push to QuickBooks, done.

Under the hood

For the technical buyer.

  • Rates are versioned — historical invoices stay accurate when rates change.
  • Multi-currency: FX is snapped at the time-entry timestamp, configurable to month-end.
  • Project budget is enforceable: optional hard-stop on tracking once at 110%.
  • Push-to-invoice uses idempotency keys — no duplicate invoices on retry.
  • API: every rate, budget, and invoice has a stable URL and audit log.
# Push billable hours to QuickBooks
POST /api/v1/invoices/from-project/prj_a1b2
{
  "period":  "2026-05",
  "format":  "quickbooks",
  "dry_run": false
}
# ← 201 Created · qb_invoice_id: inv_z9y8
We renegotiated three of our five biggest retainers in one quarter because we finally had the margin number in front of us.
Lila V.
Founder · Fermat · 24 people

FAQ

Common questions.

How does Huble handle multi-currency?

Track in whatever currency the entry is — convert at the FX rate at entry time, month-end, or invoice time. All three rates are stored; reports can switch between them.

Can we have different rates per client?

Yes — rate hierarchy is person → project → client → workspace default. The most specific rate wins.

Does it support retainers?

Yes. Retainer projects have a recurring budget that resets monthly. Spillover is configurable: roll-forward, expire, or surface in the report.

What about non-billable internal work?

Mark a project as internal; tracked hours flow into capacity reports but not into invoicing.

Try finances on the team for 14 days.

Every feature unlocked. No credit card. No card.