By creating an account on this site (rosteriqapp.com) and using it, you agree to the terms below. If you do not agree, do not create an account or use the app.
RosterIQ is an independent, unofficial pairing viewer built and operated by Saif Radwan, a single Cargojet pilot (the "Operator"), on a personal basis.
At this time, RosterIQ is not a Cargojet product and is not affiliated with, sponsored by, endorsed by, or approved by Cargojet, the Air Line Pilots Association (ALPA), any other airline, union, government, or regulatory body. References to Cargojet, aircraft types, airport codes, and pairing data are factual references only and do not imply any business relationship. Any future affiliation, sponsorship, or endorsement will be reflected in an updated version of these Terms.
RosterIQ requires a personal account and is intended only for current Cargojet pilots as a personal bid-analysis convenience. To see Cargojet pairing data you must create an account, verify your email, and link (bind) your account to your own Cargojet pilot record by confirming your employee number and last name. By creating an account and binding it, you represent that you are an active Cargojet pilot, or have been individually authorized by the Operator, and that the pilot record you bind to is your own.
You agree not to:
The right-click block and DevTools shortcut block on this site are anti-casual-snooping speed bumps, not security boundaries. Circumventing them gives you no rights you would not otherwise have under these Terms.
RosterIQ is provided "AS IS" and "AS AVAILABLE." The Operator makes no representations or warranties of any kind, express or implied, including without limitation warranties of accuracy, completeness, timeliness, fitness for a particular purpose, merchantability, non-infringement, or uninterrupted availability.
The pairing data shown may contain errors, omissions, formatting differences from the source, or stale information. Always verify pairing details, dates, times, and durations against the official Cargojet publication before bidding, trading, calling crew scheduling, or making any operational decision. RosterIQ is a convenience tool, never a system of record.
To the fullest extent permitted by law, the Operator is not liable for any direct, indirect, incidental, special, consequential, exemplary, or punitive damages of any kind, including without limitation:
This limitation applies regardless of the legal theory (contract, tort, negligence, strict liability, statutory, or otherwise) and applies even if the Operator has been advised of the possibility of such damages.
All software, code, layout, design, text, original content, and analytics displays in RosterIQ are the exclusive property of the Operator. You are granted a limited, revocable, non-transferable, non-exclusive license to access and use RosterIQ for the authorized use described in Section 2.
You may not copy, modify, adapt, translate, sell, license, sublicense, distribute, or create derivative works of any part of RosterIQ or its underlying code, in whole or in part, by any means.
The pairing data itself, the Cargojet name, and any Cargojet trademarks remain the property of Cargojet. Nothing in these Terms transfers any right to that data or those marks; RosterIQ displays them under fair-use / nominative-use principles for the descriptive purpose of identifying pairings to the pilots they apply to.
To operate RosterIQ, the following is collected and stored on Cloudflare's infrastructure (the hosting provider):
This data is visible only to the Operator and is used to verify authorized use, diagnose bugs, and inform feature priorities. It is not sold, shared, or transferred to any third party except as necessary to operate RosterIQ (Cloudflare as hosting provider, and Resend as the email-delivery provider for verification and account email, each subject to their own terms). The Operator may delete any record at any time without notice.
Anonymous usage telemetry: RosterIQ also records aggregated, de-identified counts of which features and filters pilots use, including which filters, sort keys, and modal tools are opened, and which account and navigation controls are used, broken down by rank (CA/FO). No employee numbers, names, IP addresses, or individual session details are stored in this telemetry. Only aggregate per-rank counts (for example, "FOs activated the Carry Out filter 412 times in May 2026"). This data is used solely to inform product decisions about which features to maintain or improve.
Operator-side audit log: a record is kept of administrative actions the Operator takes, for example reviewing or moderating swap listings, binding, unbinding, suspending, or deleting accounts, resetting a password, changing an account email, or signing out active sessions, with a timestamp and approximate location of the action. This log is internal and exists for the Operator's own review and accountability. It does not collect any new pilot-identifying information beyond what is already covered by the bullets above; a record that references an account will reference that account's identity, since the action targets records already covered above. No pilot browsing action is added to this log.
Presence tracking: while you're using RosterIQ in an open browser tab, your client periodically reports a "last seen" timestamp along with your employee number, position, and base to the Operator's server. This data exists only so the Operator can see currently-active sessions in an admin dashboard, for example to confirm whether a pilot is online before reaching out, or to identify a session that should be signed out for security reasons. Reports stop when you sign out, close the tab, or switch to another browser tab; entries auto-purge from the server's view after 5 minutes of no activity. This does not include any new pilot-identifying information beyond what sign-in records already capture.
Pairing Swap and Deadhead Swap screenshots: if you optionally attach a screenshot to a Pairing Swap or Deadhead Swap listing, the image is stored on Cloudflare R2 and is visible only to authenticated pilots at the same base and rank as you. The image is automatically deleted when the listing is removed or purged. Image bytes are not shared with any third party beyond Cloudflare as the storage provider. Do not upload screenshots containing information you do not want other same-base, same-rank pilots to see; the system shows the image as-is.
Vacation Swap photos: if you optionally attach one or more photos to a Vacation Swap listing (for example, a screenshot of your schedule or vacation block), each image is stored on Cloudflare R2 and is visible only to you and to authenticated pilots at the same base and rank as you. The images are automatically deleted when the listing is deleted (by you or the Operator). Image bytes are not shared with any third party beyond Cloudflare as the storage provider. Do not upload photos containing information you do not want other same-base, same-rank pilots to see; the system shows the image as-is.
Per-feature time spent: while you have RosterIQ open and are actively using it, your client periodically reports which feature area you are in (for example, the pairing viewer, Vacation Swap, Pairing Swap, or your account settings) along with your employee number, so the Operator can see how much active time is spent in each feature. Crediting pauses while you are idle. This is an extension of the session-timing and presence tracking described above; it adds a per-feature breakdown but no new pilot-identifying information. It is visible only to the Operator, is used solely to understand which features pilots find useful, and is not sold, shared, or transferred to any third party beyond Cloudflare as the hosting provider.
Support interactions: RosterIQ shows an optional Support link that opens a dialog inviting you to support the project (for example, via a "Buy Me a Coffee" page). If you open that dialog or click through to the support page, the Operator records that you did so: the action, the time, your linked identity, and an approximate IP-based location, so the Operator can see which pilots are engaging with the support option. This adds no payment information (any actual payment happens on the third-party support page under that provider's own terms, not within RosterIQ). It is visible only to the Operator and is not sold, shared, or transferred to any third party beyond Cloudflare as the hosting provider.
Listing moderation: the Operator may review, edit, correct, or remove any swap listing you post (Pairing Swap, Vacation Swap, or Deadhead Swap), for example to fix a pairing code or schedule detail that did not capture correctly, or to remove content that does not belong. If the Operator edits a listing that already has open swap proposals against it, those proposals are automatically cancelled and the proposing pilots are notified (an in-app message, plus an email if they have the matching notification preference enabled) so no one acts on stale terms. These moderation actions are recorded in the Operator-side audit log described above, referencing the affected listing and its owner's account; they collect no new pilot-identifying information beyond what is already covered above.
Layover Buddy: Layover Buddy is off by default and only active if you turn it on. When you opt in, RosterIQ stores, on its servers, the city and time window of your layovers (derived from the bid award you load), linked to your account and pilot identity, and shows them to other pilots according to the visibility you choose. This is your scheduled layover windows from your bid award, not live or GPS location. You choose who can see you: only pilots who are also sharing (reciprocity), only specific pilots you allow, or everyone who is sharing; and you can block any pilot. Other pilots see your name and crew position, never your employee number. Other sharing pilots' layovers are shown to you on the same basis. Opting out immediately deletes your published layover windows. RosterIQ does not message other pilots on your behalf; coordinating any meet-up is up to you.
Cross-device schedule sync: the Schedule page lets you load your Cargojet bid-award PDF to build a personal monthly schedule. Your bid-award PDF is parsed on your own device and is never uploaded. If you leave the "Sync my schedule to my other devices" toggle on (it is on by default), RosterIQ stores the finished schedule data that parsing produces (your trips, dates, and days off), linked to your account, on its servers, so it is available when you sign in on another device. This stored copy is visible only to you and the Operator, is not sold, shared, or transferred to any third party beyond Cloudflare as the hosting provider, and is deleted when you turn the toggle off or remove your schedule. Turning the toggle off keeps everything on your current device only.
Sign in with Google (optional): you can create your account or sign in using a Google account instead of a password. If you do, Google sends RosterIQ your name, your email address, and a Google account identifier, and RosterIQ stores the email address and that identifier so future Google sign-ins reach the same account. RosterIQ never sees or stores your Google password, and nothing about your RosterIQ activity is sent back to Google. If a RosterIQ account already exists with the same email address, signing in with Google links that Google account to it; your password keeps working too. Your use of Google sign-in is also subject to Google's own terms and privacy policy.
Listing share links: if you use the Share button on one of your swap listings, RosterIQ creates a time-limited public preview page for that listing at a random link, so you can post it in a group chat (for example WhatsApp). Anyone who has the link can see the listing details you posted, any photos attached to it, and your name, without signing in. The link stops working when the listing is filled, removed, or expires, and sharing the same listing again replaces the old link with a new one.
WhatsApp number: your WhatsApp number is collected when you create an account, and existing accounts are asked to add one. It is stored with your account and is visible only to you and the Operator. It is not shown to other pilots unless you turn on the separate Layover Buddy WhatsApp messaging opt-in described below, it is not used by RosterIQ to send you messages, and it is not sold, shared, or transferred to any third party beyond Cloudflare as the hosting provider. Any feature that shares it with other pilots is a separate, explicit opt-in; the Layover Buddy WhatsApp messaging option below is the first. You can change or remove the number in your account settings at any time.
Layover Buddy days off (optional): if you also turn on day-off sharing inside Layover Buddy, RosterIQ additionally stores the dates of your days off (from the bid award you load) together with one city you choose as your usual days-off location, and shows them to other pilots according to the day-off visibility you pick. By default that is only the pilots on your approved list; you can instead choose everyone who is sharing. Day-off windows are city and dates only, never your address or live location. Turning day-off sharing off, opting out of Layover Buddy, or removing your schedule deletes your published day-off windows.
Layover Buddy WhatsApp messaging (optional): inside Layover Buddy you can separately turn on "Let buddies message me on WhatsApp". While it is on, pilots who appear as your matches (pilots already entitled to see one of your shared windows under the visibility rules above) also see a button that opens a WhatsApp chat with you, which necessarily shares your WhatsApp number with them. That is the only place the number is shown. The conversation itself happens in WhatsApp under WhatsApp's own terms; RosterIQ stores no messages and never messages anyone on your behalf. Turning the option off stops sharing the number the next time matches load, and it does not change who can see your windows.
Connecting your VMO schedule (v1.19): RosterIQ can connect to your VMO Crew Web schedule so your live, up-to-date roster shows in the app and so it can tell you when your trips change. To connect, you paste your own VMO schedule share link. RosterIQ stores that link encrypted at rest under safeguards appropriate to its sensitivity, and does not intentionally record it in application logs. While you are connected, RosterIQ reads your schedule from VMO on your behalf periodically (currently about every 30 minutes) and when you tap Check now; we may change how often we check. What it reads is your schedule and operational changes: your trips, duties, flights, positioning, rest, ground events, and the crew positions on your trips. Because a trip is crewed by more than one person, what RosterIQ reads necessarily includes limited information about the other crew on your trips (such as their crew position and the identifier VMO uses for them). RosterIQ uses that only to show you your own trip and, where enabled, the naming feature described below. From that, RosterIQ derives and stores, linked to your account, the things the app shows you: change alerts (for example a retimed or cancelled trip), your layover and day-off windows for Layover Buddy if you have that on, and any swap listings you choose to create from your schedule. The share link grants read access to your VMO schedule only; RosterIQ cannot change anything in VMO, and you can revoke the link inside VMO at any time, which stops all further reads. When you disconnect in RosterIQ, we delete the stored link and the data we derived from it (your schedule snapshot, your change alerts, and your synced VMO months), including the association between your VMO crew identifier and your account, from our active systems promptly, and routine encrypted backups age out on our normal backup cycle. After you disconnect, colleagues' earlier alerts revert to showing your crew position rather than your name. This VMO schedule data is visible to you and the Operator, and is not sold or shared with any third party except (i) Cloudflare as our hosting provider, and (ii) the limited sharing you switch on yourself, described in the WhatsApp and crew-naming sections below. The Operator can see, in one place, which pilots have connected VMO and the contact details you have provided. RosterIQ is an independent, unofficial tool and is not affiliated with, endorsed by, or connected to Cargojet or VMO. By connecting, you confirm that you are entitled to access this schedule and to use RosterIQ to read it on your behalf, and that doing so does not breach any policy or agreement that applies to you.
WhatsApp for swaps and trades (v1.19): The Vacation Swap and Pairing Swap features (including Deadhead Swap) use WhatsApp as the way pilots reach each other about a trade. When you post a listing or send a proposal, the pilot on the other side of that specific trade can see a button that opens a WhatsApp chat with you, which shares your WhatsApp number with that pilot. Your number is shown only to pilots you are actually trading with (the owner of a listing you propose on, and pilots who propose on a listing you posted), never to the general list of pilots browsing swaps. This is in addition to the Layover Buddy WhatsApp option described above, and it is why a WhatsApp number is needed to use the swap features. The conversation itself happens in WhatsApp under WhatsApp's own terms; RosterIQ stores no messages and never messages anyone on your behalf. You can change or remove your number in your account settings at any time; removing it stops it being shared with new trades. Note that once your number has been shared with a pilot for a trade, that pilot keeps whatever they have already seen; removal only prevents future sharing.
Naming crew in schedule alerts (v1.19): While you are connected to VMO, RosterIQ records the crew identifier VMO uses for you, linked to your account, and removes that association when you disconnect, as described above. This lets RosterIQ put a name to a crew change in an alert, so instead of "your paired First Officer changed" a colleague can see who joined or left the trip. The names come from the company pilot roster RosterIQ already holds (the same roster used to bind your account); no new source of names is added. Only the crew position, or a name of a pilot who is also a RosterIQ user connected to VMO, appears in an alert; RosterIQ does not publish who you fly with anywhere else. Naming works both ways. Because you connect VMO, a colleague who is also a RosterIQ user and who flies with you may see your name (from the company roster) when your presence on a shared trip changes, in the same way you can see theirs. You can turn off being named to others in your settings while still using VMO connect for your own alerts.
Your acceptance of these Terms is recorded with your account when you create it (the version you accepted, and when). RosterIQ does not rely on browser local storage to keep you signed in; your session is held in a secure, HttpOnly cookie. No payment or sensitive financial information is collected.
By using RosterIQ, you consent to this collection.
The Operator may revoke access, suspend or delete your account, or discontinue RosterIQ at any time, for any reason or no reason, with or without notice. You may stop using RosterIQ at any time, and may request deletion of your account using the in-app Feedback button. Sections 4 (Limitation of Liability), 5 (Intellectual Property), 6 (Privacy), 8 (Indemnification), 10 (Governing Law), and 11 (Severability) survive termination.
You agree to indemnify, defend, and hold harmless the Operator from any claim, demand, loss, damage, cost, or expense (including reasonable legal fees) arising out of or relating to:
The Operator may update these Terms at any time. You accept the then-current Terms when you create your account. For material changes, the Operator may require renewed acceptance or notify account holders by email or in-app notice; continued use of RosterIQ after a change constitutes acceptance of the updated Terms.
These Terms are governed by the laws of the Province of Ontario, Canada, without regard to conflict-of-laws principles. Any dispute arising out of or relating to these Terms or RosterIQ shall be resolved exclusively in the courts located in Toronto, Ontario.
If any provision of these Terms is held invalid or unenforceable, the remaining provisions shall continue in full force and effect. Failure to enforce any right under these Terms is not a waiver of that right.
For questions about these Terms or to report a violation, use the in-app Feedback button (visible after sign-in).