Easy-to-manage touch screens
Free, open-source touch screens. Guided USB setup, a drag-and-drop editor and local control. Made for Home Assistant.
Personal airline and hotel loyalty tracker: balances, elite status and perks, progress toward the next level, and expiration reminders. Works offline.
LifestyleHTML · JavaScriptGitHub @statuspointsOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Offline airline & hotel loyalty tracker: balances, elite status, Delta Medallion progress, voucher expirations.
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
A personal airline and hotel loyalty tracker: point balances, elite status and progress toward the next level, what each status gets you, and reminders before statuses, points, vouchers, or card annual fees come due. One self-contained index.html, no frameworks or external requests, and it works offline once loaded.
Open the site in your phone's browser, then:
• iPhone (Safari): Share → Add to Home Screen
• Android (Chrome): ⋮ menu → Install app (or Add to Home screen)Read the full README ↗A personal airline and hotel loyalty tracker: point balances, elite status and progress toward the next level, what each status gets you, and reminders before statuses, points, vouchers, or card annual fees come due. One self-contained index.html, no frameworks or external requests, and it works offline once loaded.
Live app: https://statuspoints.github.io/
Open the site in your phone's browser, then:
It launches full-screen from the home screen and works with no network. The app shows a one-time tip with these steps (or an Install button where the browser supports it) until you install it or dismiss the tip.
On a laptop or desktop (1000px wide and up) it becomes a dashboard: the header runs across the top, your programs fill the left (two across from 1280px, one column while you reorder them in Edit), and Coming up, vouchers, and card credits sit in a column on the right. Phones and tablets in portrait keep the single column.
Update from a screenshot: tap the Update from a screenshot card above the list (or Start from a screenshot when setting up) and choose a screenshot of your account page from an airline, hotel, or card app or website. On a computer you can also drop a screenshot anywhere on the page or paste one (⌘V / Ctrl+V). The app reads it on your device; the image is never uploaded. The first time, the open-source Tesseract text reader (about 6 MB) downloads from jsDelivr. It works out the program and reads the balance, status and its end date, this year's progress (MQDs, nights, stays, PQP and flights, Loyalty Points, tier points, status points, SQC), and member number. It recognizes 50+ programs: every airline, hotel, and card program in the app, including Emirates, Singapore, Qatar, Turkish, Lufthansa, Cathay, Qantas, ANA, JAL, Avianca, Etihad, Iberia, Aer Lingus, Aeromexico, LATAM, Frontier, Best Western, Sonesta, I Prefer, Shangri-La, Wells Fargo, U.S. Bank, and Bank of America. Each screenshot is read two ways (by the page's own columns and blocks, and as one block of lines) and the surer reading wins, so a big balance beside other text, like IHG's web page, isn't run into the next column and misread. A status in light or colored type the reader can miss (a gold "Gold" on white, a pale gray "Platinum", white on a colored badge, black on a yellow card) gets one more, darkened look when the program is named but no level was read; it counts only when the lines that look adds name exactly one of that program's levels. It also handles values printed above or below their labels, "8 of 25" targets, lifetime totals, day-first dates on European sites, and common misreads. If the screenshot doesn't name the program (say its logo didn't read), it guesses from your list when exactly one of your programs has the level shown by its full name ("Platinum Elite", not just "Platinum"), says "This looks like your …", and waits for you to check; otherwise you pick it from the list. When two readings of a screenshot disagree on a balance, it keeps the one the text reader was surer of, or the one that isn't missing its first digits; when they disagree on this year's nights, PQP or MQDs, or on the status end date, and neither reading is clearly surer, the card says so and waits for you. A screen that names a program only in a promo, partner list or transfer list (a bank's "Transfer to Marriott Bonvoy" page) is never saved to that partner: it stays with the bank, or asks. HEIC photos can't be read in Chrome or Edge; the app says so and asks for a screenshot or JPG instead. It shows what it found and what will change (no game effects on the scan), updates on its own after a few seconds when nothing looks off, and otherwise waits for Update; Fix something opens the review next to your screenshot, and every update has Undo. You can also paste text copied from a screenshot (on iPhone, press and hold the text in Photos). Two accounts in one program (yours and a family member's): add the program again with Edit → Add program and fill in Whose account (shown beside the name), or let a screenshot do it: when the member number on a screenshot isn't one you've saved, the card asks which account it is, and New account adds the second row with its own balance and number. From then on each screenshot goes to the account whose member number it shows, or whose label matches the greeting on the screen ("Welcome Back Ms. Lee"); a new account takes that greeting as its label. A screenshot read as one account (the chooser, Update on a row, the review sheet) while it shows the other account's number or greeting, or a number that isn't this one's, gets a Check this first line and waits for you; Update tapped on one of the two rows settles which account a screenshot is when the screen can't say; and text pasted into the review sheet starts on the account its number or greeting names, or makes you pick. A page that lists several statuses at once, like a card's benefits page showing Marriott Gold Elite, Hilton Gold, Leaders Club Sterling and a Priority Pass membership with their member numbers, is read program by program: the card lists them all and Update all applies them together, with one Undo. A card's level never lowers one your account shows (Gold Elite from a card page doesn't replace the Titanium Elite your Marriott account showed: the card says "Your account shows higher"), and a program you track twice is left alone when the page can't say which account it means.
Scan & collect (the game): a screenshot opens on a card that scans it with a moving beam, boxes what it found on the image (program, balance, status, counts), and lists the loot with what changes ("+2,400", "New status!", "No change"). Collect happens by itself after 4 seconds (tap anywhere on the card to pause, or Fix something to review). The points then fly into the program's row, the balance counts up, and a status upgrade or a new program sets off confetti. Each collect earns XP (10, +5 per thing updated, +25 for a new program, +40 for a new status) toward 10 levels from Rookie to Legend. Any update counts toward a weekly streak, and up to date counts balances updated in the last 30 days. There are 14 badges (First scan, Six figures, All caught up, On a roll, Bonus banked, and more), worth 50 XP each. Tap the level, streak, or up-to-date chip under the screenshot card to see Your progress: your level, which balances need an update, and every badge.
Several at once: drop or choose several screenshots (multi-select works in the phone's photo picker) and they scan one after another ("Screenshot 2 of 5", Skip this one). Collects within 2 minutes of each other build a combo (+10 XP for the 2nd, +20 for the 3rd, up to +50), and the batch ends with one toast and one Undo for all of it. Closing the card stops the batch and keeps what you collected. If a screen doesn't name its program, pick it right on the card and it's read again as that program. A streak with no update yet this week turns orange ("update by Sunday"). Small chimes play for the loot, the coins, and level-ups, and phones that can will buzz. Turn both off in Your progress.
Fair play: only real changes earn XP. Dropping the same screenshot again just confirms it's up to date: that refreshes up to date and the streak, earns 5 XP once a day per program, and doesn't count toward scans, combos, or badges. Collect says Confirm then. The loot shows the next level with the counts just read ("17 to Diamond", "$3,760 to Platinum"). Your progress lists Recent collects (date, program, what changed, XP), and Remind me weekly adds a repeating Sunday calendar event that links back to the tracker.
Simple or Detailed: above the list, Simple shows just each program, your highest status with its end date, and your balance. Detailed adds perks, progress, and the Medallion tracker. Type balances opens one screen with every balance (and Delta MQDs) to type in and save at once.
The first time you open it, pick the programs you have and, optionally, the credit cards you hold (or tap Use the example setup). Tap Edit on the program list anytime to add, rename, reorder, or delete programs, set your own status levels and where they come from, and write a note under the list. Tap any number to update a balance.
| Program | Counted in | Status earned in 2026 lasts through |
|---|---|---|
| Delta | MQDs | Jan 31, 2028 |
| United | PQP | Jan 31, 2028 |
| American | Loyalty Points (Mar–Feb year) | Mar 31, 2028 (for Mar 2026–Feb 2027) |
| Southwest | tier points | Dec 31, 2027 |
| Alaska, Aeroplan | status points, SQC | Jan 31, 2028 |
| Hilton | nights | Mar 31, 2028 |
| Marriott, Hyatt | nights | end of Feb 2028 |
| IHG, Wyndham | nights | Dec 31, 2027 |
Each balance shows an estimated dollar value ("points · ≈ $480"), and ≈ $4,820 in points & miles under the Programs heading opens a breakdown. Estimates use The Points Guy's September 2026 valuations of what points are typically worth when redeemed well (cash back is usually less). Set your own value in any program's details, or turn dollar values off at the bottom (Dollar values: Hide). Programs with no published value, like Korean Air, count only once you add one.
Open Amex Membership Rewards, Chase Ultimate Rewards, Citi ThankYou, Capital One, or Bilt to see every airline and hotel their points transfer to, with ratios (as of October 2026). Programs on your list come first, with what your balance would become ("120,000 → 240,000 points" to Hilton), and tapping one opens it. Each airline and hotel shows Top up with card points: which banks feed it and how much you have. Notes cover the fine print, like Chase transfers needing a Sapphire or Ink Preferred, Chase-to-Hyatt dropping to 4:3 on the Sapphire Preferred and Ink Preferred from Oct 1, 2026, Bilt-to-Hyatt dropping to 4:3 for everyone on Jan 1, 2027 (the ratios and goal advice switch on that day), and Citi's lower ratios on no-fee cards.
Each program's details say whether its points or miles expire (checked October 2026):
.ics file to open.Pick your cards (setup screen, or Edit → Choose cards) and the complimentary statuses and lounge access they come with are filled in automatically, adding programs like Avis or National if needed. Tap a card again to take its statuses off; statuses you typed yourself are never touched. Presets cover 66 cards from Amex (including every Delta SkyMiles card), Chase, Capital One, Citi, Barclays, Bilt, Bank of America, and Wells Fargo — searchable in the picker — checked against the issuers' own benefit pages in October 2026. When a card's benefits change (like the IHG Premier card's move to Gold Elite on Oct 1, 2026), the statuses of cards you hold update on their own the next time the app opens; ones you typed yourself are never touched. Cards with no elite status (e.g. Sapphire Preferred, Venture) are included so everyone can find theirs (CARDS in index.html). Statuses you only unlock by spending are left out, and most card statuses need enrolling with the issuer.
Annual fee dates: under the card picker, add the date each card's annual fee posts (it's on your statement). Coming up shows it 60 days ahead with what depends on the card ("6 statuses and lounge access depend on it"), and Add to calendar adds a yearly event with alerts 30 and 7 days before, so you can decide whether to keep the card before the fee hits.
Welcome bonuses: missing a minimum-spend deadline can cost 60,000–150,000 points, so each card you hold has + Add welcome bonus under its annual fee date. Enter the bonus, where it posts (filled in from the card: Amex cards → Membership Rewards, Chase Sapphire/Ink/Freedom → Ultimate Rewards, Delta cards → SkyMiles, Hilton cards → Hilton Honors, and so on; change it if yours differs), the spend required, what you've spent so far, and the deadline. It saves as you type.
Everyone who opens the site on their own phone gets their own tracker automatically. To share one device (a family iPad, say), tap Add a person at the bottom. Each person gets a completely separate tracker: programs, statuses, balances, cards, and reminders. Their name appears at the top; tap it to switch people, rename someone, or remove them (with Undo). Backups and exports cover whoever is showing and include their name in the file name.
Household totals: with more than one person on the device, a program's details show a Household section when two or more people have a balance in it: each person's balance (two accounts in the same program are added together) and the total together, plus whether the program lets family share points (Hilton, Marriott, JetBlue, United, British Airways, Flying Blue, Hyatt, Chase, Capital One, IHG, Delta, and Amex — each checked against the program's own terms on Oct 8, 2026; Wyndham's terms don't allow sharing). Programs are matched across people by the app's catalog, so custom programs aren't combined. What your points are worth adds a household total below the list ("Household ≈ $9,300", then each person's share) when two or more people have valued points, each at their own cents-per-point. Anyone who chose Hide dollar values is left out of it and named only, never their amount. Someone never given a name shows as "Person 2" (their place on the People list), and the person showing is marked Showing now. Changes made in another tab or window show up right away. It only reads the other trackers; nothing in anyone else's data changes.
Send to another device (at the bottom) makes a link that carries your whole tracker. Share it to yourself (Messages, AirDrop, email), open it on the other device, and choose Add as another person or Replace the tracker on this device. A device with nothing set up yet takes it right away. Nothing is uploaded: the data rides in the part of the link after #, which browsers never send to a server. The link includes member numbers, so only send it to yourself or someone you trust.
Everything — your program list, statuses, balances, MQDs, and vouchers — is saved only in your browser's local storage (status-tracker-v2, plus status-tracker-v2:<id> for each extra person on the device) on that device. Nothing is uploaded, nothing syncs between devices, and each person who opens the site has their own separate tracker.
The app reminds you in Coming up to save a backup if you've never made one, or if your last one is two months old and your data has changed since.
Use Export as text at the bottom to save an easy-to-read .txt summary of your programs, balances, notes, statuses and their perks, progress, points expiration dates, vouchers, and cards with their annual fee dates and welcome bonuses. Use Back up data to save a backup file (on a phone it opens the share sheet — save it to Files or AirDrop it), and Restore from backup to load it on a new device. Deleting the home-screen app or clearing the browser's website data erases your data, so keep a backup.
| File | Purpose |
|---|---|
index.html | The whole app (inline CSS + vanilla JS) |
manifest.json | Install-to-home-screen metadata |
sw.js | Service worker that caches the app for offline use |
icon.svg, icon-*.png, apple-touch-icon.png | App icons |
tests/ | Screenshot-reader cases (node tests/run-scan-tests.mjs), the game's math (node tests/run-game-tests.mjs), household totals (node tests/run-household-tests.mjs), welcome-bonus math and saving (node tests/run-bonus-tests.mjs), the status levels table (node tests/run-levels-tests.mjs), and every bug-fix check — cards, Delta Medallions, qualifying progress, people, Undo, money and the calendar (node tests/run-regression-tests.mjs, which runs each tests/run-fixes-*-tests.mjs). tests/lookalikes.js checks the whole screenshot path in a browser: 58 look-alike account pages (made-up names and numbers) pasted into the live app, read by the real text reader (see the file for how to run it). |
Edit and push. Installed copies load the cached version first and fetch the update in the background. When the new page differs (by ETag), open windows show "A new version is ready — Reload". Otherwise the update appears on the next launch. If you add or rename files, list them in SHELL in sw.js and bump VERSION.