Go Back  FlyerTalk Forums > Miles&Points > Airlines and Mileage Programs > Air France, KLM, and Other Partners | Flying Blue
Reload this Page >

I built my own Flying Blue analytics suite? UXP question for the experts

Community
Wiki Posts
Search

I built my own Flying Blue analytics suite… UXP question for the experts

Thread Tools
 
Search this Thread
 
Old Dec 12, 2025 | 10:28 am
  #16  
20 Nights
500k
40 Countries Visited
All eyes on you!
 
Join Date: Jan 2022
Location: In between VLC & ALC
Programs: Flying Blue Platinum, All Accor Diamond
Posts: 1,003
While I like what you did - it doesn't seem to work as expected.

I can only go back to Dec 2022 on the FB website, so the information is incomplete. Even so, after importing the PDF, the first thing I see is that I would have 455 XP, while I have 545 XP right now.

It also somehow assumes a april-to-march qualification period, while my qualification period runs parallel to calendar years (jan-dec).

I can share more info in DM if needed. See screenshots of the PDF and the web tool in the spoiler tag, hope it helps.
Spoiler
 

b12e is offline  
Old Dec 12, 2025 | 10:49 am
  #17  
Original Poster
50 Countries Visited
All eyes on you!
 
Join Date: May 2025
Location: AMS
Posts: 140
Originally Posted by b12e
While I like what you did - it doesn't seem to work as expected.

I can only go back to Dec 2022 on the FB website, so the information is incomplete. Even so, after importing the PDF, the first thing I see is that I would have 455 XP, while I have 545 XP right now.

It also somehow assumes a april-to-march qualification period, while my qualification period runs parallel to calendar years (jan-dec).

I can share more info in DM if needed. See screenshots of the PDF and the web tool in the spoiler tag, hope it helps.
Spoiler
 
Thanks for the detailed feedback!

On the qualification period: You can actually set your own cycle in the XP Engine: tap the settings icon and adjust “Cycle Start Month” to January to match your Jan-Dec period. That should fix the timing issue.

On the XP discrepancy (455 vs 545): the PDF import is meant as a kickstart, not a perfect sync. Flying Blue PDFs only go back so far.

You can manually add missing flights, and both Miles and XP are fully editable, so you can always reconcile the numbers to match your actual balance. Think of it as a starting point that you fine-tune.

Happy to look at your screenshots in DM if you want help troubleshooting! Thanks a lot.
VikingXNL is offline  
Old Dec 12, 2025 | 11:01 am
  #18  
20 Nights
500k
40 Countries Visited
All eyes on you!
 
Join Date: Jan 2022
Location: In between VLC & ALC
Programs: Flying Blue Platinum, All Accor Diamond
Posts: 1,003
Originally Posted by VikingXNL

Thanks for the detailed feedback!

On the qualification period: You can actually set your own cycle in the XP Engine: tap the settings icon and adjust “Cycle Start Month” to January to match your Jan-Dec period. That should fix the timing issue.

On the XP discrepancy (455 vs 545): the PDF import is meant as a kickstart, not a perfect sync. Flying Blue PDFs only go back so far.

You can manually add missing flights, and both Miles and XP are fully editable, so you can always reconcile the numbers to match your actual balance. Think of it as a starting point that you fine-tune.

Happy to look at your screenshots in DM if you want help troubleshooting! Thanks a lot.
I get that, but the export PDF does contain the "correct actual" state (amount of XP, amount of miles, amount of UXP), so perhaps as a kickstart it should go from "current state" and look back, rather than start from the bottom and work up. There's, realistically speaking, no way for me to "fix" the balance besides manually add an entry with a fake flight number to "correct" the data.

There should also be events to indicated requalifications, so I guess getting the correct qualification period should also be possible automatically without manual intervention (e.g. the below screenshot).

Either way I've been platinum for longer than the PDF export, so getting old data is going to be near impossible (I do have the flights logged in Flighty, but not the XP and miles movements), perhaps the import should only consider "complete" data, in my case 2023 and newer (since the first "XP Counter offset" in the data) - and warn that older data needs to be manually added.



b12e is offline  
Old Dec 12, 2025 | 11:15 am
  #19  
Original Poster
50 Countries Visited
All eyes on you!
 
