Northern Lights Air — Loyalty Program

Did the Feb–Apr 2018 acquisition campaign work, what did it cost, and what should we do next?

16,737 members · 389,065 member-months · activity 2017-01 → 2018-12 · enrolment history from 2012 · all figures CAD

Overview

Where the program stands

★ Net active members
14,670
+19.2% YoY
vs 12,305 at Dec 2017
✓ ≥ +15% · HIT
Gross adds FY2018
3,010
+21.0% YoY
2,365 net of cancellations
best year on record
Campaign lift
+41%
+281 incremental members
vs trend-adjusted counterfactual
✓ ≥ +25% · HIT
CAC per incremental member
$332
4% of a member's $8,047 CLV
expected-cost basis
✓ ≤ $800 · HIT
Annual churn rate
5.24%
+0.34 pp YoY
645 cancellations
✓ ≤ 5.5% · HIT
Monthly active member rate
48.2%
+5.1 pp YoY
members flying in a given month
✗ ≥ 50% · MISS
Flights per active member
2.95
+7.8% YoY
per active member per month
CLV under management
$117M
+19.5% YoY
$7,969 per active member
Points redemption rate
1.54%
98.5% breakage
782M points outstanding
watch
Points liability (expected)
$2.2M
$141M nominal
at today's redemption rate
stress-test

★ North Star — Net Active Members

Members enrolled and not cancelled, 2012–2018

The program closes 2018 at 14,670 active members, +19.2% on the year and clear of the +15% target. Every other KPI on this dashboard is a lever on this one line.

Table view · Monthly member base, 2016–2018
YearMonthActive membersGross addsCancellationsNet adds
2,01618,46020540165
2,01628,60718134147
2,01638,78520830178
2,01648,97821421193
2,01659,17523134197
2,01669,35121034176
2,01679,51421148163
2,01689,68320738169
2,01699,83419039151
2,016109,99519837161
2,0161110,14719038152
2,0161210,32421134177
2,017110,46918843145
2,017210,63319632164
2,017310,83523735202
2,017410,99419637159
2,017511,18223143188
2,017611,33820044156
2,017711,50121754163
2,017811,66520844164
2,017911,83721038172
2,0171012,00620637169
2,0171112,14819149142
2,0171212,30520750157
2,018112,44619251141
2,018212,69529546249
2,018312,97233053277
2,018413,27634642304
2,018513,47324447197
2,018613,69927246226
2,018713,89023140191
2,018814,03021878140
2,018914,16318552133
2,0181014,32121355158
2,0181114,50424663183
2,0181214,67023872166

Growth engine — gross adds vs cancellations

Monthly, 2016–2018

2018 added 3,010 members and lost 645, a net +2,365 — the best year on record. The campaign spike in Feb–Apr survives the churn offset, which is the question management actually asked (gross and net).

Table view · Annual member flow, 2012–2018
YearGross addsCancellationsNet addsMembers at year end
2,0121,68601,6861,686
2,0132,397432,3544,040
2,0142,3701812,1896,229
2,0152,3312652,0668,295
2,0162,4564272,02910,324
2,0172,4875061,98112,305
2,0183,0106452,36514,670

Campaign impact

Did the Feb–Apr 2018 promotion work?

Gross adds — the campaign months break the trend line

New enrolments per month, 2017 vs 2018

Feb–Apr 2018 delivered 971 sign-ups against 629 in the same window of 2017 — +54.4%. Note that the nine non-campaign months run only slightly ahead of 2017: the step is confined to the promotion window, which is what a working campaign looks like.

Table view · New enrolments by month
Month20172018Change
Jan1881924
Feb19629599
Mar23733093
Apr196346150
May23124413
Jun20027272
Jul21723114
Aug20821810
Sep210185-25
Oct2062137
Nov19124655
Dec20723831

…and ~281 of those members were genuinely incremental

Counterfactual = 2017 baseline × the +9.7% growth observed in the nine non-campaign months

Comparing to last year alone would claim +342 members. Stripping out the growth the program was making anyway leaves +281 (+40.7%) — the honest number, and still comfortably past the +25% success threshold.

Table view · Campaign lift calculation
MeasureValue
Feb–Apr 2017 actual629
Underlying 2018 growth trend×1.097
Feb–Apr 2018 counterfactual690
Feb–Apr 2018 actual971
Incremental members+281
Lift vs counterfactual+40.7%
Lift vs last year+54.4%

Reverse-engineering the offer: the campaign is a permanent 1.5× earn rate

Share of flown member-months earning 1.5 points per km

The data dictionary says when the promotion ran but never what it offered. Points ÷ kilometres gives the answer: all 924 campaign members who ever flew earn 1.5 pts/km, zero standard members ever do, and no member is ever on both rates. Commercially this matters — the offer is not a signing bonus but an annuity of discount that keeps costing on every future kilometre.

Table view · Members by enrolment type × maximum earn rate observed
Enrolment type1.01.5never flew
2018 Promotion092447
Standard14,24301,523

Response was geographic, not demographic

Campaign share of each province's members ÷ the national rate

Among provinces with a base large enough to act on, Québec (1.22) and British Columbia (1.09) pulled above the national rate while Manitoba (0.52), Nova Scotia (0.63) and Alberta (0.69) lagged. Yukon and PEI show the most extreme indices but sit on 110 and 66 members — they are noise, and are greyed out here rather than quietly dropped. Meanwhile every demographic cut — gender, education, marital status, tier — moves less than 3 pp. The offer appealed across the board; only geography discriminated, so the next wave should be bought regionally.

