How Capital One miles saved my international trip home


The recent conflict in the Middle East and the unprecedented airspace closures have canceled thousands of flights and disrupted the travel plans of an estimated 1 million passengers, myself included.

I was booked on a Middle Eastern airline to the United Arab Emirates on the day the disruption began, and my essential travel home looked impossible.

Here’s how my beloved Capital One miles saved me during a time of crisis.

Related: What to do if your flight from — or through — the Middle East is affected this week

A canceled flight on Emirates

Upon hearing news last month that my father-in-law was reaching his final stages in a health battle, I looked at options to travel from my current residence in London to my home country of Australia to pay my final respects.

Keen to redeem my points and miles, I found an excellent deal: just 35,000 Emirates Skywards miles in economy class for the 22-hour journey Down Under. While I normally do this marathon journey in business class, this trip was not a holiday, and I booked just one week in advance. I needed to get from point A to point B as cheaply, quickly and easily as possible, so economy class made sense.

I chose my seats, checked in online and timed my routine journey to London Gatwick Airport (LGW) perfectly. I arrived 80 minutes before departure, with just enough time to check my bag, head through security and walk onto the plane.

While I normally like to read about world news on the way to the airport to pass the time, on this day, I didn’t, perhaps distracted by the somber reason for this journey.

As I rounded the corner to the Emirates check-in desk, expecting to see a dozen stragglers finalizing check-in, I was instead greeted with hundreds of people milling around, looking concerned; there were no check-in staff at any desks. I noticed everyone still had their large suitcases, which set off alarm bells in my head, and I asked one of the passengers if there was an issue with the flight, fearing an engineering problem or a weather delay.

Reward your inbox with the TPG Daily newsletter

Join over 700,000 readers for breaking news, in-depth guides and exclusive deals from TPG’s experts

It was much worse than that.

The passenger gloomily told me the flight was canceled because Dubai International Airport (DXB) was closed “due to war.” I checked the news on my phone to learn that the U.S. had just launched military strikes against Iran, and all Emirates flights that day were cancelled.

I asked an airport ground staff member what I should do, and they advised me to return to London and await further information from Emirates.

Dejected, I went back to my apartment, rang my husband to explain I wouldn’t be arriving in Australia the following day and tried to figure out what to do.

Eventually exhausted and with no solutions, I decided to sleep on it, hoping to wake up the next morning and find that the order had miraculously been restored to global aviation.

Related: A step up from your average economy: Flying Emirates’ A380 from Dubai to Johannesburg

CAROLINE LASCOM/THE POINTS GUY

Capital One miles to the rescue via Asia

Of course, the next morning, when I woke up and got up to speed on developments, nothing had improved. Middle Eastern airspace was still closed, I had no way to get to Australia and was wasting valuable time to say goodbye to a loved one.

At 8:30 a.m., still in my pajamas, I started looking for any flight options using any points and miles from the U.K. to Australia, leaving as soon as possible. This is where tools like Seats.aero are enormously valuable for being able to search across multiple routes, programs, dates and classes at once.

It took a while to weed out all of the options that went via the Middle East, as I was fairly certain none would operate that day. There were some undesirable options to travel the long way via the U.S., but these required plenty of miles and would be an epic 30 hours in the air, not enjoyable in economy class.

Seats.aero miraculously found me one seat remaining on Thai Airways leaving from Heathrow Airport (LHR) in London at 11:50 a.m. that morning to Sydney Airport (SYD) with a short connection in Bangkok’s Suvarnabhumi Airport (BKK) for 65,000 Air Canada Aeroplan points.

Imagining other disrupted travelers in London trying desperately to secure the same seat, I quickly checked my Aeroplan balance, which had only 20,000 points — not nearly enough to book this flight.

Thankfully, I have a healthy balance of Capital One miles that transfer at a 1:1 rate to Aeroplan, and I quickly initiated a transfer of 45,000 miles, which would become the 65,000 Aeroplan points needed to complete this booking. With the time nearing 9 a.m. and bag drop closing 60 minutes before departure (I had to check a bag), I had less than one hour to book this flight, shower and head out the door. Fortunately, I had not unpacked from the day before.

