Ranks
Backoffice path: backoffice/ranks
Available to roles: System Administrator, Administrator
Overview
Ranks define the career progression ladder for pilots in your airline. Each rank represents a tier with specific requirements that pilots must meet to advance. The ranks system controls who can fly what, how pilots progress, and what happens when pilots become inactive.
Rank Fields
| Field | Description |
|---|---|
| Name | Display name of the rank (e.g., "First Officer", "Captain"). |
| Slug | Auto-generated URL-safe identifier based on the name. |
| Color | Hex color code used for visual identification in the UI (e.g., #FF5733). |
| Icon | Icon displayed alongside the rank name. |
| Level | Numeric value that determines the rank's position in the hierarchy. Higher values represent higher ranks. |
| Is Default | Toggle indicating this is the starting rank assigned to new pilots. Only one rank should be marked as default. |
| Minimum Hours | Minimum total flight hours required to be eligible for this rank. |
| Minimum Flights | Minimum number of completed flights required. |
| Minimum Points | Minimum Points balance required. |
| Minimum Landing Rate | Minimum average landing rate required (nullable -- leave empty for no landing rate requirement). |
| Promotion Cost | Points deducted from the pilot's balance upon promotion to this rank. |
| Seat Limit | Maximum number of pilots that can hold this rank simultaneously. Set to null for unlimited capacity. |
| Approval Mode | Either auto (pilots are promoted automatically when they meet all requirements) or manual (pilots must submit an application that staff reviews). |
Ranks Dashboard
The ranks management page includes a dashboard summary at the top:
- Total pilots -- the total number of registered pilots across all ranks.
- Pending applications -- the count of promotion applications awaiting staff review.
- Inactive pilots -- the number of pilots currently flagged as inactive.
Below the summary, each rank is displayed with its occupancy percentage -- the proportion of the seat limit that is currently filled. This helps administrators identify ranks that are approaching capacity.
Promotion Applications
When a rank uses manual approval mode, pilots who meet the minimum requirements submit a promotion application. These appear in the Pending Applications table on the ranks dashboard.
Staff can take the following actions on each application:
- Approve -- the pilot is promoted to the requested rank, and the promotion cost (if any) is deducted from their Points balance.
- Reject -- the application is denied. The pilot remains at their current rank.
Seat Limit Queuing
If a rank has a seat limit configured and all seats are occupied, new applications are queued in FIFO order (first in, first out). When a seat opens up (e.g., a pilot is demoted or leaves the rank), the next application in the queue is processed.
Inactivity Demotion
A daily background job monitors pilot activity and enforces inactivity rules:
- The system checks each pilot for accepted (completed) flights within the last
INACTIVITY_DAYSperiod. - Pilots who have not completed any flights within this window are demoted to the fallback rank (typically the default/starting rank).
- New accounts receive a grace period -- recently registered pilots are exempt from inactivity checks for a configurable number of days after account creation.
This ensures that rank positions (especially those with seat limits) are not occupied indefinitely by inactive pilots.
Activity Log
The rank edit page includes a paginated activity log that records every change to the rank's attributes (name, level, requirements, seat limit, approval mode, etc.) with timestamps and the staff member who made the change.
Best Practices
- Set clear progression requirements -- use a combination of hours, flights, and points to create meaningful milestones.
- Use seat limits sparingly -- seat limits are most useful for top-tier ranks where exclusivity adds value to the progression system.
- Consider promotion costs carefully -- a points deduction on promotion adds weight to the achievement but should not be prohibitively expensive.
- Configure inactivity days appropriately -- too short a window may demote casual pilots unfairly; too long may leave seats occupied by pilots who have left.
- Use manual approval for senior ranks -- this gives staff oversight over who reaches the highest tiers and creates a sense of accomplishment for pilots.