Table view · Campaign response and profile by province
ProvinceMembersCampaign membersCampaign rateMean CLVChurn rateResponse index
Yukon11098.2%$6,77210.9%1.41
Quebec3,3002337.1%$8,16112.5%1.22
British Columbia4,4092806.4%$7,99411.8%1.09
Newfoundland258166.2%$8,02514.7%1.07
Saskatchewan409245.9%$8,07612.2%1.01
Ontario5,4042975.5%$7,91412.5%0.95
New Brunswick636335.2%$8,15410.5%0.89
Alberta969394.0%$7,75312.6%0.69
Nova Scotia518193.7%$7,98311.2%0.63
Manitoba658203.0%$8,06715.2%0.52
Prince Edward Island6611.5%$7,70416.7%0.26

Demographics barely moved

Campaign mix minus standard mix, percentage points

Everything here sits inside ±3 pp. For a promotion this is a good result — it means the 1.5× offer has broad appeal and does not need demographic targeting. It also means any segment-based media plan would have been spending money to find a difference that is not there.

Table view · Campaign vs standard member mix by demographic
DimensionSegmentStandard %Campaign %Difference (pp)
GenderFemale50.250.90.67
GenderMale49.849.1-0.67
EducationHigh School or Below4.65.10.51
EducationCollege25.424.5-0.86
EducationBachelor62.465.12.66
EducationMaster3.12.0-1.14
EducationDoctor4.53.3-1.16
Marital statusDivorced15.016.00.97
Marital statusMarried58.257.5-0.74
Marital statusSingle26.826.6-0.23
Card tierStar45.744.6-1.10
Card tierNova33.934.00.11
Card tierAurora20.421.40.99

Campaign members fly ~5× more per head

Flights per member per month, 2018

Campaign members are 5.8% of the base but flew 15.7% of all 2018 flights. In July they averaged 8.7 flights per member against 1.9 for everyone else. The 1.5× rate did not buy dormant sign-ups — it bought high-frequency travellers.

Table view · 2018 monthly engagement, campaign vs standard members
SegmentMonthFlights per memberActive member rate
StandardJan0.8445.2%
StandardFeb0.8345.3%
StandardMar1.1948.1%
StandardApr0.9445.3%
StandardMay1.3348.4%
StandardJun1.6348.2%
StandardJul1.8651.9%
StandardAug1.6049.7%
StandardSep1.2247.5%
StandardOct1.1447.7%
StandardNov1.1048.6%
StandardDec1.5252.0%
CampaignFeb0.4021.7%
CampaignMar0.8734.2%
CampaignApr0.9544.7%
CampaignMay6.4160.1%
CampaignJun8.3358.4%
CampaignJul8.6962.4%
CampaignAug7.6860.2%
CampaignSep2.7954.3%
CampaignOct2.6554.3%
CampaignNov2.3653.5%
CampaignDec5.0055.8%

…and more of them fly in any given month

Monthly active member rate, 2018

The campaign cohort peaks at a 62% monthly active rate against roughly 50% for standard members, and stays above them all year. This is the single strongest argument for re-running the promotion: it recruits people who actually fly.

What the 1.5× mechanic really costs

Headline liability vs expected cost vs cash paid — log scale

The mechanic issued 33.7M bonus points in 2018 — a headline $6.1M. But members redeem only 1.54% of what they earn, so the expected cost is $93,301 and the cash NLA actually paid campaign members in 2018 was $67,141. Against 281 incremental members that is a CAC of $332 — about 4% of a campaign member's mean CLV of $8,047. Caveat: the 1.5× rate is permanent, so this is an annuity of cost, not a one-off.

Table view · Campaign return on investment
Campaign economicsValue
Incremental members won281
Mean CLV of a campaign member$8,047
Incremental CLV acquired$2,258,856
Bonus points issued (2018)33,653,246 pts
— notional cost @ $0.18$6,057,584
— expected cost @ 1.54% redemption$93,301
— cash actually paid in 2018$67,141
CAC per incremental member (expected-cost basis)$332
CAC per incremental member (full-liability basis)$21,578
Return on incremental CLV (expected-cost basis)24×

Engagement

Do members actually fly?

Existing members flew more after the campaign

Flights per month · balanced panel (the 971 campaign joiners are excluded)

Because campaign members have no 2017 history, leaving them in would manufacture a +16% year-on-year jump out of cohort mix alone. Excluding them makes this a genuine like-for-like read on the pre-existing base — and it still shows a clear separation opening from May.

Table view · Flights by month, balanced panel
Month2017 flights2018 flightsYoY %
Jan13,03113,2851.9
Feb13,33513,097-1.8
Mar18,32418,7372.3
Apr15,41614,863-3.6
May18,62921,02912.9
Jun23,41625,6519.5
Jul26,20129,36712.1
Aug22,89325,23210.2
Sep17,38219,23410.7
Oct16,38718,04410.1
Nov15,68617,32710.5
Dec21,78623,8879.6

Difference-in-differences: −0.3% before, +10.7% after

Year-on-year change in flights, same members both years

