How it works In development
Capture once.
Compute at export.
Three steps and one rule: never store a number an authority might define differently. The same record then answers two questions — what you have flown, and whether you are still inside your limits.
Capture
Block and airborne times in UTC. Departure and arrival aerodromes. Aircraft type and registration. The crew role you actually flew. Actual conditions, simulated conditions and time under IFR, kept apart.
Enrich
Sun and twilight timestamps are resolved for the position and date of the flight, and the greatest distance from departure is computed from the route. These are facts about the flight, not interpretations of it.
Compute at export
Choose an authority. Night, cross-country and command time are calculated against that authority's rules, into that authority's columns, at that moment.
The same record answers a second question. Those three steps produce your hours record. They also produce your flight-time-limitation position — duty, rest and the cumulative limits, run against the authority you fly under. One set of entries, two outputs.
Most logbooks stop at the first. Duty and rest end up in a separate system you do not control, which is why pilots so often know exactly what they have flown and not whether they can fly tomorrow.
Fly for anyone. Don’t see your operator’s rules? Send them — we’ll build the scheme, and it then works for everyone at your airline.
Version one computes your actual position from the record you already keep — no roster feed required. Forward projection comes after. Sojourn shows you where you stand. Figures are indicative — confirm against your Operations Manual. Not legal advice.
The rule behind it
What we refuse to store
Night, cross-country and command time are never written to the record as numbers. Not once. The moment you store “4.9 hours night” you have silently committed to one authority's definition, and the record becomes wrong everywhere else without ever looking wrong.
This is the single decision the whole app is built around, and it is the reason the same logbook can file correctly in Dubai and in Dublin.
Getting your history in
Import, without inventing anything
Roster import
Sojourn reads the rosters airlines actually publish. Where a source carries a field, we use it. Where it does not, we leave the field empty and tell you — we do not infer a registration or a crew name that the roster never contained.
Coming from another logbook
Imported totals are marked as imported. If a previous app stored a categorised night total under rules we cannot reconstruct, that total is preserved as a carried-forward figure rather than silently recomputed as though we knew how it was derived.
Honest provenance over silent inference. A logbook is a legal document, and a plausible guess in one is worse than a visible gap.