One source of truth for billable flight hours and crew pay
Zulu-time leg timestamps drive flight hours, block hours, contract hours and crew allowances — computed, not argued over.
The problem a client brought us
“We bill flight hours by hand, and 'how many hours was that really' turns into a dispute more often than we'd like. Crew allowance payouts have the same problem when legs overlap the same day.”
Before and after
Recorded on every leg
- Wheels up / down
- Chocks off / on
- Agreed additional minutes
What billing and crew pay read
Billable contract hours
What we found and built
Every leg stores Zulu-time wheels-up/down and chocks-off/on timestamps, from which flight hours and block hours — two genuinely different aviation quantities — are computed separately and rolled into billable contract hours automatically.
- Crew allowance calendar-day deduplication, so a crew member flying two legs on the same day is paid once, not twice
- Batch confirmation that processes everything it can and reports aggregated failure reasons, instead of blocking 200 records because one is incomplete
Result
Billing and crew pay both trace back to the same source of truth — no more arguing over the number.
The pattern behind it
Process what you can, explain the rest
Failing on record 3 of 200 rolls the whole batch back and tells the user nothing useful. We process everything that can be processed and report the reasons for the rest, counted.
How we think about problemsRecognise any of this?
Most of our work starts with a message that sounds a lot like this one did.