AS MEC Pairing Viewer
Browse, filter, and analyze bid-period pairings on any device — including offline.
Overview
The Pairing Viewer gives pilots access to every pairing in a published bid period. Apply filters to narrow results, use the Smart Filter for natural-language searches, and review full leg-by-leg detail — block times, credit, layovers, and WOCL exposure — all in your browser or installed as an app on your phone.
| File Type | What It Contains | Extra Features |
|---|---|---|
| Preliminary Bid File | CTF pairings released before final bidding | ARC Table, Charts PDF (sys admin only) |
| Company Bid File | Final published pairings for a bid month | — |
Getting Started
Signing In
Opening the Pairing Viewer without an active session redirects you to the sign-in page. Sign-in is two steps and is handled by a secure authentication service — your credentials are never sent directly to the viewer.
Installing the App (iOS)
On iPhone and iPad, the Pairing Viewer can be installed to your home screen for a full-screen experience without browser chrome.
Interface Tour
Header Bar
The navy header is always visible. It shows the current bid period name, the file selector, and the hamburger menu.
Menu
Tap ☰ to open the menu. ARC Table and Charts only appear when a Preliminary file is loaded, and ARC Table is only visible to system administrators.
📊 Dashboard — Opens the scheduling dashboard in a new tab.
📈 ARC Table — Daily crew requirements. Preliminary files only; sys admins only.
📄 Charts — Opens the preliminary report PDF. Preliminary files only.
❓ Help — Opens this guide.
🌙 / ☀️ Dark/Light Mode — Toggles the color theme. Preference is saved.
Logout — Ends your session and clears cached data.
Filter Panel
The filter panel behavior depends on your screen size:
| Screen Size | Filter Panel Behavior |
|---|---|
| Phone (mobile) | Tap the ▲ Filters tab at the bottom of the screen to slide the panel up. Tap the backdrop or ✕ to close it. |
| Tablet / Desktop | Always visible as a left sidebar. Starts collapsed (40 px strip). Click the ‹ arrow to expand; click it again to collapse. |
The red badge shows the number of active filters.
Each section in the panel can be expanded or collapsed by clicking its label. A blue dot appears on any section that has an active filter. Click Clear Filters at the bottom to reset all filters at once.
Results Panel
The results panel shows all pairings matching your current filters, in published file order. The count at the top updates instantly. On mobile, the results fill the screen when the filter panel is closed.
Pairing Cards
Each pairing is displayed as a card.
| Day | DH | Flt | Dep | Arr | Blk | Gnd |
|---|---|---|---|---|---|---|
| 1 | 234 | SEA 05:30 | ANC 08:45 | 3:15 | — | |
| 1 | 788 | ANC 12:00 | PDX 16:30 | 2:30 | — | |
| ✦ PDX · 12:30 rest | ||||||
| 2 | 101 | PDX 04:15 | SEA 05:00 | 0:45 | — | |
| 2 | DH | 502 | SEA 10:00 | LAX 13:10 | 2:10 | — |
| Section | What You See |
|---|---|
| Header | Base · Pairing # · Length · Instance count (×) · Report & Release times |
| Leg rows | Day · DH flag · Flight number · Station & local departure time · Arrival · Block · Ground |
| Layover row (blue) | Overnight station and rest duration |
| Footer | Total Credit · Total Block · TAFB |
| Calendar | Monthly grid of every date the pairing operates (on phone screens, swipe left on the card to reveal it) |
Color Coding
| Highlight | Meaning |
|---|---|
| Red row | WOCL leg — departs during the 02:00–05:59 base-local redeye window |
| ✦ Blue row | Layover — shows overnight station and rest time |
| DH | Deadhead leg — you are a passenger, not the flying crew |
4×) shows how many times this exact pairing repeats during the bid period.✦ Smart Filter
The Smart Filter lets you describe what you are looking for in plain English. It translates your request into filter settings and can find pairings that match complex patterns the manual filters alone cannot express.
Open it by tapping the wand button in the bottom-right corner of the screen. It is only available when you are online.
How It Works
When you send a message, it reads your request along with the currently active filters and the bid period dates. It then:
- Sets standard filter fields (base, days, layover, report time, etc.)
- Runs sequence analysis to find pairings matching complex leg-order patterns
- Can rank pairings by criteria (e.g., "show the top 5 trips by credit")
The conversation is multi-turn — you can follow up ("now remove the redeye ones") and the Smart Filter remembers your previous requests within the same session.
Example Queries
| What You Type | What Happens |
|---|---|
| "4-day trips with a layover in HNL" | Sets length to 4 days, adds HNL as a layover station |
| "Early morning SEA trips with no redeye" | Sets base to SEA, report < a morning threshold, redeye to 0 |
| "Show me trips with a redeye leg followed by a short layover" | Runs sequence analysis, highlights only the matching pairings |
| "What are the top 5 highest-credit 3-day trips?" | Ranks pairings by credit and shows a list; filters to those 5 |
| "Now show me only the ones that report after 06:00" | Adds a report-time filter on top of the previous result |
| "Clear everything" | Resets all filters back to defaults |
Limitations
- Online only. The Smart Filter button is hidden when the app is offline.
- Current file only. The Smart Filter only has access to the loaded pairing file — it cannot search across multiple months or compare files.
- No external knowledge. It cannot look up hotel information, crew scheduling policy details, or anything outside the pairing data.
- Session memory only. Clearing the conversation (or reloading the page) resets the chat. The Smart Filter has no memory of previous sessions.
- Sequence analysis is approximate. "A redeye followed by a short layover" uses structural leg-pattern matching — confirm results in the pairing cards.
Filters In Depth
All filters use AND logic — a pairing must satisfy every active filter to appear. Settings are saved automatically and restored on your next visit.
Base
Tap one or more base chips to show only pairings originating from those bases. Multiple bases are allowed — select all that apply.
Trip #
Enter a pairing number to jump directly to a specific trip. Accepts partial matches — typing 882 will match trip 45882369.
Pairing Date
Use Start Date and End Date to restrict results to pairings that report (check in on Day 1) on or between those dates.
Active On
The Active on date picker shows pairings that have any leg operating on that specific date — useful for checking coverage on a particular day regardless of when the pairing starts.
Pairing Length
Select a day count from the dropdown to show pairings of exactly that length. Choose Any to remove the restriction.
No. of Legs
Filter by total flight legs in a pairing using a comparison operator.
| You Type | Matches Pairings With… |
|---|---|
4 or =4 | Exactly 4 legs |
>4 | More than 4 legs |
<=6 | 6 legs or fewer |
!=2 | Any number except 2 |
Station
Finds pairings touching an airport on any leg. Supports single stations, routing sequences, and exclusions. Separate multiple entries with commas.
| You Type | Matches Pairings That… |
|---|---|
ANC | Touch ANC on any leg |
ANC, ORD | Touch ANC or ORD on any leg |
SEA-PDX | Have a direct SEA → PDX leg (non-stop) |
NOT LAX | Never touch LAX |
NOT LAX, ORD | Never touch LAX or ORD |
ANC, NOT LAX is not supported; use separate filter passes instead.Flight Number
Find pairings by flight number. Separate multiple entries with commas; use a hyphen for ranges.
| You Type | Matches Pairings That… |
|---|---|
1234 | Include flight 1234 |
1234, 5678 | Include flight 1234 or 5678 |
7000-7010 | Include any flight from 7000 to 7010 |
NOT 7000-7099 | Do not include any flight 7000–7099 |
800 and 0800 match the same flight.Reporting Times
Report time — when the pairing checks in on Day 1. Release time — when it ends. Both use 4-digit 24-hour format.
| You Type | Meaning |
|---|---|
<0600 | Reports before 06:00 |
>=0500 | Reports at 05:00 or later |
>=0500<0700 | Reports between 05:00 and 06:59 (chain two conditions) |
<=1800 | Releases at or before 18:00 |
Credit & Block
Filter by Total Block, Total Credit, Total Deadhead, or Rig time. Use HH.MM or HH:MM format — the digits after the separator are minutes, not decimal fractions.
| You Type | Meaning |
|---|---|
>4.30 | More than 4 hours 30 minutes |
>=14:00 | 14 hours or more (colon also works) |
<=8.00 | 8 hours or less |
4.30 means 4 hours 30 minutes, NOT 4 hours 18 minutes. The format is hours.minutes, not decimal hours.Redeye
Filter by the number of WOCL legs in a pairing. A WOCL leg is any leg whose duty period overlaps the 02:00–05:59 base-local window (shown as a red row in the pairing card).
| You Type | Matches Pairings With… |
|---|---|
0 | No WOCL legs |
1 or =1 | Exactly 1 WOCL leg |
>=2 | 2 or more WOCL legs |
!=0 | At least one WOCL leg |
Layovers
Checks overnight layover stations (not same-day turns). Optionally add a duration condition. Separate multiple entries with commas.
| You Type | Matches Pairings That… |
|---|---|
AUS | Have any overnight in Austin |
AUS, DEN | Have an overnight in Austin or Denver |
AUS >12 | Have an AUS layover longer than 12 hours |
AUS >12, DEN <10 | AUS overnight >12 h, or DEN overnight <10 h |
NOT ORD | Have no overnight in Chicago O'Hare |
NOT AUS >12 | No AUS layover exceeding 12 hours |
AUS >1.5 means more than 1 hour 30 minutes. NOT applies to all entries in the field.ARC Table
The ARC Table shows daily pilot crew requirements per base for every day of the bid period. It is only available when a Preliminary Bid File is loaded and you have system administrator access. Open it from Menu → ARC Table.
| Date | ANC | SEA | SFO | LAX | PDX |
|---|---|---|---|---|---|
| 2026-03-01 | 12 | 45 | 22 | 18 | 8 |
| 2026-03-02 | 11 | 47 | 20 | 19 | 9 |
| … continues for each day of the bid period | |||||
Click Download CSV to save the table as a spreadsheet-compatible file.
Charts PDF
The Charts option opens the preliminary report PDF for the loaded file. It is only available with a Preliminary Bid File loaded. Open it from Menu → Charts.
The PDF contains per-base block hour charts and pairing statistics generated when the preliminary file was first processed. From the viewer you can open the PDF in a new tab or download it.
Offline Mode
The Pairing Viewer works without internet access as long as you have loaded a file at least once while connected. When connectivity is lost, an ⚡ Offline badge appears in the header.
| Situation | What Happens |
|---|---|
| App opened with no network | Loads the last-used file automatically; all filters work normally |
| File selector | Disabled — you cannot switch files while offline |
| Smart Filter | Button is hidden — not available offline |
| Network returns | Detected automatically; badge disappears and selector re-enables |
| After logout | Cached file is removed from device storage |
Dashboard
The Dashboard provides trend analysis across recent bid months: block hours, WOCL exposure, commutability, trip length distribution, and more. Open it from Menu → Dashboard (opens in a new tab) or navigate directly to /dashboard/.
| Tab | What's Shown |
|---|---|
| Base Overview | Block hours trend chart + a card per base showing trip length, WOCL %, commutability, and top layovers vs. prior months |
| System Stats | System-wide volume table + stacked bar charts for trip length, WOCL, and commutability across all bases |
| ARC | Daily crew requirements table, sourced from the most recent preliminary data; downloadable as CSV |
Clicking a bar in any chart opens a Pairing Modal that lists the individual trips behind that data point — with full duty and leg detail.
Admin Admin Panel
The Admin Panel is accessible to users with the admin role. Navigate to it via the Dashboard (/dashboard/admin/).
File Upload
Drag and drop — or click to browse — one or more CTF or TXT files to upload them into the system.
- CTF files — Preliminary bid data. Updates the prelim tables, regenerates the charts PDF, and triggers a stats refresh.
- TXT files — Final company bid data. Adds to the permanent bid tables for dashboard history.
- Multiple files can be dropped at once and are processed in parallel (revised files are queued after originals).
- Re-uploading the same file is blocked (duplicate hash detection returns a 409 status).
A progress card tracks each file through its pipeline steps. It auto-dismisses 5 seconds after all jobs complete.
Users
The Users page shows everyone who has accessed the system. You can set each user's role:
| Role | What They Can Access |
|---|---|
| admin | Everything — file upload, user management, config, logs |
| sys admin | All files plus the ARC Table in the portal |
| viewer | All CTF and TXT files in the portal |
| TXT Only | Company bid files only (no CTF/preliminary files) |
Config (Rules)
The Rules page provides a YAML editor for config.yaml — the system configuration file that controls WOCL windows, layover thresholds, commutability rules, and special-report parameters.
- Changes are validated client-side before saving — an error message appears if the YAML is malformed.
- Saving immediately applies the changes system-wide (no restart required).
Logs
The Logs page has three tabs:
| Tab | Contents |
|---|---|
| Info | General application events, API activity |
| Errors | Exceptions and pipeline failures |
| Parsing | CTF/TXT file import details and warnings |
Each tab has a file selector if multiple log files are present (logs rotate over time). Logs are read-only.
Tips & Tricks
Find all early-morning turns
Set Report Time to <0500 and Pairing Length to 1 day.
Find high-credit 3-day pairings
Set Pairing Length to 3 days and Total Credit to >=14:00. Or just ask the Smart Filter: "3-day trips with at least 14 hours of credit."
Find pairings that fly a specific route
Use the Station filter with a routing sequence — for example, SEA-ANC shows all pairings with a direct Seattle–Anchorage leg.
Check who operates on a specific date
Use the Active On date picker to see every pairing that has a leg operating on that date, regardless of when the trip starts.
Find redeye-free pairings
Set Redeye to 0. Only pairings with no WOCL legs will appear.
Check commutability
Combine Report Time (e.g., >=0700) and Release Time (e.g., <=2100) to narrow results to commuter-friendly windows.
Exclude a layover city
Use NOT ORD in the Layovers filter to see only pairings with no overnight in Chicago.
Use the Smart Filter for complex patterns
Filters like "a redeye leg followed by a short layover" are impossible in the manual filters but work naturally with the Smart Filter: type it in plain English and it will run the sequence analysis for you.
Your filters are always saved
Filter settings persist across sessions — even after restarting your device. Press Clear Filters (or ask the Smart Filter to "clear everything") to start fresh.
Dark mode
Tap Menu → Dark Mode to switch to a dark color scheme — useful in low-light conditions. Your preference is saved per device.
Dark mode — toggle via Menu → Dark Mode