Join Date: May 2025
Location: AMS
Posts: 140
Originally Posted by b12e
I get that, but the export PDF does contain the "correct actual" state (amount of XP, amount of miles, amount of UXP), so perhaps as a kickstart it should go from "current state" and look back, rather than start from the bottom and work up. There's, realistically speaking, no way for me to "fix" the balance besides manually add an entry with a fake flight number to "correct" the data.

There should also be events to indicated requalifications, so I guess getting the correct qualification period should also be possible automatically without manual intervention (e.g. the below screenshot).

Either way I've been platinum for longer than the PDF export, so getting old data is going to be near impossible (I do have the flights logged in Flighty, but not the XP and miles movements), perhaps the import should only consider "complete" data, in my case 2023 and newer (since the first "XP Counter offset" in the data) - and warn that older data needs to be manually added.
Really good points. You’re touching on exactly the limitations of the current approach.

Working backwards from current state: you’re right that the PDF header contains your actual XP/Miles/UXP balance. Using that as the truth and reconciling backwards would be smarter than building up from incomplete history. I should have thought about that one.

Auto-detecting qualification period: also a great catch. The requalification events in the PDF could indeed be used to automatically set the correct cycle. Will fix that too.

Incomplete historical data: for long-time elites like yourself, the PDF will never tell the full story. Your suggestion to only import complete data and warn about older gaps makes a lot of sense.

I’m picking this up first thing tomorrow. Starting with a correction entry based on the PDF header totals so imported data can be automatically reconciled. The other improvements will follow right after that.

Thanks for taking the time to write this up. Exactly the kind of feedback that makes this tool better

b12e likes this.
VikingXNL is offline  
Old Dec 12, 2025 | 11:18 am
  #20  
10 Countries Visited
20 Countries Visited
30 Countries Visited
10 Years on Site
 
Join Date: Nov 2013
Location: LIS
Programs: AF, TK
Posts: 1,121
Tried it again today, worked great with the PDF import, only had to fix two flights XP and then my XP amount showed exactly as it shows right now on the AF app.

One nitpick: adding "price" for individual segments is awkward, would be nice to be able to somehow group them together into roundtrips and add the price like that?
montezume is offline  
Old Dec 12, 2025 | 11:43 am
  #21  
Original Poster
50 Countries Visited
All eyes on you!
 
Join Date: May 2025
Location: AMS
Posts: 140
Originally Posted by b12e
I get that, but the export PDF does contain the "correct actual" state (amount of XP, amount of miles, amount of UXP), so perhaps as a kickstart it should go from "current state" and look back, rather than start from the bottom and work up. There's, realistically speaking, no way for me to "fix" the balance besides manually add an entry with a fake flight number to "correct" the data.

There should also be events to indicated requalifications, so I guess getting the correct qualification period should also be possible automatically without manual intervention (e.g. the below screenshot).

Either way I've been platinum for longer than the PDF export, so getting old data is going to be near impossible (I do have the flights logged in Flighty, but not the XP and miles movements), perhaps the import should only consider "complete" data, in my case 2023 and newer (since the first "XP Counter offset" in the data) - and warn that older data needs to be manually added.
First fix is live: the import now detects XP discrepancies and lets you add a correction to match your official balance. Still working on: auto-detecting qualification periods from requalification events and smarter handling of incomplete historical data.



VikingXNL is offline  
Old Dec 12, 2025 | 11:53 am
  #22  
Original Poster
50 Countries Visited
All eyes on you!
 
Join Date: May 2025
Location: AMS
Posts: 140
Originally Posted by montezume
Tried it again today, worked great with the PDF import, only had to fix two flights XP and then my XP amount showed exactly as it shows right now on the AF app.

One nitpick: adding "price" for individual segments is awkward, would be nice to be able to somehow group them together into roundtrips and add the price like that?
You don’t need to enter individual segments. If you have a manually entered flight with multiple segments, just add them separated by spaces, like: AMS CDG BKK. Click the round-trip icon, select the airline, and enter the total price. The system will automatically split the price proportionally across the segments. You can also enter complex itineraries. That’s totally fine.
VikingXNL is offline  
Old Dec 12, 2025 | 12:00 pm
  #23  
1M
40 Countries Visited
Community Builder
All eyes on you!
 