Flights ran -0.3% in Jan–Apr and +10.7% in May–Dec — a +11.0 pp difference-in-differences among members who were already enrolled. Their monthly active rate rose from 43.0% to 48.2% over the same period. Read with care: one airline, no untreated control market — seasonality is controlled by comparing like months a year apart, but a mid-2018 travel-demand shift cannot be ruled out. This is strongly suggestive, not causal proof.

Seasonality — July runs 44% above an average month, January 32% below

Flights per month ÷ average month × 100 · 2017–2018 · balanced panel

Summer (Jun–Aug) carries 33% of the year's flights in 25% of the months, and December spikes on holiday travel. Any campaign aimed at flight volume should land in April–May so new members are activated before the peak — which is precisely what the Feb–Apr timing achieved.

Table view · Seasonality index, balanced panel
MonthFlightsIndex
Jan26,31668.3
Feb26,43268.6
Mar37,06196.2
Apr30,27978.6
May39,658103.0
Jun49,067127.4
Jul55,568144.3
Aug48,125124.9
Sep36,61695.1
Oct34,43189.4
Nov33,01385.7
Dec45,673118.6

Half the base is barely engaged

Distribution of active months per member, 2017–2018

The monthly active member rate is 48.2% — short of the 50% target and the clearest untapped lever on the dashboard. Dormancy, not churn, is where the volume is: moving the rate by one point is worth roughly 6,000 incremental flights a year, and these members are already enrolled, so there is no acquisition cost to pay.

Table view · Members by number of active months
Active monthsMembersMean CLVChurn rateTotal flights
0.001,570.00$8,36160.6%0.00
1.00409.00$7,82919.6%1,125.00
2.00423.00$8,54122.7%2,332.00
3.00448.00$7,98224.8%4,551.00
4.00491.00$8,08634.8%8,298.00
5.00499.00$7,87632.5%12,037.00
6.00527.00$7,62427.9%16,005.00
7.00476.00$8,46318.5%15,560.00
8.00445.00$7,3039.4%14,098.00
9.00478.00$7,3839.0%13,043.00
10.00646.00$7,8465.6%17,774.00
11.00871.00$8,1773.8%25,638.00
12.001,213.00$7,7151.8%38,790.00
13.001,582.00$7,8502.0%55,133.00
14.001,643.00$7,8990.7%61,947.00
15.001,633.00$8,2731.0%65,383.00
16.001,386.00$7,9191.1%59,277.00
17.00958.00$7,9940.8%43,773.00
18.00564.00$8,2180.4%27,145.00
19.00301.00$7,6950.3%15,304.00
20.00111.00$8,0490.0%6,139.00
21.0044.00$8,0170.0%2,559.00
22.0016.00$8,4260.0%945.00
23.002.00$18,9840.0%120.00
24.001.00$6,6320.0%70.00

Retention & churn

Where the base leaks

Half of all churn happens on one date

Tenure at cancellation, all 2,067 cancellations

1,048 of 2,067 cancellations (51%) occur at exactly month 8 of membership — 28× the neighbouring months. A spike that precise is not customer behaviour, it is a contract term expiring: NLA's loyalty program evidently carries an eight-month introductory period, and a large share of members leave the moment it lapses. In 2018 alone this single moment cost $2.67M of CLV across 325 members. It is the highest-leverage retention target in the business, because the date is known in advance for every member.

Table view · The month-8 cliff by enrolment cohort
Enrolment cohortCohort sizeCancelled at month 8Month-8 churn rateTotal cancellationsMonth 8 as % of cohort churn
2,012.001,686.000.000.0%0.00
2,013.002,397.0054.002.3%362.0014.9%
2,014.002,370.00131.005.5%387.0033.9%
2,015.002,331.00204.008.8%404.0050.5%
2,016.002,456.00246.0010.0%390.0063.1%
2,017.002,487.00287.0011.5%365.0078.6%
2,018.003,010.00126.004.2%159.0079.2%

…and it is program-wide, not a campaign defect

Share of each enrolment cohort that cancels at exactly month 8

This is the correction that matters. The campaign cohort's cancellations look dramatic — 101 of 115 (88%) fall on month 8 — but that ratio is inflated by right-censoring: those members have only been enrolled 8–11 months, so month 8 is nearly the only tenure at which they could churn. Comparing rates instead of ratios, 10.4% of campaign members cancelled at month 8 versus 11.5% of the 2017 cohort and 10.0% of the 2016 cohort. The campaign did not create the cliff and its members are not unusually fragile — the cliff is a program design flaw affecting every cohort since 2013, and fixing it is worth far more than fixing it for one campaign.

Table view · Month-8 churn rate, like-for-like
CohortMonth-8 churn rate
20132.3%
20145.5%
20158.8%
201610.0%
201711.5%
20184.2%
2018 campaign cohort10.4%

Every cohort falls off the same month-8 cliff

Share of each cohort still enrolled, m months after joining

All three curves are flat to month 7 and then drop together — the campaign cohort, the 2018 standard cohort and the 2017 cohort alike. The campaign cohort is in fact the best of the three at every duration, ending at 88.2% against 85.6% for 2018 standard. The lesson is not that the promotion attracted fragile members; it is that every member hits the same wall at eight months. A tapered benefit step-down plus a save offer fired in month 7 — applied program-wide, not just to campaign joiners — is the single highest-return retention intervention available.

