Skip to content

Airworthiness rules

Airworthiness in Syndik8 is a per-asset, always-current answer to: “can this asset be booked right now?” The answer is computed from the asset’s squawks and its maintenance items — it is not a flag a human sets. When the answer is no, the app blocks new bookings and the asset detail displays a banner listing the reasons.

An asset is airworthy when it has:

  • No active grounding squawks.
  • No overdue maintenance items.
  • No deferred grounding squawks past their deferral date.

An asset is not airworthy when any of those conditions fail.

  • All members see the airworthiness card on the asset detail and receive blocks when trying to book a non-airworthy asset.
  • Admins and owners can resolve the underlying issues: confirming, deferring, resolving, or dismissing squawks; logging maintenance completion.
  • Asset detail — Airworthiness card (heading labelled “Airworthiness”).
  • When creating a booking — the booking dialog runs an airworthiness check and shows a warning when the asset is grounded.
  • Route: /syndicates/:syndicateId/assets/:assetId.

The airworthiness card shows a boolean status and a list of issues. Each issue has a type and a human-readable message:

Issue typeTriggered by
groundingSquawkAn open (confirmed, not deferred, not resolved) squawk with severity grounding.
overdueMaintenanceA maintenance item with calculated status overdue.
overdueDeferredA deferred squawk whose deferred_until date is in the past.
  • Grounding squawks must be confirmed to ground the asset. A pending grounding squawk does not yet ground — an admin needs to confirm it. See Squawk statuses.
  • Deferral clears the ground effect until the deferral expires. Once deferred_until is in the past, the squawk grounds the asset again automatically — no further admin action required.
  • Caution and info squawks never ground. They are visible but carry no airworthiness impact.
  • Overdue maintenance grounds the asset. An item whose current asset value has passed its due_at_value (usage-based) or whose due_at date is in the past (calendar-based) yields an overdueMaintenance issue.
  • Multiple issues accumulate. If the asset has both an open grounding squawk and an overdue maintenance item, both appear as separate issues in the list.
  • Booking creation respects airworthiness. The create-booking dialog calls the airworthiness check and refuses to create the booking when the asset is not airworthy, showing the list of reasons.
  • Future confirmed bookings are auto-suspended when a grounding squawk is confirmed. The suspend_bookings_on_grounding trigger flips every confirmed booking with start_time > NOW() on the affected asset to suspended and notifies each booking’s member. In-progress bookings (already started) and past bookings are left as-is. Once the squawk is resolved or expires, suspended bookings flip back to confirmed and a booking_restored notification is sent.