{
  "schema": "apple-upgrade-calculator/1",
  "about": "Four ways to pay for the same iPhone, costed over 48 months: cash, Apple Card 24-month 0%, the Klarna-backed Apple Upgrade lease at both terms, and 36-month carrier financing.",
  "request": {
    "device": null,
    "device_price": 1199,
    "trade_in": 0,
    "carrier_offer": null,
    "apple_care": "none",
    "broken_screen": "none",
    "tax_rate": 8.5,
    "upgrade_months": [],
    "lease_exit": "best",
    "ending": "own",
    "trade_in_values": [
      817,
      563,
      420,
      332
    ],
    "private_sale_values": null,
    "klarna_card_back": 3
  },
  "warnings": [],
  "money": "USD",
  "tradeInQuotesChecked": "2026-09-20",
  "horizonMonths": 48,
  "ending": "own",
  "leaseExit": "best",
  "upgradeMonths": [],
  "recommendation": {
    "pick": "upgrade-24",
    "name": "Apple Upgrade · 24 mo",
    "netCost": 1005.26,
    "runnerUp": {
      "key": "carrier",
      "name": "Carrier · 36 mo",
      "netCost": 1018.81
    },
    "margin": 13.55,
    "marginPerMonth": 0.28,
    "confidence": "toss-up",
    "reason": "Apple Upgrade · 24 mo edges Carrier · 36 mo by $14 over four years — about $0 a month. That is inside the error bars on four years of guessed trade-in values, so pick on cash flow and flexibility instead: what you can produce in the worst single month."
  },
  "plans": [
    {
      "key": "upgrade-24",
      "name": "Apple Upgrade · 24 mo",
      "shortName": "Lease 24",
      "rank": 1,
      "netCost": 1005.26,
      "costAboveBest": 0,
      "npv": 1288.25,
      "totalPaid": 1358.28,
      "dueToday": 96.39,
      "biggestMonth": 199.95,
      "monthsPaying": 30,
      "monthsWithPhone": 48,
      "netCostPerMonth": 20.94,
      "equityAtHorizon": 332,
      "remainingBalance": 0,
      "carrierCreditsLost": 0,
      "tradeInRefund": 0,
      "leaseExits": {},
      "finalMove": "buyout"
    },
    {
      "key": "carrier",
      "name": "Carrier · 36 mo",
      "shortName": "Carrier",
      "rank": 2,
      "netCost": 1018.81,
      "costAboveBest": 13.55,
      "npv": 1301.79,
      "totalPaid": 1371.29,
      "dueToday": 196.27,
      "biggestMonth": 200.93,
      "monthsPaying": 36,
      "monthsWithPhone": 48,
      "netCostPerMonth": 21.23,
      "equityAtHorizon": 332,
      "remainingBalance": 0,
      "carrierCreditsLost": 0,
      "tradeInRefund": 0,
      "finalMove": "buyout"
    },
    {
      "key": "upgrade-12",
      "name": "Apple Upgrade · 12 mo",
      "shortName": "Lease 12",
      "rank": 3,
      "netCost": 1027.65,
      "costAboveBest": 22.39,
      "npv": 1310.64,
      "totalPaid": 1358.28,
      "dueToday": 96.39,
      "biggestMonth": 378.85,
      "monthsPaying": 18,
      "monthsWithPhone": 48,
      "netCostPerMonth": 21.41,
      "equityAtHorizon": 332,
      "remainingBalance": 0,
      "carrierCreditsLost": 0,
      "tradeInRefund": 0,
      "leaseExits": {},
      "finalMove": "buyout"
    },
    {
      "key": "applecard",
      "name": "Apple Card · 24 mo 0%",
      "shortName": "Finance",
      "rank": 4,
      "netCost": 1028.2,
      "costAboveBest": 22.94,
      "npv": 1311.19,
      "totalPaid": 1358.28,
      "dueToday": 195.25,
      "biggestMonth": 200.93,
      "monthsPaying": 24,
      "monthsWithPhone": 48,
      "netCostPerMonth": 21.42,
      "equityAtHorizon": 332,
      "remainingBalance": 0,
      "carrierCreditsLost": 0,
      "tradeInRefund": 0,
      "finalMove": "buyout"
    },
    {
      "key": "outright",
      "name": "Pay cash",
      "shortName": "Cash",
      "rank": 5,
      "netCost": 1075.3,
      "costAboveBest": 70.03,
      "npv": 1358.28,
      "totalPaid": 1358.28,
      "dueToday": 1358.28,
      "biggestMonth": 1399.93,
      "monthsPaying": 0,
      "monthsWithPhone": 48,
      "netCostPerMonth": 22.4,
      "equityAtHorizon": 332,
      "remainingBalance": 0,
      "carrierCreditsLost": 0,
      "tradeInRefund": 0,
      "finalMove": "buyout"
    }
  ],
  "leaseBuyout": [
    {
      "term": 12,
      "payment": 49.99,
      "advertisedPayment": 49.99,
      "leaseTotal": 599.5,
      "tradeInCreditApplied": 0,
      "tradeInCreditRefunded": 0,
      "buyout": 599.12,
      "buyoutWithTax": 650.05,
      "buyoutShareOfList": 0.5,
      "tradeInAtTerm": 817,
      "buyoutAdvantage": 166.95,
      "verdict": "buy-it-out"
    },
    {
      "term": 24,
      "payment": 34.99,
      "advertisedPayment": 34.99,
      "leaseTotal": 839.3,
      "tradeInCreditApplied": 0,
      "tradeInCreditRefunded": 0,
      "buyout": 359.24,
      "buyoutWithTax": 389.78,
      "buyoutShareOfList": 0.3,
      "tradeInAtTerm": 563,
      "buyoutAdvantage": 173.22,
      "verdict": "buy-it-out"
    }
  ],
  "appleCare": {
    "plan": "none",
    "fourYearCost": 0,
    "repairWithCare": 31.47,
    "repairWithoutCare": 271.25,
    "savedPerRepair": 239.79,
    "repairsToBreakEven": 0,
    "monthsBetweenBreaksToBreakEven": null,
    "verdict": "no-coverage",
    "note": "No coverage. One cracked screen costs $271 out of pocket, and a leased phone has to be returned working."
  },
  "cadence": [
    {
      "years": 1,
      "annualCost": 489.65,
      "plan": "Apple Upgrade · 24 mo",
      "costAboveBest": 144.73
    },
    {
      "years": 2,
      "annualCost": 370.72,
      "plan": "Apple Upgrade · 24 mo",
      "costAboveBest": 25.8
    },
    {
      "years": 3,
      "annualCost": 344.92,
      "plan": "Apple Upgrade · 24 mo",
      "costAboveBest": 0
    }
  ],
  "gotchas": [
    {
      "id": "applecare-never-included",
      "severity": "watch",
      "headline": "AppleCare is never part of the lease",
      "detail": "Apple Upgrade covers the financing, not the phone. With no coverage a cracked screen is $271, and a leased phone has to come back in working condition — so on a lease that repair is not optional the way it is on a phone you own.",
      "impact": null,
      "appliesTo": []
    },
    {
      "id": "lease-buyout-12",
      "severity": "critical",
      "headline": "Handing back the 12-month lease throws away $167",
      "detail": "The 12-month lease collects $600 and leaves a $650 buyout — 50% of the sticker, with tax. A trade-in credit does not change that: it comes off the payments and the buyout equally. Apple's own trade-in quote for this phone at 12 months is $817, so giving it back sells it for $167 less than it is worth.",
      "impact": 166.95,
      "appliesTo": [
        "upgrade-12"
      ]
    },
    {
      "id": "lease-buyout-24",
      "severity": "critical",
      "headline": "Handing back the 24-month lease throws away $173",
      "detail": "The 24-month lease collects $839 and leaves a $390 buyout — 30% of the sticker, with tax. A trade-in credit does not change that: it comes off the payments and the buyout equally. Apple's own trade-in quote for this phone at 24 months is $563, so giving it back sells it for $173 less than it is worth.",
      "impact": 173.22,
      "appliesTo": [
        "upgrade-24"
      ]
    },
    {
      "id": "lease-balloon",
      "severity": "watch",
      "headline": "Owning a leased phone means finding $650 in one month",
      "detail": "Take no action when the term ends and payments simply continue at the full rate; 6 months later Klarna charges the rest of the buyout to your card and the phone is yours. That charge is $650 at 12 months and $390 at 24 months. If a sudden charge that size is a problem, the cheap-looking exit is another lease, which is the point.",
      "impact": 650.05,
      "appliesTo": [
        "upgrade-12",
        "upgrade-24"
      ]
    },
    {
      "id": "no-trade-in-on-a-new-lease",
      "severity": "critical",
      "headline": "You cannot trade a leased phone in",
      "detail": "A replacement lease takes no trade-in, because you never owned the phone you handed back. The only route from a leased phone to trade-in value is to buy it out first and trade in the phone you then own — which is why the buyout is the whole decision on this path.",
      "impact": null,
      "appliesTo": [
        "upgrade-12",
        "upgrade-24"
      ]
    },
    {
      "id": "klarna-card-acceptance",
      "severity": "watch",
      "headline": "3% back on lease payments assumes Klarna takes your card",
      "detail": "Klarna does not accept American Express, UnionPay, cards issued by Chase or Capital One, Apple Pay, or PayPal. Debit works. If your rewards card is on that list the lease loses $39 of the rewards priced here, while everything billed by Apple keeps them — check your card before counting on it.",
      "impact": 39.03,
      "appliesTo": [
        "upgrade-12",
        "upgrade-24"
      ]
    },
    {
      "id": "cadence-beats-plan",
      "severity": "info",
      "headline": "How often you upgrade costs more than which plan you pick",
      "detail": "Upgrading every year runs $490 a year here; every three years runs $345. That gap is $579 over four years, against $70 between the most and least expensive plan on the same schedule.",
      "impact": 578.92,
      "appliesTo": []
    },
    {
      "id": "lease-caps-at-list",
      "severity": "info",
      "headline": "The lease can never cost more than the phone",
      "detail": "Payments and buyout add up to the sticker exactly, so there is no interest to find. The risk is not the total; it is the shape — a payment set artificially low by your old phone's equity, and a buyout you have to produce in one month to keep what you have been paying for.",
      "impact": null,
      "appliesTo": [
        "upgrade-12",
        "upgrade-24"
      ]
    }
  ],
  "notes": [
    "Estimates, not quotes. Trade-in values, tax treatment and carrier promotions all move.",
    "Costs are net of card rewards. `netCost` is in today’s dollars at your discount rate, after crediting whatever phone you still hold at month 48.",
    "A lease collects 50% of the sticker over 12 months or 70% over 24, so the buyout is always the remaining 50% or 30% of list. A trade-in credit lowers the payments and the buyout by the same amount, and never changes that share.",
    "AppleCare is billed separately by Apple on every path here, including the lease.",
    "Apple does not accept a trade-in against a replacement lease. Getting trade-in value out of a leased phone means buying it out first."
  ],
  "docs": {
    "example": "?device_price=1199&trade_in=375&carrier_offer=1000&apple_care=monthly&upgrade_every=2&tax_rate=8.5",
    "parameters": [
      {
        "name": "device",
        "type": "enum",
        "default": "none",
        "values": [
          "iphone-17",
          "iphone-air",
          "iphone-18-pro",
          "iphone-18-pro-max",
          "iphone-duo",
          "custom"
        ],
        "description": "A phone from the September 2026 lineup. Sets device_price and the trade-in curve used for future years. Pass device_price instead for anything else."
      },
      {
        "name": "device_price",
        "type": "money",
        "default": "1199",
        "description": "Sticker price of the phone you are buying, before tax and before any trade-in."
      },
      {
        "name": "trade_in",
        "type": "money",
        "default": "0",
        "description": "Apple Trade In credit for the phone you are handing over today. On a lease this is spread across the initial term only, and anything the lease cannot absorb comes back as Apple store credit."
      },
      {
        "name": "carrier_offer",
        "type": "money",
        "default": "none",
        "description": "The whole carrier promotion, including your trade-in, not a bonus on top of it. Paid out in equal monthly bill credits over 36 months and forfeited from the month you leave. Omit it and the carrier column just uses the ordinary trade-in."
      },
      {
        "name": "apple_care",
        "type": "enum",
        "default": "none",
        "values": [
          "none",
          "monthly",
          "annual",
          "one"
        ],
        "description": "AppleCare+ billed monthly or yearly, AppleCare One at a flat monthly rate, or no coverage. Never bundled with any of the payment paths; it is billed separately by Apple in all of them."
      },
      {
        "name": "apple_care_monthly",
        "type": "money",
        "default": "13.49",
        "description": "Monthly AppleCare+ price for this device, before tax."
      },
      {
        "name": "apple_care_annual",
        "type": "money",
        "default": "149",
        "description": "Yearly AppleCare+ price for this device, before tax."
      },
      {
        "name": "apple_care_one_monthly",
        "type": "money",
        "default": "19.99",
        "description": "Monthly AppleCare One price. Set it to 0 if the household already subscribes and this device rides along for nothing."
      },
      {
        "name": "screen_repair_cost",
        "type": "money",
        "default": "250",
        "description": "Out-of-warranty screen repair for this device, before tax."
      },
      {
        "name": "apple_care_repair_cost",
        "type": "money",
        "default": "29",
        "description": "The AppleCare+ service fee for a screen repair, before tax."
      },
      {
        "name": "broken_screen",
        "type": "enum",
        "default": "none",
        "values": [
          "none",
          "repair",
          "defer",
          "dismiss"
        ],
        "description": "Crack the screen in month nine and see what each path does about it. `repair` fixes it then; `defer` leaves it, which costs trade-in value on a phone you own and a full-price repair before a lease goes back; `dismiss` means it never happened."
      },
      {
        "name": "tax_rate",
        "type": "percent",
        "default": "8.5",
        "description": "Sales tax, percent. Applied to lease payments and the buyout, and to the whole price up front on a purchase."
      },
      {
        "name": "activation_fee",
        "type": "money",
        "default": "35",
        "description": "Carrier activation or upgrade fee, charged again at every replacement."
      },
      {
        "name": "case_cost",
        "type": "money",
        "default": "59",
        "description": "Case and accessories, charged again at every replacement."
      },
      {
        "name": "apple_card_back",
        "type": "percent",
        "default": "3",
        "description": "Card rewards on charges Apple bills. Apple Card pays 3%."
      },
      {
        "name": "klarna_card_back",
        "type": "percent",
        "default": "3",
        "description": "Card rewards on the Klarna lease payments. Set it to 0 unless you have checked: Klarna refuses American Express, UnionPay, Chase- and Capital One-issued cards, Apple Pay and PayPal."
      },
      {
        "name": "carrier_card_back",
        "type": "percent",
        "default": "2",
        "description": "Card rewards on the carrier bill."
      },
      {
        "name": "discount_rate",
        "type": "percent",
        "default": "4",
        "description": "Annual rate your unspent cash earns, used to discount every path to today. Raising it favours the paths that keep your money longest."
      },
      {
        "name": "upgrade_every",
        "type": "enum",
        "default": "4",
        "values": [
          "1",
          "2",
          "3",
          "4"
        ],
        "description": "Years between replacements, applied identically to every path. 4 means keep this phone for the whole comparison."
      },
      {
        "name": "upgrade_months",
        "type": "month-list",
        "default": "from upgrade_every",
        "description": "Explicit replacement months, any of 12, 24 and 36, comma-separated. Overrides upgrade_every when both are given. An empty value means never replace it."
      },
      {
        "name": "lease_exit",
        "type": "enum",
        "default": "best",
        "values": [
          "best",
          "return",
          "buyout"
        ],
        "description": "What the lease does with the old phone at each replacement. `best` searches every combination and reports the cheapest, which is the only fair comparison against paths that have no such choice."
      },
      {
        "name": "ending",
        "type": "enum",
        "default": "own",
        "values": [
          "own",
          "walkaway"
        ],
        "description": "How month 48 settles. `own` pays off every path and credits the phone you keep. `walkaway` finishes with no phone and no debt, returning an eligible lease or selling an owned phone."
      },
      {
        "name": "final_sale_estimate",
        "type": "money",
        "default": "the age-based estimate",
        "description": "Net proceeds for the last phone on `ending=walkaway`, after fees and shipping."
      },
      {
        "name": "trade_in_values",
        "type": "money-list",
        "default": "the device's own curve",
        "description": "Expected Apple trade-in offers when the phone is one, two, three and four years old, comma-separated. These decide whether buying a lease out beats handing it back, so they are the input most worth replacing with real quotes."
      },
      {
        "name": "private_sale_values",
        "type": "money-list",
        "default": "none",
        "description": "Opt into selling owned phones yourself: net proceeds at one, two, three and four years old, comma-separated. Replaces trade-in credit, and rules out a new carrier promotion."
      },
      {
        "name": "help",
        "type": "flag",
        "default": "off",
        "description": "Include this parameter table in the response. It is included automatically when no parameters are given."
      }
    ],
    "reading": [
      "Start at `recommendation`. If `confidence` is not `clear`, the plans are within the error bars of four years of guessed trade-in values and the choice should be made on cash flow instead.",
      "Then read `gotchas`, which are the answers that surprise people. Each one is already priced for these inputs; `severity: critical` means it changes which button to press, not just what it costs.",
      "`leaseBuyout` is the single most important table: `verdict: buy-it-out` means handing the phone back at the end of the term sells it to Apple for `buyoutAdvantage` dollars less than it is worth.",
      "`cadence` prices how often the phone gets replaced, holding everything else equal. It is usually a larger number than the gap between any two plans.",
      "`plans` is sorted cheapest first by `netCost`. `dueToday` and `biggestMonth` are the cash-flow columns; a plan can win on cost and still be unaffordable in one particular month."
    ]
  }
}