Table view · Retention curves, % still enrolled
Months since enrolment2017 Standard2018 Promotion2018 Standard
0.0099.88100.0099.95
1.0099.7299.5999.89
2.0099.6099.3899.74
3.0099.4099.3899.55
4.0099.2099.1899.39
5.0099.0899.0798.94
6.0098.9198.9798.45
7.0098.6798.8798.39
8.0087.1388.4785.94
9.0086.8988.4884.90
10.0086.7388.4784.90
11.0086.57nan84.38

Every cohort decays at the same steady rate

Cohort retention heat-map, 2012–2018

Roughly 3 percentage points lost per year, remarkably stable across seven annual cohorts. There is no deteriorating vintage and no improving one — which tells us retention is driven by the program design, not by who was recruited in a given year.

Table view · Retention (%) at 6-month intervals
Cohort06121824303642485460
2,012.00100.00100.00100.00100.00100.00100.00100.00100.00100.00100.00100.00
2,013.0099.9098.6095.1093.9093.0092.0090.9089.7088.5086.9085.90
2,014.0099.9098.4092.0090.5089.5088.4087.5086.1084.9084.60nan
2,015.00100.0098.7088.7087.2086.2085.0083.7082.70nannannan
2,016.0099.9098.9087.7086.6085.1084.80nannannannannan
2,017.0099.9098.9086.4086.00nannannannannannannan
2,018.00100.0098.70nannannannannannannannannan

Churn is structural, not segmental

Lifetime churn rate by segment (groups with n ≥ 50)

Every demographic cut sits inside an 11.6%–13.1% band around the 12.3% base rate, and members who leave are worth slightly more than those who stay ($8,132 vs $7,969 mean CLV). There is no bad segment to stop recruiting. Retention spend should target moments — the month-8 cliff, the first dormant quarter — not demographic profiles. That is also the cheaper intervention.

Table view · Churn and value by every segment
DimensionSegmentMembersChurn rateMean CLV
CardStar7,63711.8%$6,742
CardNova5,67112.6%$8,046
CardAurora3,42913.1%$10,673
EducationHigh School or Below78211.9%$7,707
EducationCollege4,23812.4%$7,595
EducationBachelor10,47512.3%$8,207
EducationMaster50812.8%$7,441
EducationDoctor73413.1%$7,833
Marital statusDivorced2,51811.6%$8,201
Marital statusMarried9,73512.5%$8,058
Marital statusSingle4,48412.5%$7,719
GenderFemale8,41012.5%$7,982
GenderMale8,32712.2%$7,995
Salary band< $50k92612.2%$8,478
Salary band$50-75k5,71812.4%$8,150
Salary band$75-100k4,33412.2%$8,229
Salary band$100-150k1,04712.8%$7,445
Salary band$150k+47411.8%$7,621
ProvinceAlberta96912.6%$7,753
ProvinceBritish Columbia4,40911.8%$7,994
ProvinceManitoba65815.2%$8,067
ProvinceNew Brunswick63610.5%$8,154
ProvinceNewfoundland25814.7%$8,025
ProvinceNova Scotia51811.2%$7,983
ProvinceOntario5,40412.5%$7,914
ProvincePrince Edward Island6616.7%$7,704
ProvinceQuebec3,30012.5%$8,161
ProvinceSaskatchewan40912.2%$8,076
ProvinceYukon11010.9%$6,772

Value & segments

Who is worth defending

The book is top-heavy

Share of total CLV held by each decile of members

The top decile holds 31% of portfolio value and the top quintile 46%. That concentration is what makes a targeted retention programme worth building: defending the top 20% of members defends nearly half the book.

Table view · CLV deciles
DecileMembersMean CLVTotal CLVFlightsChurn rate% of value
1.001,674.00$2,449$4,100,25429.711.5%3.1
2.001,675.00$2,954$4,948,25930.411.7%3.7
3.001,672.00$3,979$6,653,37930.512.4%5.0
4.001,675.00$4,814$8,063,29930.412.7%6.0
5.001,682.00$5,435$9,142,15230.113.2%6.8
6.001,665.00$6,477$10,784,10030.713.7%8.1
7.001,673.00$7,787$13,027,03930.311.2%9.7
8.001,677.00$9,050$15,176,53230.611.6%11.4
9.001,670.00$12,476$20,835,58030.312.5%15.6
10.001,674.00$24,480$40,979,56729.913.0%30.6

Aurora punches above its weight

Share of members vs share of portfolio value, by card tier

Aurora is 20% of members but 27% of value, with a median CLV +70% above Star. Yet flights per member are identical across tiers (30.2 / 30.4 / 30.4) — tier is not earned by flying in this program. That makes tier upgrade a pricing and merchandising decision, not a reward for volume. Migrating 5% of Star members to Nova is worth roughly $0.5M of CLV under management.

Table view · Profile by card tier
Card tierMembersMean CLVMedian CLVTotal CLVFlights per memberChurn rate
Star7,637$6,742$4,787$51,486,83230.211.8%
Nova5,671$8,046$5,799$45,626,68830.412.6%
Aurora3,429$10,673$8,140$36,596,64130.413.1%

Tier shifts the whole distribution, but the spread within a tier is wider

CLV distribution by card tier · boxes are the interquartile range