My Capital One miles transferred instantly to Aeroplan, and I hurriedly proceeded to book the Thai Airways redemption. There were several stressful moments when the payment wouldn’t go through. (I feared someone else had reserved the seat while I was transferring the miles, and I would be back to square one.) But eventually it loaded, and I received that all-important ticket number.

I was out the door less than 20 minutes later in an Uber to Heathrow. Explaining at check-in why I had only booked the flight 80 minutes earlier and that it hadn’t been possible to select a seat online this close to departure, she took pity on me, gave me an exit row seat and blocked the seat next to me so I had some extra space.

I was quickly on my way to Australia via Thailand. I arrived just 24 hours after my original Emirates flight, feeling extremely grateful for my Capital One miles.

Why Capital One miles can be good in a crisis

Earning transferable rewards like Capital One miles lets you keep them in your Capital One account and transfer them only when you know you will need them, such as for an emergency. I’ve found this flexibility hugely valuable.

However, in an emergency, time is precious. You may not have the mental bandwidth to check availability, research transfer times and rates, or consider flying to nearby airports to find a reasonable award rate.

Or there just might not be any award availability through any transfer partners. Instead, the only option might be a high cash fare that you may not really be able to afford.

Luckily, you still have a few options with your Capital One miles. You can redeem your miles for flights, hotels or rental cars booked through the Capital One Travel portal at a rate of 1 cent per mile. Additionally, if you made an eligible travel purchase within the last 90 days, you can redeem your miles for a statement credit at 1 cent per mile to offset the cost.

Related: How long do Capital One miles transfers take?

JAVIER RODRIGUEZ/THE POINTS GUY

How to earn Capital One miles

If you’re looking to earn more transferable miles, the following Capital One cards offer great welcome offers:

For more details, read our guides to Capital One transfer partners and how to transfer Capital One miles.

Bottom line

My disrupted travel plans due to the closure of Middle Eastern airspace are exactly why I collect transferable rewards. Had I only earned, say, Emirates Skywards miles, I might still be in London trying to work out how to get home.

Instead, I struck gold by finding the only decently priced and timed economy award seat from the U.K. to Australia the day after the disruptions began, which I could book with Capital One miles that transferred instantly to Aeroplan.

If you want to earn rewards that you can have ready for emergencies like this, Capital One miles are a great choice to collect.

Related: Points and miles aren’t just for the good times. They can be a godsend in an emergency, too



Source link

Leave a Reply

Subscribe to Our Newsletter

Get our latest articles delivered straight to your inbox. No spam, we promise.

Recent Reviews


Python Generators – Table of Content

Generators

The main purpose of a generator is to help us in creating our own iterators. It is a special type of function that returns an iterable set.The iterators that we create with the generator are referred to as lazy iterators. The contents of lazy iterators will not be stored in memory.If you want to iterate through large files, data streams, CSV files, etc., generators will be a good choice.Generators are introduced in PEP 255 and they are available since python 2.2 version.

How to create generator functions

Let us create a sample generator. Create a new file in any text editor and copy the below code.

def sample():

a = ["Hello", "Welcome"]

yield a

for i in sample():

print("This is a sample generator")

In this code, the sample() is the generator function name. Yield is used to return items to the caller. Unlike return in normal function, you won’t exit the function here. Once a generator is defined, it is called similar to a normal function. But the execution gets paused when it encounters a yield keyword.

Save the file with script.py as the name. Open command prompt, navigate to the script file location path, and execute the below command.

python script.py

You should be able to see an output that says ‘This is a sample generator’ on the command prompt. Let us look at one more example that returns squared root numbers to the range of numbers defined.

def Squared_numbers(num):

for num in range(num):

yield num**2

for i in Squared_numbers(5):

print(i)

This program calls Squared_numbers generator with 5 as a range. The generator will iterate from 0 and yields the square root of 5 numbers. The output for this program will be as follows.

