{"id":7824,"date":"2026-11-06T15:30:35","date_gmt":"2026-11-06T15:30:35","guid":{"rendered":"https:\/\/flightpoints.com\/blogs\/?p=7824"},"modified":"2026-11-06T15:30:36","modified_gmt":"2026-11-06T15:30:36","slug":"krisflyer-miles-expiry-extend-expiring-miles","status":"publish","type":"post","link":"https:\/\/flightpoints.com\/blogs\/krisflyer-miles-expiry-extend-expiring-miles\/","title":{"rendered":"KrisFlyer Miles Expiry: How to Extend Expiring Miles"},"content":{"rendered":"\n<div class=\"wp-block-rank-math-toc-block\" id=\"rank-math-toc\"><h4>Table of Contents<\/h4><nav><ul><li><a href=\"#tl-dr\">TL;DR<\/a><\/li><li><a href=\"#how-kris-flyer-miles-expiry-actually-works\">How KrisFlyer Miles Expiry Actually Works<\/a><\/li><li><a href=\"#your-options-when-miles-are-about-to-expire\">Your Options When Miles Are About to Expire<\/a><\/li><li><a href=\"#how-to-extend-kris-flyer-miles\">How to Extend KrisFlyer Miles<\/a><\/li><li><a href=\"#what-it-costs-to-extend-expiring-miles\">What It Costs to Extend Expiring Miles<\/a><\/li><li><a href=\"#common-mistakes-that-cause-miles-to-expire-unnecessarily\">Common Mistakes That Cause Miles to Expire Unnecessarily<\/a><\/li><li><a href=\"#how-flightpoints-helps-you-stay-ahead-of-expiring-miles\">How Flightpoints Helps You Stay Ahead of Expiring Miles<\/a><\/li><li><a href=\"#conclusion\">Conclusion<\/a><\/li><li><a href=\"#fa-qs\">FAQs<\/a><\/li><\/ul><\/nav><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">You log into your KrisFlyer account expecting a healthy balance, and instead you see a warning that thousands of miles are about to expire. You have been earning consistently and redeeming occasionally, so why does krisflyer miles expiry still catch experienced points collectors off guard?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Does regular account activity reset the clock? Is paying to extend your miles actually worth the cost? And what happens if you let the deadline pass without acting?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this article, we will break down how KrisFlyer miles expiry actually works, what your options are when miles are about to lapse, and how to decide which option fits your situation.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/flightpoints.com\/blogs\/wp-content\/uploads\/2026\/11\/Focused-Traveler-at-the-Airport-Window-1024x576.webp\" alt=\"KrisFlyer Miles Expiry\" class=\"wp-image-8537\" srcset=\"https:\/\/flightpoints.com\/blogs\/wp-content\/uploads\/2026\/11\/Focused-Traveler-at-the-Airport-Window-1024x576.webp 1024w, https:\/\/flightpoints.com\/blogs\/wp-content\/uploads\/2026\/11\/Focused-Traveler-at-the-Airport-Window-300x169.webp 300w, https:\/\/flightpoints.com\/blogs\/wp-content\/uploads\/2026\/11\/Focused-Traveler-at-the-Airport-Window-768x432.webp 768w, https:\/\/flightpoints.com\/blogs\/wp-content\/uploads\/2026\/11\/Focused-Traveler-at-the-Airport-Window-400x225-1.webp 400w, https:\/\/flightpoints.com\/blogs\/wp-content\/uploads\/2026\/11\/Focused-Traveler-at-the-Airport-Window-1536x864.webp 1536w, https:\/\/flightpoints.com\/blogs\/wp-content\/uploads\/2026\/11\/Focused-Traveler-at-the-Airport-Window-800x450-1.webp 800w, https:\/\/flightpoints.com\/blogs\/wp-content\/uploads\/2026\/11\/Focused-Traveler-at-the-Airport-Window-832x468-1.webp 832w, https:\/\/flightpoints.com\/blogs\/wp-content\/uploads\/2026\/11\/Focused-Traveler-at-the-Airport-Window-1664x936.webp 1664w, https:\/\/flightpoints.com\/blogs\/wp-content\/uploads\/2026\/11\/Focused-Traveler-at-the-Airport-Window-1663x936.webp 1663w, https:\/\/flightpoints.com\/blogs\/wp-content\/uploads\/2026\/11\/Focused-Traveler-at-the-Airport-Window-1248x702-1.webp 1248w, https:\/\/flightpoints.com\/blogs\/wp-content\/uploads\/2026\/11\/Focused-Traveler-at-the-Airport-Window-1318x742.webp 1318w, https:\/\/flightpoints.com\/blogs\/wp-content\/uploads\/2026\/11\/Focused-Traveler-at-the-Airport-Window.webp 1672w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 id=\"tl-dr\" class=\"wp-block-heading\"><strong>TL;DR<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>KrisFlyer miles are generally valid for 3 years from accrual, tracked in separate batches, regardless of account activity.<\/li>\n\n\n\n<li>Extension is a one-time option per batch, not a renewable benefit.<\/li>\n\n\n\n<li>The extension fee scales with how many miles you are protecting, so it only makes sense past a certain balance.<\/li>\n\n\n\n<li>Redeeming your miles before expiry usually preserves more value than paying to extend them.<\/li>\n\n\n\n<li>PPS Club status is the main way to hold miles without an expiry date, with some exceptions worth knowing.<\/li>\n<\/ul>\n\n\n\n<h2 id=\"how-kris-flyer-miles-expiry-actually-works\" class=\"wp-block-heading\"><strong>How KrisFlyer Miles Expiry Actually Works<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Most frequent flyer programs let continued activity delay expiry. KrisFlyer does not work that way, and assuming it does is the most common reason experienced points users get caught off guard.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here is the core logic behind <a href=\"https:\/\/www.singaporeair.com\/\" data-type=\"link\" data-id=\"https:\/\/www.singaporeair.com\/\" target=\"_blank\" rel=\"noopener\">krisflyer<\/a> miles expiry:<\/p>\n\n\n\n<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&display=swap');\n\n.fp-miles-expiry-table-wrap,\n.fp-miles-expiry-table-wrap * {\n    box-sizing: border-box;\n}\n\n.fp-miles-expiry-table-wrap {\n    width: 100%;\n    max-width: 100%;\n    margin: 20px 0;\n    border: 1px solid #DDE8FF;\n    border-radius: 14px;\n    overflow: hidden;\n    font-family: 'Inter', sans-serif;\n}\n\n.fp-miles-expiry-table {\n    width: 100% !important;\n    max-width: 100% !important;\n    table-layout: fixed !important;\n    border-collapse: collapse !important;\n    margin: 0 !important;\n    font-family: 'Inter', sans-serif !important;\n    font-size: 14px;\n    line-height: 1.45;\n    color: #222;\n}\n\n.fp-miles-expiry-table th,\n.fp-miles-expiry-table td {\n    border: 1px solid #DDE8FF;\n    padding: 12px 10px;\n    text-align: left;\n    vertical-align: top;\n    white-space: normal !important;\n    overflow-wrap: anywhere;\n    word-break: normal;\n    hyphens: auto;\n}\n\n.fp-miles-expiry-table thead th {\n    background: #0A5AFE !important;\n    color: #FFFFFF !important;\n    font-weight: 600;\n}\n\n.fp-miles-expiry-table tbody tr:nth-child(odd) {\n    background: #F5F9FF;\n}\n\n.fp-miles-expiry-table tbody tr:nth-child(even) {\n    background: #ECF4FF;\n}\n\n.fp-miles-expiry-table tbody tr:hover {\n    background: #DCEAFF;\n}\n\n@media (max-width: 768px) {\n    .fp-miles-expiry-table {\n        font-size: 12px;\n        line-height: 1.4;\n    }\n\n    .fp-miles-expiry-table th,\n    .fp-miles-expiry-table td {\n        padding: 9px 6px;\n    }\n}\n\n@media (max-width: 480px) {\n    .fp-miles-expiry-table {\n        font-size: 10px;\n        line-height: 1.35;\n        letter-spacing: -0.1px;\n    }\n\n    .fp-miles-expiry-table th,\n    .fp-miles-expiry-table td {\n        padding: 8px 3px;\n    }\n\n    .fp-miles-expiry-table th {\n        font-size: 10px;\n    }\n}\n<\/style>\n\n<div class=\"fp-miles-expiry-table-wrap\">\n    <table class=\"fp-miles-expiry-table\">\n        <colgroup>\n            <col style=\"width: 27%;\">\n            <col style=\"width: 73%;\">\n        <\/colgroup>\n        <thead>\n            <tr>\n                <th>Rule<\/th>\n                <th>What It Means<\/th>\n            <\/tr>\n        <\/thead>\n        <tbody>\n            <tr>\n                <td>Expiry window<\/td>\n                <td>Generally 3 years from the date of accrual<\/td>\n            <\/tr>\n            <tr>\n                <td>Expiry date<\/td>\n                <td>Shown in your account under Miles &gt; Miles Validity, and in your monthly e-statement<\/td>\n            <\/tr>\n            <tr>\n                <td>Tracking method<\/td>\n                <td>Each earning batch has its own independent expiry date<\/td>\n            <\/tr>\n            <tr>\n                <td>Account activity<\/td>\n                <td>Earning or redeeming new miles does not reset older batches<\/td>\n            <\/tr>\n            <tr>\n                <td>PPS Club exception<\/td>\n                <td>Miles do not expire for the principal PPS Club member while status is active, with some exclusions<\/td>\n            <\/tr>\n        <\/tbody>\n    <\/table>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">The batch-based structure is the detail most travelers miss. Miles earned at different times expire on their own separate dates, not as one combined balance.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A new flight adds a fresh batch with its own future expiry, but it does nothing to protect miles earned earlier. The exact dates for each batch are not something to estimate; they are visible under Miles &gt; Miles Validity in your account.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is why checking your KrisFlyer miles validity regularly matters more than checking your total balance. A healthy-looking balance can still include miles that are weeks away from disappearing.<\/p>\n\n\n\n<h2 id=\"your-options-when-miles-are-about-to-expire\" class=\"wp-block-heading\"><strong>Your Options When Miles Are About to Expire<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Once you know which batch is expiring, the decision comes down to two realistic paths. Each one trades cost and flexibility differently, so the right choice depends on how soon you plan to fly and how many miles are at stake.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Redeem the miles:<\/strong> <a href=\"https:\/\/flightpoints.com\/blogs\/step-by-step-guide-to-booking-award-flights\/\">Book an award flight<\/a>, even a placeholder one, before the expiry date. Redeeming generally protects those miles from expiring. <a href=\"https:\/\/flightpoints.com\/blogs\/cancel-or-change-award-tickets-without-losing-points\/\">Check the fare rules first<\/a>, since changes or cancellations may not be possible, or may carry fees, especially on Promo or Spontaneous Escapes awards.<\/li>\n\n\n\n<li><strong>Extend the miles:<\/strong> Pay a fee to push the deadline out further. This buys time without requiring an immediate travel decision.\u00a0<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">A useful way to think about this: redemption preserves full value but requires a travel decision now, while extension preserves flexibility but costs money. Neither is universally correct. The right call depends on how close you are to a redeemable flight and how many miles you are protecting.<\/p>\n\n\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\n<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&display=swap');\n\n*{\n    margin:0;\n    padding:0;\n    box-sizing:border-box;\n}\n\n.fp-routes-banner{\n    width:100%;\n    max-width:700px;\n    margin:24px auto;\n    padding:22px 24px;\n    display:flex;\n    align-items:center;\n    justify-content:space-between;\n    gap:22px;\n\n    background:linear-gradient(135deg,#7C4FE0 0%,#4E63F5 50%,#0A5AFE 100%);\n    border-radius:16px;\n    box-shadow:0 10px 28px rgba(10,90,254,.18);\n\n    font-family:'Inter',sans-serif;\n}\n\n.fp-content{\n    flex:1;\n    min-width:0;\n}\n\n.fp-title{\n    color:#fff !important;\n    font-size:22px !important;\n    font-weight:700 !important;\n    line-height:1.3;\n    margin:0 0 8px;\n    font-family:'Inter',sans-serif !important;\n}\n\n.fp-text{\n    color:rgba(255,255,255,.9) !important;\n    font-size:14px !important;\n    line-height:1.6;\n    margin:0;\n    font-family:'Inter',sans-serif !important;\n}\n\n\/* Button Wrapper *\/\n.fp-btn-wrap{\n    flex-shrink:0;\n    display:flex;\n    align-items:center;\n    justify-content:center;\n}\n\n\/* Revision Theme Proof Button *\/\n.fp-btn,\n.fp-btn:link,\n.fp-btn:visited{\n    display:inline-flex !important;\n    align-items:center !important;\n    justify-content:center !important;\n\n    width:auto !important;\n    min-width:170px !important;\n    height:46px !important;\n    padding:0 22px !important;\n\n    background:#ffffff !important;\n    color:#0A5AFE !important;\n\n    border-radius:10px !important;\n    border:none !important;\n\n    font-family:'Inter',sans-serif !important;\n    font-size:14px !important;\n    font-weight:700 !important;\n    line-height:1 !important;\n\n    text-decoration:none !important;\n    white-space:nowrap !important;\n\n    box-shadow:none !important;\n    overflow:hidden !important;\n\n    transition:all .25s ease;\n}\n\n.fp-btn:hover,\n.fp-btn:focus{\n    background:#F5F8FF !important;\n    color:#0A5AFE !important;\n    text-decoration:none !important;\n    transform:translateY(-2px);\n}\n\n@media (max-width:768px){\n\n    .fp-routes-banner{\n        padding:20px;\n        gap:18px;\n    }\n\n    .fp-title{\n        font-size:20px !important;\n    }\n\n}\n\n@media (max-width:600px){\n\n    .fp-routes-banner{\n        flex-direction:column;\n        text-align:center;\n        padding:20px 18px;\n        gap:18px;\n    }\n\n    .fp-content{\n        width:100%;\n    }\n\n    .fp-title{\n        font-size:19px !important;\n    }\n\n    .fp-btn-wrap{\n        width:100%;\n    }\n\n    .fp-btn,\n    .fp-btn:link,\n    .fp-btn:visited{\n        width:100% !important;\n        max-width:240px !important;\n        min-width:0 !important;\n        margin:0 auto !important;\n    }\n\n}\n<\/style>\n<\/head>\n\n<body>\n\n<div class=\"fp-routes-banner\">\n\n    <div class=\"fp-content\">\n        <h2 class=\"fp-title\">\n            Award Availability Calendar\n        <\/h2>\n\n        <p class=\"fp-text\">\n            View a color-coded monthly calendar to quickly spot dates with award seat availability across airlines and cabins.\n        <\/p>\n    <\/div>\n\n    <div class=\"fp-btn-wrap\">\n        <a href=\"https:\/\/flightpoints.com\/tools\/availability-calendar?utm_source=blog&#038;utm_medium=internal&#038;utm_campaign=availability_calendar\" class=\"fp-btn\" target=\"_blank\" rel=\"noopener\">\n            View Calendar\n        <\/a>\n    <\/div>\n\n<\/div>\n\n<\/body>\n<\/html>\n\n\n\n<h2 id=\"how-to-extend-kris-flyer-miles\" class=\"wp-block-heading\"><strong>How to Extend KrisFlyer Miles<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If you are not ready to book a flight and want more time, extension is the most straightforward option. Here is how to extend KrisFlyer miles step by step.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Log in to your KrisFlyer account.<\/li>\n\n\n\n<li>Navigate to <strong>Miles > Miles Validity<\/strong>.<\/li>\n\n\n\n<li>Select the batch of miles you want to extend.<\/li>\n\n\n\n<li>Pay the extension fee in miles or cash.<\/li>\n\n\n\n<li>Confirm the new expiry date reflected in your account.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">A few constraints worth knowing before you start:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Each batch can only be extended once. There is no second extension once the new deadline arrives.<\/li>\n\n\n\n<li>Base KrisFlyer members get six additional months, while Elite Silver and Elite Gold members get twelve months.<\/li>\n\n\n\n<li>Expired miles cannot be extended retroactively. The extension must happen before the original deadline passes.<\/li>\n<\/ul>\n\n\n\n<h2 id=\"what-it-costs-to-extend-expiring-miles\" class=\"wp-block-heading\"><strong>What It Costs to Extend Expiring Miles<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The krisflyer miles extension fee is structured per 10,000 miles, which means the cost scales directly with your balance.<\/p>\n\n\n\n<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&display=swap');\n\n.fp-krisflyer-extension-table-wrap,\n.fp-krisflyer-extension-table-wrap * {\n    box-sizing: border-box;\n}\n\n.fp-krisflyer-extension-table-wrap {\n    width: 100%;\n    max-width: 100%;\n    margin: 20px 0;\n    border: 1px solid #DDE8FF;\n    border-radius: 14px;\n    overflow: hidden;\n    font-family: 'Inter', sans-serif;\n}\n\n.fp-krisflyer-extension-table {\n    width: 100% !important;\n    max-width: 100% !important;\n    table-layout: fixed !important;\n    border-collapse: collapse !important;\n    margin: 0 !important;\n    font-family: 'Inter', sans-serif !important;\n    font-size: 14px;\n    line-height: 1.45;\n    color: #222;\n}\n\n.fp-krisflyer-extension-table th,\n.fp-krisflyer-extension-table td {\n    border: 1px solid #DDE8FF;\n    padding: 12px 10px;\n    text-align: left;\n    vertical-align: top;\n    white-space: normal !important;\n    overflow-wrap: anywhere;\n    word-break: normal;\n    hyphens: auto;\n}\n\n.fp-krisflyer-extension-table thead th {\n    background: #0A5AFE !important;\n    color: #FFFFFF !important;\n    font-weight: 600;\n}\n\n.fp-krisflyer-extension-table tbody tr:nth-child(odd) {\n    background: #F5F9FF;\n}\n\n.fp-krisflyer-extension-table tbody tr:nth-child(even) {\n    background: #ECF4FF;\n}\n\n.fp-krisflyer-extension-table tbody tr:hover {\n    background: #DCEAFF;\n}\n\n@media (max-width: 768px) {\n    .fp-krisflyer-extension-table {\n        font-size: 12px;\n        line-height: 1.4;\n    }\n\n    .fp-krisflyer-extension-table th,\n    .fp-krisflyer-extension-table td {\n        padding: 9px 6px;\n    }\n}\n\n@media (max-width: 480px) {\n    .fp-krisflyer-extension-table {\n        font-size: 10px;\n        line-height: 1.35;\n        letter-spacing: -0.1px;\n    }\n\n    .fp-krisflyer-extension-table th,\n    .fp-krisflyer-extension-table td {\n        padding: 8px 3px;\n    }\n\n    .fp-krisflyer-extension-table th {\n        font-size: 10px;\n    }\n}\n<\/style>\n\n<div class=\"fp-krisflyer-extension-table-wrap\">\n    <table class=\"fp-krisflyer-extension-table\">\n        <colgroup>\n            <col style=\"width: 31%;\">\n            <col style=\"width: 27%;\">\n            <col style=\"width: 42%;\">\n        <\/colgroup>\n        <thead>\n            <tr>\n                <th>Membership Tier<\/th>\n                <th>Extension Length<\/th>\n                <th>Fee per 10,000 Miles<\/th>\n            <\/tr>\n        <\/thead>\n        <tbody>\n            <tr>\n                <td>KrisFlyer (Base)<\/td>\n                <td>6 months<\/td>\n                <td>1,200 miles or USD 12<\/td>\n            <\/tr>\n            <tr>\n                <td>Elite Silver<\/td>\n                <td>12 months<\/td>\n                <td>1,200 miles or USD 12<\/td>\n            <\/tr>\n            <tr>\n                <td>Elite Gold<\/td>\n                <td>12 months<\/td>\n                <td>1,200 miles or USD 12<\/td>\n            <\/tr>\n        <\/tbody>\n    <\/table>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Two things stand out in this structure. First, Elite members get double the extension time for the same fee, which makes status more valuable when expiry is a recurring issue. Second, paying in miles versus cash matters depending on how you value your balance, which you can check with a <a href=\"https:\/\/flightpoints.com\/tools\/miles-calculator?utm_source=blog&amp;utm_medium=internal&amp;utm_campaign=miles_calculator\">miles calculator<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If 10,000 miles could realistically fund a meaningful chunk of an award flight, paying the USD 12 cash fee instead preserves more redemption power.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Before paying to extend, it helps to weigh the fee against the miles&#8217; actual travel value. If the miles are close to funding a flight on their own, redemption is usually the stronger decision.<\/p>\n\n\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\n<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&display=swap');\n\n*{\n    margin:0;\n    padding:0;\n    box-sizing:border-box;\n}\n\n.fp-routes-banner{\n    width:100%;\n    max-width:700px;\n    margin:24px auto;\n    padding:22px 24px;\n    display:flex;\n    align-items:center;\n    justify-content:space-between;\n    gap:22px;\n\n    background:linear-gradient(135deg,#7C4FE0 0%,#4E63F5 50%,#0A5AFE 100%);\n    border-radius:16px;\n    box-shadow:0 10px 28px rgba(10,90,254,.18);\n\n    font-family:'Inter',sans-serif;\n}\n\n.fp-content{\n    flex:1;\n    min-width:0;\n}\n\n\/* Force heading to remain white *\/\n.fp-routes-banner .fp-title,\n.fp-routes-banner h2,\n.fp-routes-banner h2.fp-title{\n    color:#FFFFFF !important;\n    font-size:22px !important;\n    font-weight:700 !important;\n    line-height:1.3;\n    margin:0 0 8px;\n    font-family:'Inter',sans-serif !important;\n}\n\n\/* Force paragraph to remain white *\/\n.fp-routes-banner .fp-text,\n.fp-routes-banner p{\n    color:rgba(255,255,255,.88) !important;\n    font-size:14px;\n    line-height:1.6;\n    margin:0;\n    font-family:'Inter',sans-serif;\n}\n\n.fp-btn{\n    display:inline-flex;\n    align-items:center;\n    justify-content:center;\n    padding:12px 20px;\n    background:#FFFFFF;\n    color:#0A5AFE !important;\n    text-decoration:none !important;\n    font-size:14px;\n    font-weight:700;\n    border-radius:10px;\n    white-space:nowrap;\n    flex-shrink:0;\n    transition:.25s ease;\n}\n\n.fp-btn:hover{\n    background:#F5F8FF;\n    color:#0A5AFE !important;\n    transform:translateY(-2px);\n}\n\n@media (max-width:768px){\n\n    .fp-routes-banner{\n        padding:20px;\n        gap:18px;\n    }\n\n    .fp-routes-banner .fp-title{\n        font-size:20px !important;\n    }\n\n}\n\n@media (max-width:600px){\n\n    .fp-routes-banner{\n        flex-direction:column;\n        text-align:center;\n        padding:20px 18px;\n        gap:18px;\n    }\n\n    .fp-content{\n        width:100%;\n    }\n\n    .fp-routes-banner .fp-title{\n        font-size:19px !important;\n    }\n\n    .fp-btn{\n        width:100%;\n        max-width:250px;\n        margin:auto;\n    }\n\n}\n<\/style>\n<\/head>\n\n<body>\n\n<div class=\"fp-routes-banner\">\n\n    <div class=\"fp-content\">\n        <h2 class=\"fp-title\">\n            Miles Calculator\n        <\/h2>\n\n        <p class=\"fp-text\">\n            Compare required miles across airline programs.\n        <\/p>\n    <\/div>\n\n    <a href=\"https:\/\/flightpoints.com\/tools\/miles-calculator?utm_source=blog&#038;utm_medium=internal&#038;utm_campaign=miles_calculator\" class=\"fp-btn\" target=\"_blank\" rel=\"noopener\">\n        Calculate Miles\n    <\/a>\n\n<\/div>\n\n<\/body>\n<\/html>\n\n\n\n<h2 id=\"common-mistakes-that-cause-miles-to-expire-unnecessarily\" class=\"wp-block-heading\"><strong>Common Mistakes That Cause Miles to Expire Unnecessarily<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Even experienced points users lose miles to avoidable errors. These mistakes tend to repeat because the krisflyer miles expiry system behaves differently from competing programs.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Assuming activity resets the clock.<\/strong> Earning or redeeming new miles never extends older batches.<\/li>\n\n\n\n<li><strong>Checking total balance instead of batch-level validity.<\/strong> A large balance can still hide a small batch that is about to expire.<\/li>\n\n\n\n<li><strong>Waiting until the deadline to act.<\/strong> Extension and redemption both take a few steps, and leaving them until the final days increases the risk of missing the window.<\/li>\n\n\n\n<li><strong>Converting to Kris+ without a plan.<\/strong> Once converted to KrisPay, miles must be used within six months and cannot be transferred back to KrisFlyer.<\/li>\n\n\n\n<li><strong>Forgetting the one-time extension limit.<\/strong> Once a batch has been extended, there is no second extension available for that same batch.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Where this advice changes: if you hold PPS Club or Solitaire PPS Club status, expiry is not a concern at all, since miles are held indefinitely while status is active. For everyone else, periodic account checks remain the most reliable safeguard.<\/p>\n\n\n\n<h2 id=\"how-flightpoints-helps-you-stay-ahead-of-expiring-miles\" class=\"wp-block-heading\"><strong>How Flightpoints Helps You Stay Ahead of Expiring Miles<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/flightpoints.com\/blogs\/wp-content\/uploads\/2026\/11\/flightpoints-app-Image-1024x576.webp\" alt=\"KrisFlyer Miles Expiry\" class=\"wp-image-8463\" srcset=\"https:\/\/flightpoints.com\/blogs\/wp-content\/uploads\/2026\/11\/flightpoints-app-Image-1024x576.webp 1024w, https:\/\/flightpoints.com\/blogs\/wp-content\/uploads\/2026\/11\/flightpoints-app-Image-300x169.webp 300w, https:\/\/flightpoints.com\/blogs\/wp-content\/uploads\/2026\/11\/flightpoints-app-Image-768x432.webp 768w, https:\/\/flightpoints.com\/blogs\/wp-content\/uploads\/2026\/11\/flightpoints-app-Image-1536x864.webp 1536w, https:\/\/flightpoints.com\/blogs\/wp-content\/uploads\/2026\/11\/flightpoints-app-Image-400x225-1.webp 400w, https:\/\/flightpoints.com\/blogs\/wp-content\/uploads\/2026\/11\/flightpoints-app-Image-800x450-1.webp 800w, https:\/\/flightpoints.com\/blogs\/wp-content\/uploads\/2026\/11\/flightpoints-app-Image-832x468-1.webp 832w, https:\/\/flightpoints.com\/blogs\/wp-content\/uploads\/2026\/11\/flightpoints-app-Image-1664x936.webp 1664w, https:\/\/flightpoints.com\/blogs\/wp-content\/uploads\/2026\/11\/flightpoints-app-Image-1663x936.webp 1663w, https:\/\/flightpoints.com\/blogs\/wp-content\/uploads\/2026\/11\/flightpoints-app-Image-1248x702-1.webp 1248w, https:\/\/flightpoints.com\/blogs\/wp-content\/uploads\/2026\/11\/flightpoints-app-Image-1318x742.webp 1318w, https:\/\/flightpoints.com\/blogs\/wp-content\/uploads\/2026\/11\/flightpoints-app-Image.webp 1672w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Tracking batch-level expiry across multiple cards and programs is tedious, especially for travelers who hold several points currencies at once. Missing a deadline on a large batch means losing real travel value, not just a number on a dashboard.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/flightpoints.com\/?utm_source=blog&amp;utm_medium=internal&amp;utm_campaign=homepage\"><strong>Flightpoints<\/strong><\/a> is built for exactly this kind of decision complexity. Instead of manually checking validity dates across accounts, Flightpoints brings the relevant details into one place so you can act before a deadline becomes a problem.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/flightpoints.com\/alerts\/create?utm_source=blog&amp;utm_medium=internal&amp;utm_campaign=create_alert\"><strong>Alerts<\/strong><\/a> help you stay aware of upcoming expiry windows so timing decisions do not come down to the last few days.<\/li>\n\n\n\n<li><a href=\"https:\/\/flightpoints.com\/routes?utm_source=blog&amp;utm_medium=internal&amp;utm_campaign=routes\"><strong>Routes<\/strong><\/a> make it easier to compare redemption paths when you are deciding whether to book now or extend for later.<\/li>\n\n\n\n<li><a href=\"https:\/\/flightpoints.com\/explore?utm_source=blog&amp;utm_medium=internal&amp;utm_campaign=explore\"><strong>Explore<\/strong><\/a> helps you identify realistic award flight options when you are weighing redemption against extension.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The goal is not to add another dashboard to check. It is to reduce the mental effort of tracking expiry across every program you hold, so your KrisFlyer miles validity never becomes a surprise.<\/p>\n\n\n\n<h2 id=\"conclusion\" class=\"wp-block-heading\"><strong>Conclusion<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">KrisFlyer miles expiry follows a fixed, batch-based system, and no amount of account activity changes that. Understanding this structure, rather than assuming your miles behave like other programs, is what prevents avoidable losses. Whether you choose to redeem or extend depends on how close you are to a usable flight and how many miles are on the line.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Decisions like these get harder as you accumulate more cards and more points currencies, each with its own rules and deadlines. That is the exact kind of complexity flightpoints is designed to simplify, turning scattered validity dates into a single, clear picture so you can make redemption decisions with confidence instead of guesswork.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you want a clearer view of your expiring miles alongside your redemption options, explore what <a href=\"https:\/\/flightpoints.com\/?utm_source=blog&amp;utm_medium=internal&amp;utm_campaign=homepage\">flightpoints<\/a> can show you.<\/p>\n\n\n\n<style data-wp-block-html=\"css\">\n.fp-blue-cta-v2{\nposition:relative;\noverflow:hidden;\nwidth:100%;\nmax-width:820px;\nmargin:28px auto;\npadding:36px 28px;\nbackground:linear-gradient(135deg,#005CFF 0%,#0A5AFE 50%,#6CA8FF 100%);\nborder-radius:24px;\nbox-shadow:0 16px 42px rgba(10,90,254,.20);\nfont-family:Inter,Arial,sans-serif;\ntext-align:center;\nbox-sizing:border-box;\n}\n\n.fp-blue-cta-v2 *,\n.fp-blue-cta-v2 *:before,\n.fp-blue-cta-v2 *:after{\nbox-sizing:border-box;\n}\n\n.fp-blue-glow{\nposition:absolute;\nborder-radius:50%;\nbackground:rgba(255,255,255,.08);\npointer-events:none;\n}\n\n.fp-glow-1{\nwidth:240px;\nheight:240px;\ntop:-100px;\nright:-90px;\n}\n\n.fp-glow-2{\nwidth:140px;\nheight:140px;\nbottom:-50px;\nleft:-40px;\n}\n\n.fp-blue-inner{\nposition:relative;\nz-index:2;\nmax-width:620px;\nmargin:0 auto;\ndisplay:flex;\nflex-direction:column;\nalign-items:center;\ngap:12px;\n}\n\n.fp-blue-badge{\ndisplay:inline-flex;\nalign-items:center;\njustify-content:center;\npadding:7px 16px;\nmargin:0 !important;\nborder-radius:999px;\nbackground:rgba(255,255,255,.15);\nborder:1px solid rgba(255,255,255,.25);\ncolor:#fff;\nfont-size:12px;\nfont-weight:700;\nletter-spacing:.4px;\nline-height:1;\n}\n\n.fp-blue-inner h2{\nmargin:0 !important;\npadding:0 !important;\nfont-size:32px;\nline-height:1.2;\nfont-weight:800;\ncolor:#fff;\n}\n\n.fp-blue-inner p{\nmargin:0 0 14px 0 !important;\npadding:0;\nfont-size:16px;\nline-height:1.75;\ncolor:rgba(255,255,255,.96);\n}\n\n.fp-blue-inner p a{\ncolor:#FFD84D !important;\nfont-weight:700;\ntext-decoration:none;\nborder-bottom:2px solid rgba(255,216,77,.35);\ntransition:.3s;\n}\n\n.fp-blue-inner p a:hover{\ncolor:#fff !important;\nborder-bottom-color:#fff;\n}\n\n.fp-blue-button{\ndisplay:inline-flex;\nalign-items:center;\njustify-content:center;\npadding:13px 28px;\nbackground:#fff;\ncolor:#0A5AFE !important;\nfont-size:15px;\nfont-weight:700;\ntext-decoration:none !important;\nborder-radius:999px;\nbox-shadow:0 10px 24px rgba(0,0,0,.18);\ntransition:.3s;\nmargin:0;\n}\n\n.fp-blue-button:hover{\nbackground:#EEF4FF;\ntransform:translateY(-2px);\n}\n\n@media(max-width:768px){\n\n.fp-blue-cta-v2{\npadding:30px 22px;\nmargin:24px auto;\n}\n\n.fp-blue-inner{\ngap:10px;\n}\n\n.fp-blue-inner h2{\nfont-size:27px;\n}\n\n.fp-blue-inner p{\nfont-size:15px;\n}\n\n.fp-blue-button{\ndisplay:flex;\nwidth:100%;\nmax-width:250px;\nmargin:0 auto;\n}\n\n.fp-glow-1{\nwidth:160px;\nheight:160px;\ntop:-60px;\nright:-60px;\n}\n\n.fp-glow-2{\nwidth:90px;\nheight:90px;\nbottom:-25px;\nleft:-25px;\n}\n\n}\n\n@media(max-width:480px){\n\n.fp-blue-cta-v2{\npadding:22px 16px;\nmargin:20px auto;\nborder-radius:18px;\n}\n\n.fp-blue-inner{\ngap:10px;\n}\n\n.fp-blue-badge{\nfont-size:11px;\npadding:6px 14px;\n}\n\n.fp-blue-inner h2{\nfont-size:22px;\nline-height:1.3;\n}\n\n.fp-blue-inner p{\nfont-size:14px;\nline-height:1.65;\nmargin:0 0 18px 0 !important;\n}\n\n.fp-blue-button{\ndisplay:flex;\nwidth:100%;\nmax-width:220px;\nmargin:0 auto;\npadding:12px 16px;\nfont-size:14px;\n}\n\n.fp-glow-1,\n.fp-glow-2{\ndisplay:none;\n}\n\n}\n\n@media(max-width:360px){\n\n.fp-blue-inner h2{\nfont-size:20px;\n}\n\n.fp-blue-inner p{\nfont-size:13px;\n}\n\n.fp-blue-button{\nmax-width:100%;\nfont-size:13px;\n}\n\n}\n<\/style>\n\n<div class=\"fp-blue-cta-v2\">\n\n    <div class=\"fp-blue-glow fp-glow-1\"><\/div>\n    <div class=\"fp-blue-glow fp-glow-2\"><\/div>\n\n    <div class=\"fp-blue-inner\">\n\n        <span class=\"fp-blue-badge\">\n            \ud83d\udc8e Flightpoints Pro\n        <\/span>\n\n        <h2>\n            Discover the True Value of Your Points\n        <\/h2>\n\n        <p>\n            Ready to see what your points are really worth?\n            <a href=\"https:\/\/flightpoints.com\/pricing?utm_source=blog&#038;utm_medium=internal&#038;utm_campaign=pricing\" target=\"_blank\" rel=\"noopener\">\n                Get Flightpoints Pro\n            <\/a>\n            and find the cheapest award seat across every program in seconds.\n        <\/p>\n\n        <a href=\"https:\/\/flightpoints.com\/pricing?utm_source=blog&#038;utm_medium=internal&#038;utm_campaign=pricing\" target=\"_blank\" rel=\"noopener\" class=\"fp-blue-button\">\n            Get Flightpoints Pro\n        <\/a>\n\n    <\/div>\n\n<\/div>\n\n\n\n<h2 id=\"fa-qs\" class=\"wp-block-heading\"><strong>FAQs<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Q: Does booking a new flight extend my older KrisFlyer miles?<\/strong>\u00a0<br>A: No. Each batch of miles has its own independent expiry date based on when it was earned. Booking a new flight only affects the miles used for that specific booking and does nothing to protect older, separately earned batches still on the clock.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Q: Can I extend the same batch of miles more than once?<\/strong>\u00a0<br>A: No. KrisFlyer allows only one extension per batch. Once that extended deadline passes, the miles expire permanently with no further option to extend or recover them.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Q: What happens to miles if I convert them to KrisPay and do not use them?<\/strong>\u00a0<br>A: Once converted, KrisPay miles must be used within six months and cannot be transferred back into KrisFlyer. If you do not spend them in that window, they are lost, so this conversion should only happen with a clear spending plan in place.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Q: Is it better to extend my miles or redeem them for a placeholder flight?<\/strong>\u00a0<br>A: It depends on your balance and travel plans. Redemption preserves full value immediately, while extension costs miles or cash but buys more time. If you are close to having enough miles for a flight, redemption is typically the stronger decision.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Q: Do PPS Club members need to worry about KrisFlyer miles expiry?<\/strong>\u00a0<br>A: No. Miles held by PPS Club and Solitaire PPS Club members do not expire as long as status remains active. This is the only scenario where expiry is not a factor at all.<\/p>\n","protected":false},"excerpt":{"rendered":"You log into your KrisFlyer account expecting a healthy balance, and instead you see a warning that thousands&hellip;","protected":false},"author":1,"featured_media":8536,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_singular_sidebar":"","csco_page_header_type":"","csco_page_load_nextpost":"","footnotes":""},"categories":[22],"tags":[122,16,652,700,134],"class_list":["post-7824","post","type-post","status-publish","format-standard","has-post-thumbnail","category-award-travel-basics","tag-award-flight-search","tag-flightpoints","tag-krisflyer","tag-krisflyer-miles-expiry","tag-miles-points","cs-entry"],"_links":{"self":[{"href":"https:\/\/flightpoints.com\/blogs\/wp-json\/wp\/v2\/posts\/7824","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/flightpoints.com\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/flightpoints.com\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/flightpoints.com\/blogs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/flightpoints.com\/blogs\/wp-json\/wp\/v2\/comments?post=7824"}],"version-history":[{"count":3,"href":"https:\/\/flightpoints.com\/blogs\/wp-json\/wp\/v2\/posts\/7824\/revisions"}],"predecessor-version":[{"id":8538,"href":"https:\/\/flightpoints.com\/blogs\/wp-json\/wp\/v2\/posts\/7824\/revisions\/8538"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/flightpoints.com\/blogs\/wp-json\/wp\/v2\/media\/8536"}],"wp:attachment":[{"href":"https:\/\/flightpoints.com\/blogs\/wp-json\/wp\/v2\/media?parent=7824"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/flightpoints.com\/blogs\/wp-json\/wp\/v2\/categories?post=7824"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/flightpoints.com\/blogs\/wp-json\/wp\/v2\/tags?post=7824"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}