Medians step cleanly upward — Star $4,787 → Nova $5,799 → Aurora $8,140 — but the boxes overlap heavily, so tier predicts value on average without determining it for any individual member. That nuance matters for targeting: a tier-based campaign will reach plenty of low-value Aurora members and miss plenty of high-value Star ones. This chart is also the evidence behind treating CLV as a tier-linked score rather than observed spend — CLV correlates ≈0 with distance flown (−0.00), flights (−0.01), tenure (0.00) and salary (−0.02). Every value figure on this dashboard is therefore CLV under management, never booked revenue.

Table view · CLV distribution statistics by tier
Card tierMembersMeanP25MedianP75Max
Star7,637.00$6,742$2,725$4,787$7,897$83,325
Nova5,671.00$8,046$4,015$5,799$8,962$74,229
Aurora3,429.00$10,673$6,063$8,140$11,895$73,226

RFM segmentation — where value and headcount diverge

Recency / Frequency / Monetary scoring on the flying population

Segments where the bar runs past the dot hold more value than headcount. Three readings matter. Champions (11% of members, 16% of value, 45 flights each, 1% churn) are the core to protect. At risk (high value) — 12% of members but 18% of value, with the highest mean CLV in the book at $12,497 — have lapsed despite flying heavily; this is where a save contact has the highest expected return. And 1,570 members have never taken a single flight, of whom 61% have already cancelled — an acquisition-quality problem that no retention campaign can fix, and the one segment worth screening out at sign-up rather than winning back.

Table view · RFM segment profile
RFM segmentMembersMean CLVTotal CLVMean flightsChurn rateMedian recency (months)% of members% of value
Slipping away3,659$9,200$33,662,50629.514.2%1.021.925.2
At risk (high value)1,965$12,497$24,556,20243.63.1%1.011.718.4
Champions1,867$11,598$21,654,21945.40.7%0.011.216.2
Big spenders1,414$11,377$16,086,48023.80.4%0.08.412.0
Never flew1,570$8,361$13,126,4880.060.6%99.09.49.8
Loyal flyers2,429$3,968$9,637,28144.60.5%0.014.57.2
Hibernating1,959$3,913$7,666,24021.825.6%2.011.75.7
Promising1,874$3,906$7,320,74723.50.2%0.011.25.5

Points economics

What the program costs

Accrual dwarfs redemption every single month

Points accrued vs redeemed, 2017–2018

Across 24 months members earned 794M points and redeemed 12.2M — a redemption rate of 1.54% and breakage of 98.46%. The loyalty program is, in cash terms, funded almost entirely by points that are never used.

Table view · Monthly points flow
YearMonthPoints accruedPoints redeemedCash cost (CAD)Redemption rate
2,017.001.0019,735,330.00351,079.00$63,2141.78%
2,017.002.0019,777,954.00356,485.00$64,1821.80%
2,017.003.0027,379,770.00443,731.00$79,8761.62%
2,017.004.0023,176,724.00415,371.00$74,7781.79%
2,017.005.0027,713,330.00467,855.00$84,2171.69%
2,017.006.0035,341,513.00575,017.00$103,5181.63%
2,017.007.0039,086,938.00584,114.00$105,1571.49%
2,017.008.0034,346,465.00544,887.00$98,0861.59%
2,017.009.0026,001,387.00474,227.00$85,3711.82%
2,017.0010.0024,525,813.00438,563.00$78,9491.79%
2,017.0011.0023,690,277.00410,276.00$73,8761.73%
2,017.0012.0032,547,125.00546,821.00$98,4441.68%
2,018.001.0019,943,433.00427,708.00$77,0032.14%
2,018.002.0020,515,407.50420,067.00$75,6252.05%
2,018.003.0030,225,349.50532,753.00$95,9151.76%
2,018.004.0024,356,433.50484,437.00$87,2111.99%
2,018.005.0045,414,472.00555,249.00$99,9681.22%
2,018.006.0056,342,946.00659,298.00$118,6711.17%
2,018.007.0063,614,826.00694,223.00$124,9901.09%
2,018.008.0054,539,659.00652,358.00$117,4331.20%
2,018.009.0035,284,250.00543,768.00$97,9031.54%
2,018.0010.0032,777,965.00514,307.00$92,5801.57%
2,018.0011.0031,011,432.00495,619.00$89,2211.60%
2,018.0012.0046,936,417.00645,633.00$116,2521.38%

The liability nobody has priced

Cost of the 782M outstanding points under different redemption scenarios

At today's 1.54% the outstanding bank is worth $2.2M. At the 10–25% redemption rates typical of airline programmes it would be $14M–$35M. Two things follow. (1) The nominal liability — 782M points × $0.18 = $141M — massively overstates the cash exposure, so it should never be quoted raw. (2) A redemption rate this low is itself a warning sign: it means members do not see rewards as reachable, which is the condition that precedes disengagement. Low redemption flatters the P&L today and erodes the program tomorrow.

Table view · Points liability sensitivity
Redemption scenarioExpected cost (CAD)vs today
1.5%$2,167,8461.0×
5.0%$7,038,4623.2×
10.0%$14,076,9256.5×
15.0%$21,115,3879.7×
20.0%$28,153,84913.0×
25.0%$35,192,31216.2×

Campaign members hoard their points

Redemption rate by enrolment type and card tier

Campaign members redeem at 0.37% against 1.71% for standard members — roughly 4× less, despite earning 50% faster. In the short term that makes the campaign even cheaper than modelled. In the medium term it is the risk: a large, fast-growing balance held by the most engaged flyers, unredeemed. If that cohort ever redeems in bulk, the cost lands all at once.

