Skip to main content
Glama

cwsi.net Fare Classes & Mileage Calculators

Air Canada Aeroplan Points and SQC Calculator

calculate_air_canada_points
Read-onlyIdempotent

Estimate the Aeroplan points and Status Qualifying Credits (SQC) an Air Canada-ticketed (014) fare earns. Points = fare in CAD x status multiplier (Member 1 to Super Elite 6); SQC = fare x 2 (Standard), x 4 (Flex, Comfort, Latitude, Premium Economy, Business), 0 (Basic). Uses cwsi.net's calculator and the airline's published rules. Give the price in CAD, not US dollars. Unofficial.

Input Schema

NameRequiredDescriptionDefault
sqcNoSQC you have so far this year (optional). Used only for the progress toward the next status.
fareNoFare brand. BA = Basic (no SQC); ST = Standard (2 SQC per C$1); FL = Flex (4 SQC per C$1); CO = Comfort (4 SQC per C$1); LA = Latitude (4 SQC per C$1); PE = Premium Economy (4 SQC per C$1); BU = Business (4 SQC per C$1). Basic earns points but no SQC. Standard earns 2 SQC per C$1; Flex, Comfort, Latitude, Premium Economy and Business earn 4.ST
priceNoFare paid for the whole ticket (CAD) in CAD. Base fare plus carrier-imposed surcharges, in Canadian dollars, without government taxes and airport fees. If you paid in another currency, Air Canada converts it to CAD at an industry-standard rate. Required unless creditTo is given.
statusNoYour Aeroplan status when you fly. M = Member (1x points); 25K = 25K (2x points); 35K = 35K (3x points); 50K = 50K (4x points); 75K = 75K (5x points); SE = Super Elite (6x points). Your status multiplies the points (not the SQC).M
creditToNoCredit the flights to a partner program instead of Air Canada's own: united = United MileagePlus (creditStatus one of: General member, Premier Silver, Premier Gold, Premier Platinum, Premier 1K). 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. 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. 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 Air Canada's own: united = United MileagePlus (creditStatus one of: General member, Premier Silver, Premier Gold, Premier Platinum, Premier 1K). 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. 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"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / price / description
      Previous value: -"Fare paid for the whole ticket (CAD) in CAD. Base fare plus carrier-imposed surcharges, in Canadian dollars, without government taxes and airport fees. If you paid in another currency, Air Canada converts it to CAD at an industry-standard rate."New value: +"Fare paid for the whole ticket (CAD) in CAD. Base fare plus carrier-imposed surcharges, in Canadian dollars, without government taxes and airport fees. If you paid in another currency, Air Canada converts it to CAD at an industry-standard rate. Required unless creditTo is given."
    • removedInput schema / required
      Removed value: -[
      -  "price"
      -]
  2. Added

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare a safe, idempotent, closed-world read, so the bar is lower; the description still adds real substance by disclosing that the result is an unofficial estimate derived from cwsi.net's calculator plus published rules, and by laying out the exact points and SQC formulas. That is meaningful context beyond the annotation block.

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?

Front-loads the purpose and formulas, then handles both modes compactly in a few sentences with no repetition. The trailing one-word 'Unofficial.' is slightly abrupt but carries a real caveat.

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?

For an 8-parameter tool with two distinct modes and an output schema (which relieves it of explaining return values), the description covers the modes, the required inputs, and the calculation basis adequately. Minor gaps remain around what exactly the estimate returns for the creditTo path, but nothing blocking.

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 fare brands, status multipliers, and the creditTo pathway in detail, making 3 the baseline. The description reinforces the CAD-only requirement and the price-vs-creditTo exclusivity but adds little the schema does not already state.

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?

States a specific verb and resource ('Estimate the Aeroplan points and SQC'), names the exact scope (Air Canada-ticketed 014 fare), and covers both the own-program and partner-credit modes. An agent can distinguish it from the ~50 sibling airline calculators by the carrier named in the title and first sentence.

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?

Gives usable routing conditions: use it for Air Canada-ticketed fares, supply the price in CAD, and 'leave creditTo out for the airline's own program' versus giving creditClass/creditFlights to credit to a partner. It stops short of naming the sibling to use instead (e.g. calculate_united_miles) when crediting elsewhere, so it is clear context without explicit alternatives.

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