0

1

4

9

16

Importance of yield statements in generators

Yield controls the flow of a generator function. When we call a generator expression or a generator function, we will get an iterator in return. This is nothing but a generator. 

We have to assign the generator to a variable and then use it. When we call a generator function, it only gets executed until it encounters a yield statement. The yielded value is sent back to the caller. 

  Become a python Certified professional  by learning this HKR Python Training !

Python Training Certification

  • Master Your Craft
  • Lifetime LMS & Faculty Access
  • 24/7 online expert support
  • Real-world & Project Based Learning

Creating a generator object with generator expressions

Generator expressions are similar to list comprehensions. They help us to create a generator object with minimal code. We can create generator objects that do not hold the entire object in memory before iteration. Let us create a list and a generator object and look at the difference between the two.

#Creating a list

numbers_list = [num for num in range(5)]

#Creating a generator object

numbers_generatorObject = (num for num in range(5))

#output

numbers_list

numbers_generatorObject

In the above code, we have created a list and a generator object for numbers. The syntax will be very much similar, but the difference will be the type of parentheses that we use. When you execute the above code, this will be the output.

[0, 1, 2, 3, 4]

at 0x7f776b77dd58>

You can observe here that the numbers_list is a list, so the numbers were printed on the command line. Whereas the numbers_generatorObject has got created as a generator object. You can also see the location at which the generator object is created.

Evaluating generator performance

As I mentioned before, generators optimize memory. Let’s consider the same example that we have taken above and increase numbers up to 150. Let us see how much size the list and generator objects take to hold the same numbers. Here is a small program that we can use to get the size.

import sys

#Creating a list

numbers_list = [num for num in range(150)]

print("The size of the list is", sys.getsizeof(numbers_list))

#Creating a generator object

numbers_generatorObject = (num for num in range(150))

print("The size of the generator is", sys.getsizeof(numbers_generatorObject))

The output for the above program will be as follows.

The size of the list is 1448

The size of the generator is 88

You can see that the list took 1448 bytes, whereas the generator object is only 88 bytes. You can observe a huge difference when you work with a larger dataset.

Acquire NLP certification by enrolling in the HKR NLP Training program in Hyderabad!

HKR Trainings Logo

Subscribe to our YouTube channel to get new updates..!

Advanced generator methods

Generators provide three special methods which were introduced in PEP 342 and is available since the python 2.5 version.

send() – It is a method used to send values to the generator iterators. The value specified in the send() method is used to continue with the next yield. If we do not pass any value to the send() method, it will be equivalent to the next() call. 

throw() – It is a method used to throw exceptions from the generator. We can add a throw() method when we might need to catch an exception. The value or exception specified in the throw() method will be sent to the caller.

close() – It is a method used to stop a generator. This will be really helpful when we want to stop a program when it goes into an infinity loop. 

Realted Article, List to String in Python !

Creating data pipelines with generators

When you have a huge dataset that needs processing, we can’t really do all the processing at a single place. To avoid this, we can create a pipeline. Each method in a pipeline receives an item, applies transformations on it, and returns the transformed item. This way, we can even change the order of transformations.

For example, if we want to process data in a CSV file, we have to read all the lines of data in the file. Identify the column names,split each row into a list of values,and filter out any unwanted data.Create dictionaries for the column names and lists.Apply the transformations that you want on the rows. All the created generators will function as a pipeline.

  Top 50 frequently asked Python interview Question and answers !

Python Training Certification

Weekday / Weekend Batches

Conclusion

As you have learned, generators simplify code. Generator expressions simplify code much further. They might be a little confusing at first. But when you put enough effort and practice them, you will get to understand them completely. Then you will know how easy it is to code in python with the help of generators.

Generators are especially useful when dealing with huge datasets.We can create pipelines and make the developer’s job easier.The calculations on data will be performed on-demand. We can use generators to simulate concurrency.Enjoy coding with python!

Related Articles:

1. Python Partial Functions

2. Python Split Method

3. Running Scripts in Python

4. Python List Length



Source link