Table view · Points economics by segment
DimensionSegmentPoints accruedPoints redeemedCash costRedemption rate
Enrolment typeCampaign100,959,739.50372,894$67,1410.37%
Enrolment typeStandard693,325,477.0011,860,952$2,135,2991.71%
Card tierStar358,969,038.005,610,623$1,010,0971.56%
Card tierNova270,499,520.004,095,183$737,2521.51%
Card tierAurora164,816,658.502,528,040$455,0911.53%

Geography & mix

Where members are

Members by province

Ontario, British Columbia and Québec are 78% of the base

The member base mirrors Canada's population distribution, so there is no obvious under-served region to attack. The interesting geography is in response rates, not headcount — see the Campaign tab.

Table view · Full provincial profile
ProvinceMembersMean CLVTotal CLVFlights per memberChurn rateCampaign rate
Ontario5,404$7,914$42,765,91730.312.5%5.5%
British Columbia4,409$7,994$35,244,34430.511.8%6.4%
Quebec3,300$8,161$26,931,15630.212.5%7.1%
Alberta969$7,753$7,512,45230.312.6%4.0%
Manitoba658$8,067$5,307,79429.015.2%3.0%
New Brunswick636$8,154$5,186,06031.310.5%5.2%
Nova Scotia518$7,983$4,135,35229.811.2%3.7%
Saskatchewan409$8,076$3,303,23729.912.2%5.9%
Newfoundland258$8,025$2,070,47129.414.7%6.2%
Yukon110$6,772$744,88233.310.9%8.2%
Prince Edward Island66$7,704$508,49627.616.7%1.5%

Top 14 cities

Toronto, Vancouver and Montréal alone are 48% of members

Extreme urban concentration. Combined with the provincial response index, this points to a very cheap next campaign: Montréal and Vancouver metro cover the two highest-responding provinces and roughly a third of the entire member base.

Table view · All 29 cities
CityMembersProvinceMean CLVFlights per memberChurn rate
Toronto3,351Ontario$7,86230.612.3%
Vancouver2,582British Columbia$7,84730.311.9%
Montreal2,059Quebec$8,31830.112.7%
Winnipeg658Manitoba$8,06729.015.2%
Whistler582British Columbia$8,76930.411.9%
Halifax518Nova Scotia$7,98329.811.2%
Ottawa509Ontario$8,03431.010.6%
Trenton486Ontario$7,78829.413.8%
Edmonton486Alberta$7,92030.912.3%
Quebec City485Quebec$7,89829.810.5%
Dawson Creek444British Columbia$8,03330.112.4%
Fredericton425New Brunswick$8,21331.410.4%
Regina409Saskatchewan$8,07629.912.2%
Kingston401Ontario$7,80629.513.7%
Tremblant398Quebec$7,74530.713.6%
Victoria389British Columbia$8,16031.211.8%
Hull358Quebec$8,07430.713.1%
West Vancouver324British Columbia$7,35432.111.4%
St. John's258Newfoundland$8,02529.414.7%
Thunder Bay256Ontario$8,50129.911.3%
Sudbury227Ontario$8,28728.815.0%
Moncton211New Brunswick$8,03731.010.9%
Calgary191Alberta$7,74630.411.5%
Banff179Alberta$7,27427.214.5%
London174Ontario$7,80429.413.8%
Peace River113Alberta$7,80232.512.4%
Whitehorse110Yukon$6,77233.310.9%
Kelowna88British Columbia$8,59833.410.2%
Charlottetown66Prince Edward Island$7,70427.616.7%

Province × tier — tier dominates, geography does not

Mean CLV by province and card tier

Reading across any row, CLV rises sharply from Star to Aurora. Reading down any column, it barely moves. This is the two-way version of the finding on the Value tab: tier is the value lever, geography is the acquisition lever, and they should be managed by different teams with different budgets.

Table view · Mean CLV by province × tier
ProvinceStarNovaAurora
Alberta6,446.007,764.0010,237.00
British Columbia6,642.008,358.0010,430.00
Manitoba6,891.007,518.0011,318.00
New Brunswick6,194.008,580.0012,268.00
Newfoundland7,756.006,882.0010,561.00
Nova Scotia6,611.008,170.0010,710.00
Ontario6,809.007,835.0010,430.00
Prince Edward Island6,564.008,950.009,058.00
Quebec6,924.008,077.0011,184.00
Saskatchewan6,347.008,331.0011,093.00
Yukon6,089.006,875.008,905.00

Enrolment by year

The campaign is what makes 2018 the record year

Standard enrolments in 2018 (2,039) actually ran below 2017 (2,487) — because Feb–Apr sign-ups were all classified as campaign. The record total is entirely attributable to the promotion, which is exactly why the counterfactual on the Campaign tab matters: it separates the campaign's contribution from the program's underlying momentum.

Table view · Enrolment by year and type
YearStandardCampaignTotal
2,0121,68601,686
2,0132,39702,397
2,0142,37002,370
2,0152,33102,331
2,0162,45602,456
2,0172,48702,487
2,0182,0399713,010

Method & data

How the numbers were made

Data lineage

Three source extracts → one analysis-ready star schema

