Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions data/offers.js
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,29 @@ const PLANS = [
note: "Lower priority than Experience plans; hotspot at reduced speeds only.",
},
},
{
id: "tmo-essentials-saver",
carrier: "T-Mobile",
name: "Essentials Saver",
tier: "base",
perLine: {
1: { price: 50 },
2: { price: 50, estimated: true },
3: { price: 50, estimated: true },
4: { price: 50, estimated: true },
5: { price: 50, estimated: true },
},
taxesIncluded: false,
notes: "Essentials Saver 2.0 (Aug 2026): $50/line with AutoPay, $55 without. Taxes and fees extra.",
source: "https://www.whistleout.com/CellPhones/Carriers/T-Mobile/Personal/T-Mobile-Essentials-Savings",
features: {
premiumData: 50,
hotspotGB: 0,
international: false,
source: "https://saveonphone.com/plans/t-mobile-essentials-saver/",
note: "50GB premium data, then may slow during congestion; unlimited hotspot at 3G speeds only (no high-speed allotment); 480p video.",
},
},
{
id: "tmo-more",
carrier: "T-Mobile",
Expand Down
1 change: 1 addition & 0 deletions data/qci.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ const QCI_BY_PLAN = {

// T-Mobile network: QCI 6 = postpaid Experience; QCI 7 = Essentials, Metro, T-Mobile MVNOs
"tmo-essentials": { value: 7, note: "One step below T-Mobile's top postpaid priority." },
"tmo-essentials-saver": { value: 7, note: "Essentials-family priority (QCI 7) for the 50GB premium-data allotment.", allotment: true },
"tmo-more": { value: 6, note: "T-Mobile's top network priority." },
"tmo-beyond": { value: 6, note: "T-Mobile's top network priority." },
"mint": { value: 7, note: "T-Mobile MVNOs like Mint ride at QCI 7 — same as Essentials and Metro." },
Expand Down
10 changes: 10 additions & 0 deletions features/needs-assessment.feature
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,16 @@ Feature: Needs-based plan recommendation
And the "Google Fi Unlimited Standard" plan is excluded by needs
And the "Google Fi Unlimited Premium" plan is included

Scenario: Essentials Saver's 50GB allotment sits between moderate and heavy
Given the user needs "moderate" data, 0 GB of hotspot, and no international use
When the scenarios are computed
Then the "T-Mobile Essentials Saver" plan is included

Scenario: Essentials Saver drops out under heavy data needs
Given the user needs "heavy" data, 0 GB of hotspot, and no international use
When the scenarios are computed
Then the "T-Mobile Essentials Saver" plan is excluded by needs

Scenario: MVNOs without priority data are excluded when priority data is needed
Given MVNOs are included
And the user needs "moderate" data, 0 GB of hotspot, and no international use
Expand Down
5 changes: 5 additions & 0 deletions features/plan-costs.feature
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,11 @@ Feature: 24-month plan cost calculation
Then the "Google Fi Unlimited Essentials" rows have a 24-month plan cost of 1920.00
And the "Google Fi Unlimited Essentials" rows are not flagged as estimated

Scenario: T-Mobile Essentials Saver single-line pricing
Given 1 line with no new devices
When the scenarios are computed
Then the "T-Mobile Essentials Saver" rows have a 24-month plan cost of 1200.00

Scenario: A price the source did not publish is flagged as estimated
Given 3 lines with no new devices
When the scenarios are computed
Expand Down
4 changes: 2 additions & 2 deletions features/results-classification.feature
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ Feature: Result classification — best option, cheapest option, differentiators

Scenario: The cheapest option has the lowest true cost and is labeled
When the results are classified
Then the cheapest option is "AT&T Value 2.0"
And the "AT&T Value 2.0" option carries the "Cheapest overall" differentiator
Then the cheapest option is "T-Mobile Essentials Saver"
And the "T-Mobile Essentials Saver" option carries the "Cheapest overall" differentiator

Scenario: The best option maximizes plan features, tie broken by cost
When the results are classified
Expand Down
Loading