Join Date: Apr 2023
Location: AMS
Programs: AF Platinum, UA 1K, LH SEN, Radisson VIP, HH Gold, MB Gold, Melia Gold
Posts: 448
I keep getting wrong XP and miles count when importing my PDF, not sure where it's going wrong. I also tried to manually enter the cycle starting month, status and surplus XP but upon submitting I just get a blank page. After a refresh all entered data is gone, so for now I'm unable to use it unfortunately
hellolaurent is offline  
Old Dec 12, 2025 | 12:17 pm
  #24  
Original Poster
50 Countries Visited
All eyes on you!
 
Join Date: May 2025
Location: AMS
Posts: 140
Originally Posted by hellolaurent
I keep getting wrong XP and miles count when importing my PDF, not sure where it's going wrong. I also tried to manually enter the cycle starting month, status and surplus XP but upon submitting I just get a blank page. After a refresh all entered data is gone, so for now I'm unable to use it unfortunately
Sorry about that. I fixed one thing on the left and broke another on the right. The white page issue is fixed.
hellolaurent likes this.
VikingXNL is offline  
Old Dec 12, 2025 | 7:34 pm
  #25  
40 Countries Visited
2M
All eyes on you!
20 Years on Site
 
Join Date: Apr 2006
Location: YTZ
Programs: Hertz & Avis PC; National EE; SPG & Hilton Gold; Flying Blue Platinum; Porter something...
Posts: 6,090
Hi

I have exported my Flying Blue PDF, but no matter what it says "No Flying Blue data found in this PDF. Make sure you're uploading a Flying Blue transaction history export."

Here is a sample of Page 1 of 86 ...


briantoronto is offline  
Old Dec 12, 2025 | 10:32 pm
  #26  
Original Poster
50 Countries Visited
All eyes on you!
 
Join Date: May 2025
Location: AMS
Posts: 140
Originally Posted by briantoronto
Hi

I have exported my Flying Blue PDF, but no matter what it says "No Flying Blue data found in this PDF. Make sure you're uploading a Flying Blue transaction history export."

Here is a sample of Page 1 of 86 ...
Thanks for reporting! This was caused by the parser only recognizing European date formats (like "9 dec 2025") and missing North American formats (like "Dec 9, 2025"). I've pushed a major update that makes date parsing universal. It now handles virtually any date format and recognizes month names in all major Air France-KLM market languages. The credit card detection is also no longer tied to specific card brands, so your Brim transactions should now import correctly. Would you mind giving it another try? If it still doesn't work, feel free to DM me a sample page of your PDF (with personal info redacted) and I'll debug further.
Billyfergus likes this.
VikingXNL is offline  
Old Dec 13, 2025 | 6:06 am
  #27  
Original Poster
50 Countries Visited
All eyes on you!
 
Join Date: May 2025
Location: AMS
Posts: 140
Good news for Ultimate members: SkyStatus now properly tracks your status!

What's new:
Cycle Settings

- You can now select "Ultimate" as your starting status
- New UXP rollover field to enter your carried-over UXP (up to 900)
- Cycle type toggle (Qualification vs Calendar year) for those with legacy Ultimate accounts

Dashboard Risk Monitor

- Dedicated "Ultimate Requalification" section showing progress to 900 UXP
- UXP Rollover Forecast with the correct 900 UXP cap
- UXP Waste indicator based on the actual 1800 total cap (900 requalification + 900 rollover)
- Tips specific to KLM/AF flights

XP Engine

- Rollover inputs now show both XP and UXP side by side
- Next Rollover displays both values

How it works:
As an Ultimate member, your status depends on earning 900 UXP per cycle from KLM and Air France operated flights. You can roll over up to 900 UXP to the next cycle, making the effective cap 1800 UXP before any is wasted. SkyStatus now tracks all of this separately from regular XP.

To set it up: Go to XP Engine -> Edit your cycle settings -> Select "Ultimate" and enter your starting UXP balance.

Feedback welcome as always!

Fixed many many other (various) bugs on the way too.


Spoiler
 
VikingXNL is offline  
Old Dec 13, 2025 | 8:53 am
  #28  
Moderator: Aegean Miles+Bonus
30 Countries Visited
1M
All eyes on you!
15 Years on Site
 
