The case that breaks fixed-price billing

You have a mission "10 days/month at €600/day = €6,000 HT". The client prefers a stable monthly invoice, it's in the contract.

Month 1: you work exactly 10 days. You invoice €6,000. All good.

Month 2: you work 15 days (project urgency). What do you invoice?

  • If you invoice €6,000: you give 5 days to the client. Not great.
  • If you invoice €9,000: you break the stable package commitment. The client may push back.

Month 3: you work 7 days (post-urgency lull). What do you invoice?

  • If €6,000: you over-invoice 3 days.
  • If €4,200: you break the package again.

Without a tool, the freelancer handles this "by hand" in Excel. Often they forget the 5 days from month 2 or balance it poorly in month 3.

The clean solution: carryover via MissionDay → Invoice link

Each worked day (MissionDay) can be linked to an issued invoice via the invoiceId field. Or stay unlinked (= awaiting invoicing).

Real workflow:

Month 2:

  • You work 15 days, you log all 15 in the calendar
  • You issue the package invoice for €6,000
  • You only link 10 days to this invoice (invoiceId = #2026-014)
  • The remaining 5 days keep invoiceId = nullpending

Month 3:

  • You work 7 days, log them
  • You issue the package invoice for €6,000
  • You link the 7 days of the month + 3 of the 5 pending days from month 2 (10 days total on the invoice)
  • 2 days still pending

Month 4:

  • You work 11 days
  • Package invoice €6,000
  • You link 10 days including the last 2 pending. No more carryover, unless you decide to keep the 11th.

End result: no day lost, the package is respected, billing is honest.

When it really matters

End of year. Your accountant asks "how many days did you actually work in 2026?". You look at the calendar: 138 days. "And how much did you invoice?". 12 × 10 package days = 120 days.

18-day gap. Without carryover, those 18 days are an accounting gray zone:

  • Either they're "given" to the client (= undocumented lost revenue)
  • Or "carried over to next year" but with no trail

With carryover:

  • 18 days at invoiceId = null on December 31 = queue to carry into 2027
  • Either you settle them by invoicing a top-up in December
  • Or you carry them to 2027 (to fold into the first invoices)

Everything is tracked. Everything is negotiable with the client. Everything is documented.

The flip side: no invisible over-invoicing

The mechanism works both ways. If you invoice 10 days but only worked 7, the app flags:

⚠ Invoice #2026-014 (10 days) — you have only 7 MissionDays in this period. Possible over-invoicing.

You correct before sending. Or you validate with a note "3 days ahead of quota — to balance next month".

Protective for both sides: neither you nor your client gets short-changed.

The technical detail: period tolerance

The engine lets you link a MissionDay to an invoice even if the invoice covers a different period. Example: May's invoice can include carryover MissionDays from April. That's true carryover.

Without this mechanism, you'd be forced into a strict mapping "month X's invoice = month X's days only", which makes smoothing impossible.

Why it matters beyond fixed-price

The MissionDay/Invoice mechanism also applies to day-rate missions:

  • You work 12 days in November at Acme at €700/day
  • You issue the invoice in early December (= €8,400)
  • But Acme pays NET_60 = cash-in late January
  • In cash-basis treasury, your revenue appears in January, not November

Without the MissionDay → Invoice → expected payment date link, the engine couldn't do this mapping. With it, it can: November is in "WIP worked uncollected", the invoice is "issued unpaid", January is "collected".

That's the granularity that enables honest treasury projection.

The classic trap without a tool

Many freelancers "approximate" their billing: "this month I worked about 12 days, I invoice 12". They don't log each day, they don't have an exhaustive calendar. Consequences:

  • No carryover: 2-3 days lost per month
  • No defense in a client dispute ("why are you billing 12? I thought it was 10.")
  • No reliable activity stats (occupation rate, margin, etc.)

Tracking at the source (each day logged) unlocks every downstream mechanism.

The moment it becomes obvious

Typical month 3. You look at your filled calendar, you see your dashboard showing "18 days pending invoicing, 12 days linked to issued invoices, 4 days given (accepted)". Everything tracked.

You know exactly how much you worked, how much you invoiced, and how much remains to invoice.

You'll never go back to "about" mode.