Customer Loyalty History16,737 rows × 16 cols one row per member
Customer Flight Activity392,936 rows × 8 cols one row per member-month
Calendar2,557 rows × 4 cols 2012-01-01 → 2018-12-31
↓ clean · de-duplicate · derive
members16,737 × 58 + tenure, churn, RFM, activity roll-up
activity389,065 × 13 rectangular monthly panel
member_base · cohorts · monthly84 · 302 · 24 rows KPI aggregates

The join is a clean 1:N on Loyalty Number — no orphan facts, no members without a dimension row, no duplicate member keys. All three extracts carry a UTF-8 BOM on the first header, which silently corrupts the first column name if it is not stripped on read.

Cleaning log

Every decision taken on the raw data, and why

StepIssue foundDecisionRows
Flight activity1,922 byte-identical rows and 3,871 rows breaking the (member, year, month) grainKept one record per member-month (highest distance). Verified the result is an exactly rectangular panel: 15,766 standard x 24 months + 971 promotion x 11 months = 389,065 rows3,871
Flight activity54.5% of member-months show 0 flights / 0 km / 0 pointsKept as genuine dormant months -- these are the denominator of the engagement KPIs, not missing data. Flagged with `flew` so activity rates can exclude them on demand211,092
Flight activityPromotion members carry only 11 months (Feb-Dec 2018); no 2017 historyTreated as structural, not missing. All year-on-year and pre/post comparisons of *existing* member behaviour exclude promotion members so the panel is balanced10,681
Members20 members with a negative salary (min -58,486)Took the absolute value -- a leading-minus data-entry error, the magnitudes are otherwise in the normal range20
Members4,238 missing salaries (25.3%) -- these are *exactly* the 4,238 College-educated members, 0% missing in every other education levelStructurally missing (not random), so imputing would fabricate a College salary distribution. Left as NULL, excluded from salary cuts, and flagged with `salary_known` so no chart silently drops a quarter of the base4,238
Members88% NULL in Cancellation Year / MonthNULL means 'still a member', not missing. Converted to a boolean `churned` flag rather than dropped or imputed14,670
Members0 members with a cancellation date before their enrolment dateNone found -- the enrolment/cancellation sequence is internally consistent0
MembersCountry is 'Canada' for all 16,737 rows; City maps 1:1 to ProvinceDropped Country from the analysis (zero variance) and used Province/City as the geography hierarchy16,737
MembersCLV correlates ~0 with distance flown (-0.004), flights (-0.006), tenure (0.002) and salary (-0.022); it is driven almost entirely by card tierTreated CLV as a static member-value score attached to tier, NOT as observed spend. Volume KPIs are measured in flights and km; program cost in real redemption dollars16,737

Assumptions & filters

Everything a reader needs in order to reproduce or challenge these numbers

ItemRule appliedWhy
Observation windowFlight activity 2017-01 → 2018-12 (24 months)The only period the fact table covers. Enrolment history reaches back to 2012.
GrainOne row per member per month3,871 rows broke this key. Tested summing vs de-duplicating: summing inflated affected members to 20.2 flights/year against 14.1 for an otherwise identical control group. De-duplicating restores an exactly rectangular panel (15,766 × 24 + 971 × 11 = 389,065 rows), so these are source-system re-writes.
Campaign window2018-02 → 2018-04Given by the data dictionary and independently confirmed by the earn-rate switch.
Campaign mechanicA permanent 1.5× points earn rateNot documented anywhere — derived from points ÷ kilometres. All 924 campaign members who flew earn 1.5 pts/km; zero standard members ever do.
Point value1 point = $0.18 CADDerived from the data: Dollar Cost Points Redeemed ÷ Points Redeemed is constant to 4 decimals.
Balanced panelCampaign members excluded from every year-on-year and pre/post comparisonThey have no 2017 history. Leaving them in would manufacture a +16% YoY jump from cohort mix alone.
Counterfactual2017 baseline × the +9.7% growth seen in the nine non-campaign months of 2018Separates the campaign's contribution from the program's underlying momentum.
SalaryKept as NULL for the 4,238 members without one; never used in a headline KPIMissingness is exactly the College population and 0% everywhere else — imputation would invent a College income distribution and then let us 'discover' it.
Negative salaries20 values replaced with their absolute valueMagnitudes are in the normal range; only the sign is wrong — a leading-minus entry error.
Cancellation dateNULL treated as 'still a member', not as missingBecomes the churned flag that drives every retention KPI.
CLVTreated as a static, tier-linked member-value score — never as booked revenueCLV correlates ≈0 with distance (−0.00), flights (−0.01), tenure (0.00) and salary (−0.02), but is almost fully determined by card tier.
CountryDropped from the analysisAll 16,737 members are in Canada — zero variance.

What this analysis cannot say

Stated up front rather than discovered in questions

  • No revenue in the data — The fact table carries no fare or ticket value, and CLV proves to be a tier-linked score rather than observed spend. Every value figure here is CLV under management, never booked revenue.
  • No control group — One airline, no untreated market. The +11.0 pp difference-in-differences on existing members is suggestive, not causal — seasonality is controlled by comparing like months a year apart, but a mid-2018 travel-demand shift cannot be ruled out.
  • A 24-month activity window — Cohort retention beyond month 24 is measured on progressively smaller and older cohorts; the early months are the only part measured on the full base.
  • Salary is 25% missing by construction — It is used only as a secondary cut and never in a headline KPI.
  • Synthetic data — Northern Lights Air is a fictitious carrier. The structure is realistic and internally consistent, but relationships that would exist in real data — CLV against flying, for one — are absent, and that shapes what can honestly be claimed.

