Skip to main content
Glama

cwsi.net Fare Classes & Mileage Calculators

Lufthansa Group Miles & More Calculator

calculate_lufthansa_miles
Read-onlyIdempotent

Estimate the Miles & More award miles, Points, Qualifying Points and HON Circle Points for a Lufthansa, SWISS, Austrian or Brussels Airlines ticket. Award miles = fare in EUR x 4 (x 6 with Frequent Traveller, Senator or HON Circle status), at least 125 per flight. Points per flight by cabin: continental 20/20/40/40, intercontinental 60/80/200/400 (Economy/Premium Economy/Business/First). Give the one-way flights as segs, one entry per flight with the ISO country codes of its two airports (both on one continent = continental; Algeria, Egypt, Libya, Morocco and Tunisia count as Europe; for Turkey, Russia and other countries on two continents set kind to C or I), or give only the numbers of continental (cont) and intercontinental (icf) flights. Uses cwsi.net's calculator and the airline's published rules. Give the price in EUR, not US dollars. Unofficial.

Input Schema

NameRequiredDescriptionDefault
hpNoHON Circle Points you have this year (optional). Only applies to some choices of the other fields; ignored otherwise.
opNoOperated by. LH = Lufthansa; LX = SWISS; OS = Austrian; SN = Brussels. All four earn the same with Miles & More.LH
qpNoQualifying Points you have this year (optional).
icfNoIntercontinental flights. One way. Airports on two different continents.
ptsNoPoints you have this year (optional). Used only for the progress toward the next tier.
contNoContinental flights. One way. Filled in from the airports above; you can also type it. Both airports on the same continent, including domestic flights.
segsNoThe flights, one way and in order, one entry per flight (1 to 8): fromCountry and toCountry, the ISO 3166 two-letter country codes of its two airports; optional kind, C (continental) or I (intercontinental), which overrides the country table; optional from and to, the IATA codes of its two airports, which label the breakdown; some airlines also use them (Vladivostok, VVO, on JAL and ANA; the Madrid-Barcelona Air Shuttle, MAD-BCN, on Iberia; the long-haul tables named by city on SAS).
tripNoTrip. ow = One way; rt = Round trip (same flights back). Round trip counts the same flights back. The fare above is for the whole ticket either way.ow
cabinNoCabin. Y = Economy; W = Premium Economy; C = Business; F = First.Y
priceNoFare in euros in EUR. In euros (EUR), for the whole ticket: the base fare plus the surcharges the airline adds, without government taxes and airport charges. Miles & More converts a fare in another currency to euros itself. This method is for tickets from a Lufthansa Group airline (numbers starting 220, 724, 257, 082 or 101, or Eurowings). Required unless creditTo is given.
statusNoYour Miles & More status. MM = Member (no status); FT = Frequent Traveller; SE = Senator; HC = HON Circle. Frequent Traveller, Senator and HON Circle earn 6 award miles per euro instead of 4.MM
creditToNoCredit the flights to a partner program instead of Lufthansa's own: united = United MileagePlus (creditStatus one of: General member, Premier Silver, Premier Gold, Premier Platinum, Premier 1K); aeroplan = Aeroplan (creditStatus one of: Aeroplan Member, 25K, 35K, 50K, 75K, Super Elite). Earns by each flight's distance and the booking class at the program's published partner rates; leave creditTo out for the airline's own program. The programs follow the airline in op (LH: united, aeroplan; LX: united, aeroplan; OS: united, aeroplan; SN: united, aeroplan). Give the booking class letter as creditClass. Give the flights as creditFlights (one entry per flight with its great-circle miles). No price is needed with creditTo.
creditClassNoThe booking class letter on the ticket, for creditTo (required with creditTo). Ignored without creditTo.
creditStatusNoYour status in the creditTo program, by its name as listed under creditTo. Defaults to the base level. Ignored without creditTo.
creditFlightsNoThe flights for creditTo: one entry per one-way flight, in order, with its great-circle miles (calculate_flight_distance gives them) and optionally from/to airport codes. Defaults to segs when they carry miles.

Output Schema