Join Date: Oct 2009
Location: AMS / ATH
Programs: AFKL Plat, A3 Gold
Posts: 8,234
Awesome project, happy to see this being developed in a way that looks this polished and professional!
Are you planning to make this into a paid service (Noticed a few references to it being Free), i.e. this becoming a commercial venture rather than a hobby project?

Just signed up and noticed a few things. Many minor things, just listing what I noticed. Absolutely not criticism either - like I said, very glad to see something like this being built - so this is just to aim at improving even further.
  1. The privacy policy refers to a 'local mode', I'm assuming this is the Demo? The demo mentions clearing the demo-data through settings, but once you do that you will exit the demo application. Re-entering and all demo data is back.
  2. Happy to see that you didn't take the route of scraping account stats from the FB website. Some other 'award miles tracking' websites do this and I personally strongly oppose that method as it breaches various terms&conditions, and it introduces a huge security hole regarding credentials storage.
  3. Having said that - the flying blue PDF export contains a bunch of personal data: Names, account info, etc. While I fully understand why, especially if this is a hobby project, the privacy/about pages do not instantly make me feel comfortable sharing those details. What happens to the uploaded PDFs, which data is extracted and is the original pdf kept or deleted? Is it ever stored on disk or remains in application memory at all times?
  4. Some of these may be unreasonable to ask for a hobby project, but because this looks so well done and professional - Planning on adding GDPR compliance?

From a functionality perspective, some things I noticed:
  1. It would be nice to have the signup form classify the password field in such way that the browser will suggest a new (random) password (Chrome does this, but it may require some kind of attribute on the password field). Nitpicking but still
  2. To reduce uploading sensitive data, any plans on allowing flight imports by copy/pasting flight activity from the FB/KL/AF websites? Potentially a copy/paste from the PDF omitting privacy-sensitive items that should not be needed for the process?
  3. Alternatively many people use TripIt for tracking their flights. They have an API allowing to fetch flight history and details. Will not include miles or XP data - but will include flight segments, city pairs, cabin, fare code, pricing. The challenge is that Tripit data is notoriously incomplete - not all fields may always be populated. Format for some are also somewhat undefined (e.g. fare could be "W Economy", "WLGHTKL", "Economy" or "Economy Light". An import could be a good starting off point for manual addition, though.
  4. The miles value is calculated using 1.2 cent per mile. Could that be done on the calculated redemption value, or if that data is unavailable, a cpm defined by the user?
  5. Manually inputting flights does not yet keep track of non-existing cabins. E.g. LIM-AMS-ATH in PE classifies the AMS-ATH segment as 10XP while the service would be Economy (5XP). I'm not sure if there is a reliable dataset to determine which international routes do or do not have Premium cabins available, possibly historical data from other members if the dataset is large enough? The same would apply to trips in LaPremiere where some of the segments would be in Business.
  6. Most likely it won't really be possible to determine the actual cabin flown with 100% certainty. Sometimes the cabin exists but is full, and therefore the pax booked into another cabin (This happens a lot on short haul feeder flights). Perhaps allowing to manually change the XP earning per segment in a multi-segment journey?
  7. Mileage earning rates based on the price is rather difficult as it depends on taxes and fees. Trick would be to find a reliable (and kept up-to-date) data source for airport taxes information. Perhaps that data can be crowdsourced too if the total dataset is large enough?

Anyway, very fun tool and project!
VikingXNL likes this.
Xandrios is offline  
Old Dec 13, 2025 | 10:42 am
  #29  
Original Poster
50 Countries Visited
All eyes on you!
 
Join Date: May 2025
Location: AMS
Posts: 140
Originally Posted by Xandrios
Awesome project, happy to see this being developed in a way that looks this polished and professional!
Are you planning to make this into a paid service (Noticed a few references to it being Free), i.e. this becoming a commercial venture rather than a hobby project?

Just signed up and noticed a few things. Many minor things, just listing what I noticed. Absolutely not criticism either - like I said, very glad to see something like this being built - so this is just to aim at improving even further.
Wow, thank you so much for this incredibly thoughtful and detailed feedback! This is exactly the kind of input that helps make SkyStatus better. I genuinely appreciate you taking the time to write all of this down.

To answer your first question upfront: no, I don't see myself as the Mark Zuckerberg of Flying Blue 😄. There are no commercial plans whatsoever. This project started as a personal itch to scratch and has completely spiraled out of control. But I'm having an absolute blast building it. If others can benefit from it too, that just makes it more fun. It's pure passion, nothing more.
Now, let me address your points:

✅ COMPLETED
Privacy Point 1 - Local Mode confusion
Clarified! The three modes (Account, Local, Demo) are now properly explained throughout the app and documentation.

Privacy Point 3 - PDF handling transparency
Added clear documentation: PDFs are processed entirely client-side in your browser. The file never leaves your device. Only extracted flight data (routes, dates, XP) is stored if you have an account. Personal details like name and FF number are never transmitted or stored.

Privacy Point 4 - GDPR compliance
Done! Privacy Policy and Terms of Service are now compliant and clearly accessible (directly from the PDF import)

Functionality Point 1 - Browser password autofill
Fixed! Added autocomplete="new-password" to the signup form so browsers properly suggest random passwords.

Functionality Point 4 - User-defined CPM for miles valuation
Implemented! There's now a "How do you value a mile?" section in the Miles Engine with preset options (Conservative €0.008, Average €0.012, Aspirational €0.018) or you can set your own target CPM. All portfolio valuations are calculated based on your personal target.

Functionality Point 6 - Manual cabin selection per segment
Done! You can now adjust the cabin class for each individual segment when entering multi-city flights. So for LIM-AMS-ATH, you can set the long-haul as Premium Economy and the short-haul feeder as Economy.

🤔 OPEN - NEED TO THINK ABOUT
Functionality Point 2 - Copy/paste import from FB/KL/AF websites
Interesting idea! Would reduce the need to upload PDFs entirely. Need to investigate what the copy/paste output looks like and whether it's consistent enough to parse reliably.

Functionality Point 3 - TripIt API integration
Love this idea in principle. The challenge you mentioned (inconsistent data formats) is real. Could work as a "starting point" import that users then refine manually. Added to the backlog.

Functionality Point 5 - Cabin availability database
This is tricky. There's no reliable public dataset for which routes have which cabins. Crowdsourcing from users is an interesting angle once there's enough data. For now, the manual per-segment cabin selector is the workaround.

Functionality Point 7 - Tax-adjusted mileage earning
Complex problem. Airport taxes vary wildly and change frequently. Crowdsourcing could work at scale, but we'd need significant volume. Parking this one for now.

Thanks again for the detailed feedback. It's users like you that make building this worthwhile. If you spot anything else, keep it coming! 🙏


VikingXNL is offline  
Old Dec 18, 2025 | 7:27 am
  #30  
2M
60 Nights
50 Countries Visited
5 Years on Site
 
Join Date: Jan 2018
Location: BRE
Programs: Flying Blue Ultimate, LATAM Black, Accor/IHG Platinum, Marriott/Hilton Gold
Posts: 2,066
Great work done here on getting it this far. I was just about to start using it, but similar to Xandrios I also ended up having questions about privacy. I didn't see clearly, but it seems you have moved to storage on your own back end now? If so, how is the data we're uploading being secured? There is a lot of sensitive information in the data you host, so having it be encrypted would be best. Not sure what database you're using, but ideally something that can let you have row-level encryption. Without that, even for a hobby project, if this data gets stolen you're opening yourself up to a lot of potential hurt.

Edit: Some more thoughts:
  • Right now you are importing the PDF, which gives you airport pairs, miles and XP earned. You could work with these to figure out class of travel, and the cost of ticket.
  • You should ask the user since when they have the current status, so that you could work out PFL as well, if needed.
  • Calculation of XPs and UXPs seems strange. This might be because the qualification date for Platinum needs to be separated from qualification date for Ultimate. In my case, neither work correctly.

Last edited by sehgalanuj; Dec 18, 2025 at 8:03 am
sehgalanuj is offline  


Contact Us - Archive - Advertising - Cookie Policy - Privacy Statement - Terms of Service -

This site is owned, operated, and maintained by MH Sub I, LLC dba Internet Brands. Copyright © 2026 MH Sub I, LLC dba Internet Brands. All rights reserved. Designated trademarks are the property of their respective owners.