Insights & actions

What to do next

The eight findings

Each one traceable to a chart on this dashboard

1

The campaign worked — and the gain was not borrowed.

971 sign-ups in Feb–Apr 2018 against a trend-adjusted counterfactual of 690: +281 incremental members, +40.7%. The classic failure mode of an acquisition promotion is pull-forward — harvesting next quarter's sign-ups early. That did not happen: the eight months after the campaign still ran +10.6% ahead of the same months in 2017.

2

Response was geographic, not demographic.

Québec indexed at 1.22 and British Columbia 1.09 against the national response rate, while Manitoba (0.52), Nova Scotia (0.63) and Alberta (0.69) lagged. Every demographic cut — gender, education, marital status, tier — moved less than 3 pp. The offer has broad appeal; only geography discriminates.

3

Existing members flew more too.

On a balanced panel that excludes campaign joiners, flights ran −0.3% in Jan–Apr and +10.7% in May–Dec: a +11.0 pp difference-in-differences, with the active member rate rising from 43.0% to 48.2%. Valuing the campaign at only its 281 new members materially undercounts it.

4

Campaign members are the best flyers, not discount-seekers.

They are 5.8% of the base but flew 15.7% of all 2018 flights, peaking at a 62% monthly active rate against ~50%. In July they averaged 8.7 flights per member versus 1.9.

5

Half of all churn happens on a single, predictable date.

1,048 of 2,067 cancellations (51%) fall on exactly month 8 of membership — 28× the neighbouring months, and it cost $2.67M of CLV in 2018 alone. This looks at first like a campaign defect, but it is not: it affects every cohort since 2013, and the campaign cohort's month-8 rate (10.4%) is lower than the 2017 cohort's (11.5%). An eight-month introductory term is expiring program-wide.

6

Churn is structural, not segmental.

Every demographic cut sits in an 11.6%–13.1% band around the 12.3% base rate, and churners carry higher CLV than stayers ($8,132 vs $7,969). There is no bad segment to stop recruiting — retention must target moments, not profiles.

7

The book is top-heavy and tier is the lever.

The top 20% of members hold 46% of value. Aurora's median CLV is 70% above Star, yet flights per member are identical across tiers — tier is not earned by flying, so upgrading it is a pricing decision the airline fully controls.

8

The program is funded by breakage — and that is also its risk.

Members redeem 1.54% of what they earn; 98.5% is never used. That is what makes the campaign cheap. But 1.5% is far below the 10–25% typical of airline programmes, which signals members do not see rewards as reachable — the condition that precedes disengagement.

Recommended actions

What the loyalty division should do next, and what it is worth

ActionGrounded inExpected effectPriority
Re-run the promotion, bought regionally
Concentrate spend in Québec and British Columbia; cut Manitoba and Alberta weight.
Insights 1, 2Same ~+40% lift at materially lower media cost High
Kill the month-8 cliff — program-wide
Taper the introductory benefit across months 8–12 instead of ending it, and fire a save offer in month 7 to every member approaching the date.
Insight 5Recovering half the 325 month-8 leavers of 2018 ≈ +$1.3M CLV a year High
Attack dormancy, not demographics
Trigger a win-back after three consecutive dormant months, aimed at moments rather than segments.
Insights 3, 648.2% → 50%+ clears the target; ~6,000 incremental flights a year High
Merchandise tier upgrades directly
Tier drives CLV but is not earned by flying — so sell it rather than waiting for it to be earned.
Insight 7Moving 5% of Star to Nova ≈ +$0.5M CLV under management Medium
Publish the points liability monthly, with a stress test
Report expected cost at 1.5%, 10% and 25% redemption alongside the nominal figure.
Insight 8A move to 10% redemption would cost ~$12M; the exposure needs a number Medium
Instrument the next campaign as a real experiment
Hold out matched regions so the lift can be measured causally rather than inferred.
Insight 3's caveatTurns a before/after read into a defensible causal one Medium

Conclusion

The Feb–Apr 2018 promotion is the clearest success in the program's history: +281 incremental members at a CAC of $332 — roughly 4% of what a campaign member is worth — with no pull-forward, and a +11.0 pp lift in flying among members who were already enrolled. It should be repeated.

Two things should change when it is. Buy it regionally — Québec and British Columbia responded well above the national rate while demographics did not discriminate at all, so the media plan can be materially cheaper for the same lift. And instrument it as a real experiment, with matched hold-out regions, so the next read is causal rather than inferred.

Separately — and worth more than the campaign itself — fix the month-8 cliff. Half of every cancellation the program has ever recorded lands on exactly the eighth month of membership, across every cohort since 2013. That is an introductory term expiring, not customer behaviour, and in 2018 alone it cost $2.67M of CLV. Because the date is known in advance for every single member, it is also the most tractable retention problem the division has.

Underneath the campaign sit two structural facts the division should manage deliberately. Dormancy is the largest untapped lever — 48.2% of members fly in a given month, and these people are already acquired. And the program is funded by breakage: at a 1.54% redemption rate the points bank costs almost nothing today, but that number is far below industry norms, and it should be read as a signal about perceived reward reachability, not as a windfall.