NameRequiredDescriptionDefault
linkYes
notesYes
inputsYes
airlineYes
headlineYes
progressNo
breakdownYes
calculatorYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / price / description
      Previous value: -"Fare in euros in EUR. In euros (EUR), for the whole ticket: the base fare plus the surcharges the airline adds, without government taxes and airport charges. Miles & More converts a fare in another currency to euros itself. Required unless creditTo is given."New value: +"Fare in euros in EUR. In euros (EUR), for the whole ticket: the base fare plus the surcharges the airline adds, without government taxes and airport charges. Miles & More converts a fare in another currency to euros itself. This method is for tickets from a Lufthansa Group airline (numbers starting 220, 724, 257, 082 or 101, or Eurowings). Required unless creditTo is given."
  2. Changed6 schema fields changed
    • addedInput schema / properties / creditClass
      Added value: +{
      +  "description": "The booking class letter on the ticket, for creditTo (required with creditTo). Ignored without creditTo.",
      +  "pattern": "^[A-Za-z]$",
      +  "type": "string"
      +}
    • addedInput schema / properties / creditFlights
      Added value: +{
      +  "description": "The flights for creditTo: one entry per one-way flight, in order, with its great-circle miles (calculate_flight_distance gives them) and optionally from/to airport codes. Defaults to segs when they carry miles.",
      +  "items": {
      +    "properties": {
      +      "from": {
      +        "description": "The departure airport's code; labels the breakdown.",
      +        "pattern": "^[A-Za-z0-9]{3,4}$",
      +        "type": "string"
      +      },
      +      "miles": {
      +        "description": "Great-circle distance of this flight in miles.",
      +        "maximum": 12500,
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "to": {
      +        "description": "The arrival airport's code; labels the breakdown.",
      +        "pattern": "^[A-Za-z0-9]{3,4}$",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "miles"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 8,
      +  "minItems": 1,
      +  "type": "array"
      +}
    • addedInput schema / properties / creditStatus
      Added value: +{
      +  "description": "Your status in the creditTo program, by its name as listed under creditTo. Defaults to the base level. Ignored without creditTo.",
      +  "maxLength": 64,
      +  "type": "string"
      +}
    • addedInput schema / properties / creditTo
      Added value: +{
      +  "description": "Credit the flights to a partner program instead of Lufthansa's own: united = United MileagePlus (creditStatus one of: General member, Premier Silver, Premier Gold, Premier Platinum, Premier 1K); aeroplan = Aeroplan (creditStatus one of: Aeroplan Member, 25K, 35K, 50K, 75K, Super Elite). Earns by each flight's distance and the booking class at the program's published partner rates; leave creditTo out for the airline's own program. The programs follow the airline in op (LH: united, aeroplan; LX: united, aeroplan; OS: united, aeroplan; SN: united, aeroplan). Give the booking class letter as creditClass. Give the flights as creditFlights (one entry per flight with its great-circle miles). No price is needed with creditTo.",
      +  "enum": [
      +    "united",
      +    "aeroplan"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / price / description
      Previous value: -"Fare in euros in EUR. In euros (EUR), for the whole ticket: the base fare plus the surcharges the airline adds, without government taxes and airport charges. Miles & More converts a fare in another currency to euros itself."New value: +"Fare in euros in EUR. In euros (EUR), for the whole ticket: the base fare plus the surcharges the airline adds, without government taxes and airport charges. Miles & More converts a fare in another currency to euros itself. Required unless creditTo is given."
    • removedInput schema / required
      Removed value: -[
      -  "price"
      -]
  3. Changed3 schema fields changed
    • changedInput schema / properties / segs / description
      Previous value: -"The flights, one way and in order, one entry per flight (1 to 8): fromCountry and toCountry, the ISO 3166 two-letter country codes of its two airports; optional kind, C (continental) or I (intercontinental), which overrides the country table; optional from and to, the IATA codes of its two airports, which label the breakdown; some airlines also use them (Vladivostok, VVO, on JAL and ANA; the Madrid-Barcelona Air Shuttle, MAD-BCN, on Iberia)."New value: +"The flights, one way and in order, one entry per flight (1 to 8): fromCountry and toCountry, the ISO 3166 two-letter country codes of its two airports; optional kind, C (continental) or I (intercontinental), which overrides the country table; optional from and to, the IATA codes of its two airports, which label the breakdown; some airlines also use them (Vladivostok, VVO, on JAL and ANA; the Madrid-Barcelona Air Shuttle, MAD-BCN, on Iberia; the long-haul tables named by city on SAS)."
    • changedInput schema / properties / segs / items / properties / from / description
      Previous value: -"The departure airport's IATA code, e.g. SYD. Labels the breakdown; JAL and ANA use it to spot Vladivostok (VVO), Qantas to pick its route tables, and Iberia to spot the Madrid-Barcelona Air Shuttle (MAD, BCN)."New value: +"The departure airport's IATA code, e.g. SYD. Labels the breakdown; JAL and ANA use it to spot Vladivostok (VVO), Qantas to pick its route tables, Iberia to spot the Madrid-Barcelona Air Shuttle (MAD, BCN), and SAS to pick its long-haul tables (named by city)."
    • changedInput schema / properties / segs / items / properties / to / description
      Previous value: -"The arrival airport's IATA code, e.g. SYD. Labels the breakdown; JAL and ANA use it to spot Vladivostok (VVO), Qantas to pick its route tables, and Iberia to spot the Madrid-Barcelona Air Shuttle (MAD, BCN)."New value: +"The arrival airport's IATA code, e.g. SYD. Labels the breakdown; JAL and ANA use it to spot Vladivostok (VVO), Qantas to pick its route tables, Iberia to spot the Madrid-Barcelona Air Shuttle (MAD, BCN), and SAS to pick its long-haul tables (named by city)."
  4. Changed3 schema fields changed
    • changedInput schema / properties / segs / description
      Previous value: -"The flights, one way and in order, one entry per flight (1 to 8): fromCountry and toCountry, the ISO 3166 two-letter country codes of its two airports; optional kind, C (continental) or I (intercontinental), which overrides the country table; optional from and to, the IATA codes of its two airports, which label the breakdown; some airlines also use them (Vladivostok, VVO, on JAL and ANA)."New value: +"The flights, one way and in order, one entry per flight (1 to 8): fromCountry and toCountry, the ISO 3166 two-letter country codes of its two airports; optional kind, C (continental) or I (intercontinental), which overrides the country table; optional from and to, the IATA codes of its two airports, which label the breakdown; some airlines also use them (Vladivostok, VVO, on JAL and ANA; the Madrid-Barcelona Air Shuttle, MAD-BCN, on Iberia)."
    • changedInput schema / properties / segs / items / properties / from / description
      Previous value: -"The departure airport's IATA code, e.g. SYD. Labels the breakdown; JAL and ANA use it to spot Vladivostok (VVO), and Qantas to pick its route tables."New value: +"The departure airport's IATA code, e.g. SYD. Labels the breakdown; JAL and ANA use it to spot Vladivostok (VVO), Qantas to pick its route tables, and Iberia to spot the Madrid-Barcelona Air Shuttle (MAD, BCN)."
    • changedInput schema / properties / segs / items / properties / to / description
      Previous value: -"The arrival airport's IATA code, e.g. SYD. Labels the breakdown; JAL and ANA use it to spot Vladivostok (VVO), and Qantas to pick its route tables."New value: +"The arrival airport's IATA code, e.g. SYD. Labels the breakdown; JAL and ANA use it to spot Vladivostok (VVO), Qantas to pick its route tables, and Iberia to spot the Madrid-Barcelona Air Shuttle (MAD, BCN)."
  5. Changed3 schema fields changed
    • changedInput schema / properties / segs / description
      Previous value: -"The flights, one way and in order, one entry per flight (1 to 8): fromCountry and toCountry, the ISO 3166 two-letter country codes of its two airports; optional kind, C (continental) or I (intercontinental), which overrides the country table; optional from and to airport codes, used only to label the breakdown."New value: +"The flights, one way and in order, one entry per flight (1 to 8): fromCountry and toCountry, the ISO 3166 two-letter country codes of its two airports; optional kind, C (continental) or I (intercontinental), which overrides the country table; optional from and to, the IATA codes of its two airports, which label the breakdown; some airlines also use them (Vladivostok, VVO, on JAL and ANA)."
    • changedInput schema / properties / segs / items / properties / from / description
      Previous value: -"The departure airport code (labels the breakdown only)."New value: +"The departure airport's IATA code, e.g. SYD. Labels the breakdown; JAL and ANA use it to spot Vladivostok (VVO), and Qantas to pick its route tables."
    • changedInput schema / properties / segs / items / properties / to / description
      Previous value: -"The arrival airport code (labels the breakdown only)."New value: +"The arrival airport's IATA code, e.g. SYD. Labels the breakdown; JAL and ANA use it to spot Vladivostok (VVO), and Qantas to pick its route tables."
  6. Added

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only annotations, the description discloses the calculation method: award miles are fare EUR x4 or x6 by status with a 125-mile minimum, and Points per flight vary by cabin and continental/intercontinental classification. It also notes the external source and that the tool is unofficial, which is valuable behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and calculation rules, and every sentence is relevant to a complex calculator. It is dense and repeats some schema content, but for a 15-parameter tool it remains appropriately sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description gives enough detail to call the tool correctly for the main Miles & More earning path, and the rich schema plus output schema fill in the rest. It does not mention the creditTo partner-program mode, but that alternate path is fully documented in the input schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 15 parameters in detail. The description reinforces a few input rules, such as segs versus cont/icf and price in EUR, but mostly repeats information already present in the schema and adds little for optional fields like hp, qp, pts, or creditTo.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb, 'Estimate', and names the exact resource: Miles & More award miles, Points, Qualifying Points and HON Circle Points for a Lufthansa, SWISS, Austrian or Brussels Airlines ticket. This is clearly distinguishable from sibling airline calculators by airline group and loyalty program.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the eligible airline ticket context, explains how to provide flights either via segs or via cont/icf counts, and warns to give the price in EUR rather than USD. It does not explicitly name when to use a different sibling calculator, but the airline-specific framing supplies clear usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources