Say it. Stack it. Portage it.

Nothing gives you options.
Portage does.

Say the trip however it comes out — loose dates, no airport named, “I’d pay $80 to skip the redeye.” Portage prices every airport that can reach your door, everything included, wherever you are — and keeps a fraction of what booking sites take.

ChatGPTClaudeGemini CopilotAny AI assistant
Connect your AI

No forms. No storefront. Just a conversation.

YXULondon$1,042
YHMHamilton$1,188
YYZToronto Pearson$1,286
YTZBilly Bishop$1,254
DTWDetroit$1,089
BUFBuffalo$938

Priced from your doorstep in London, Ontario

EXAMPLE — illustrative numbers, not live quotes. The connector prices for real.

BEST TRIP

BUF MCO

Buffalo to Orlando

Dec 8 – Dec 15 1 traveller 1 checked bag

$938 CAD

You save $347 vs. Pearson

  • Flight$620
  • Drive (2h 10m)$74
  • Parking (7 days)$128
  • Tolls$15
  • Checked bag$82
  • FX & card fees$21

TOTAL$938 CAD

  • Pearson (YYZ) total$1,286 CAD
  • Hamilton (YHM) total$1,188 CAD
  • Detroit (DTW) total$1,089 CAD

YOU SAVE

$347 CAD

vs. Pearson

The whole number, or none.

We show everything that affects the total.

We tell you when we lost.

If we can't beat Pearson, you'll know.

Nothing is for sale but the answer.

Zero ads. Zero kickbacks. Zero bias.

Sacrifice is chosen, never imposed.

We respect your time, money and sanity.

From anywhere. Your ring is yours.

London, Los Angeles, Budapest — wherever you are.

How Portage works

One breath in. One decision at a time out.

  1. 1You say the trip

    Where, when, budget, and what you will not do.

  2. 2We scan every nearby airport

    Flights, drives, parking, tolls and more.

  3. 3We add the whole number

    All costs. All fees. All real.

  4. 4We compare them, itemised

    Side by side, your perks applied — a waived bag can flip the winner.

  5. 5You choose, one stage at a time

    Flight, then wheels, then a bed — and a watch on it after.

Price watching

$938

We watch prices and alert you when it's the right time to book.

Learn more →

EXAMPLE — the chart is illustrative. No prices have been watched.

We don't sell trips.
We carry your trip
across the right
place to start.

That's Portage.

Be the first to know

Product updates, new features, and when we expand.

One address, one purpose: to be told when accounts open.

One saved trip, four layers

A trip is not a search. It is a stack.

Save it once. Each layer knows what the layer above it decided — because which airport you fly into changes the car, and the car changes which hotel is actually cheap. Nothing else in travel joins those up, which is why you do it by hand on a Sunday.

  1. 01

    Getting there

    Live — this is what runs today

    Six airports inside your drive, priced from your driveway. The fare, the drive, the parking, the border, the exchange rate — one total.

    it also proposes Fly out Thursday insteadOpen jaw — home from the other cityDrive one leg
  2. 02

    Getting around

    Not built — the arithmetic is, the supply is not

    Cars, ferries, transit, the ride from the airport. The airport concession recovery fee on a rental runs past 30% — the same defect as the fare: the headline price is not the price.

    it would also propose Off-airport counter, shuttle includedSkip the car — this trip does not need oneOne car, two couples
  3. 03

    Staying

    Not built — v2, and deliberately so

    Resort fees, city taxes, the parking the hotel charges you to leave the car you already paid for. A solved problem with a hundred adequate products — which is exactly why it is not first.

    it would also propose Two nights near the airport, three in townThe one with free parkingStay Sunday, fly Monday
  4. 04

    Doing

    Not built — the layer that pays for the others

    Tickets, passes, the thing you came for. It is last because it is the only layer where being wrong costs an afternoon rather than the trip.

    it would also propose Free on the first SundayBook before you land — it sells outThe pass beats four tickets

Saved, the stack keeps working while you do not. Change one layer and the ones below it re-price themselves — a cheaper airport two hours away is not cheaper if it adds a car and a night. That is the whole reason the layers are joined instead of listed.

Layer one is live. The other three are drawn as they will work, not as they work today — flights ship alone first. A product doing four things badly loses to four products each doing one well, and the pieces above have no advantage until the first one has earned it.

The primary interface

Portage lives inside the assistant you already use.

It is an MCP server — an open protocol, not somebody's plugin store. One server answers ChatGPT, Claude, and anything else that speaks it. You add it once and then you talk about your trip wherever you already have a tab open, and the numbers come from here rather than from the model. A model handed a vacuum invents a fare, and a fabricated fare is checkable in ten seconds.

STEP 1

Paste one address, once.

In ChatGPT: Settings → Connectors → Add custom connector.
In Claude: Settings → Connectors → Add custom connector.
It sends you to a consent screen and back. Nothing to download, nothing to configure.

STEP 2

It asks you four things, once.

Where you leave from, what your car costs per kilometre, what an hour of your time is worth, and which airports you would actually drive to. In the conversation, one at a time, and never twice.

STEP 3

Then you just say the trip.

No forms after that, ever. Every fare, every drive, every total comes back from the server, itemised, with the date it was priced — and it remembers what you told it, so the fourth trip takes less saying than the first.

https://flyportage.com/mcp

The protocol works and OAuth 2.1 with PKCE is enforced — with no credentials configured the server returns 503 rather than running open. Fares are priced live on request and cached on a shared surface, each one stamped with when it was priced — and when nothing can be priced it says so rather than inventing. Public accounts do not exist yet. Today the server admits exactly one.

CHATGPT
CLAUDE
THIS SITE
THE APPnot built

One server, several faces. The same twenty tools answer ChatGPT, the Claude connector, this site and the app after it. It is also why the arithmetic lives in exactly one place and this page is forbidden from computing a single number of its own — the build fails if anyone tries.

It does not replace the apps. It replaces the eight-tab afternoon. The airline's app still holds your boarding pass. What collapses is the deciding, and the deciding is where the hours go.

Log in to get to your trips The cards above are an example of the shape. Your real trips, your live map counts, and your saved answers live behind your login — nothing here is ever estimated on your behalf.

Build your option

One decision at a time.

Say it to your assistant, or tune it here — same engine either way. Flights first, then wheels, then a bed.

Where do you want to start your trip?

Your saved starting places

sign in to load them

Where are you going?

How do you want to get there?

Your airports, against each other.

The big number is everything the server can price — fare, drive, parking where a rate exists — and the little lines are how it got there. A ? is a refusal, not a zero. Pick one.

Wheels when you land?

Rental pricing is not built. The stage is here so the decision is — your choice is kept with the trip, and your assistant can price cars by hand with numbers that are its own.

Where do you want to sleep?

Hotel pricing is not built. Name the area and it rides with the trip — near Broadway, downtown, by the airport — so the next conversation starts from it.

Your option.

Or type it here

The same engine the connector calls.

This page does no arithmetic. Not one line — the test harness reads this file and fails the build if it finds any. Every total, every delta, every hour arrived already computed from the server, because the connector and the site must never quote two different numbers for the same trip.

Two numbers no form has ever asked you for.

What your car costs per kilometre. Not the government rate — yours. It is what turns 330 kilometres into a figure that belongs on the same line as the fare instead of being ignored.

What an hour of your time is worth. Not your wage. What you would pay to not spend an hour driving. Say “I'd pay eighty bucks not to take a redeye” and that is a rate — and a rate is arithmetic, where a checkbox is nothing.

Nobody fills those into a form. They say them in passing. Conversation is the only interface that can take them.

Over several trips these accumulate into constraints you never restate — NEXUS, passport expiry, the school calendar, that you will not fly redeyes. Nobody has taken four trips through Portage yet. That compounding is the design, not a result.

There is no “flying from” box. Naming the airport is the mistake. And there is no single date — a date window is the second half of the answer.

These filter absolutely. “No layovers” means no layovers, and a cheaper one-stop is not offered anyway. A preference with a price on it re-ranks instead.

Your trips

Every search you have made, kept and named.

A trip does not get decided in one sitting. You say it in the assistant, it lands here, and then you nudge it — a week later, from your phone, without saying the whole thing again. Name two versions of the same trip and put them side by side, which is the thing no booking site lets you do at all.

Hawaii

watching

“Two weeks in February, we're flexible, no redeyes, and I'd rather not connect twice.”

From
6 airports
Window
Feb 1 – Feb 28
Nights
13 – 15
Asked
in ChatGPT

Hawaii 2

a variant of Hawaii

“Same trip, but what if we take the redeye and go a week earlier?”

From
6 airports
Window
Jan 24 – Feb 21
Nights
13 – 15
Changed
2 rules

Budapest, the family one

4 travellers · 2 paying groups

“Budapest in a week, evenings, one stop, under fourteen hours, about $1,250.”

From
6 airports
Window
a rough week
Nights
9
Asked
in Claude

Hawaii vs Hawaii 2

SPECIMEN — the shape of the comparison. No fares have been priced.
HawaiiHawaii 2difference
Landed totalneeds a fare source
Airport
Redeyesexcludedallowedrule changed
Departure windowFeb 1 – 28Jan 24 – Feb 21a week earlier
Hours door to doorshown apart from the money, always
What you holdappliedappliedsame on both — asked once

Only the rules you changed are marked. Everything else is held identical on purpose: two trips priced on different assumptions are not a comparison, they are two answers.

Adjust anything

The parts that make the next answer better.

Filters and rules

Hard rules filter the list. A price on a preference re-ranks it instead: say what avoiding a redeye is worth and it stops being a wish and becomes arithmetic.

Your airports

From your door, not the city centre. These figures do real work in the answer.

These are remembered, not measured. Every one of them cross-checks low against a map, which bends every answer toward the far airport. Replace them with your own before you believe a total.

What you hold — the interview

Memberships, status, cards. Most people are sitting on discounts they have forgotten. Twenty-six categories, and it knows which of them stack and which compete for the same slot — only a few turn into arithmetic today, and the rest are read back as things to check rather than dollars we pretend to know.

Loading…

Build my travel day

Leave-by time, checklist, warnings

At the end, see what you saved

Split into the routing saving and the levers, without double counting, with hours beside dollars. It is a routing saving, never a discount — and it prints a loss exactly as plainly as a win.

Where this is · 15 August 2026

What works, what is dark, and what is not built.

Most products publish the first column. This is the whole ledger, and it is here because a number you cannot check is worth nothing.

OPEN

  • The landed-cost arithmetic — every line in the audit above, computed offline with no network and no database.
  • 228 tests, passing.
  • A missing input nulls the total rather than being quietly averaged — and cannot compute and computed but known to be low are two separate lists.
  • Currency mixing is refused rather than fudged. Hours never fold into dollars.
  • The protocol layer, eighteen tools, OAuth 2.1 with PKCE. The server returns 503 rather than running open if unconfigured.
  • Party arithmetic: dollars divide by paying group, hours refuse to divide.
  • Perk stacking across twenty-six categories with slot arbitration — whether two benefits stack or compete, with percentages compounding on what is left.
  • The booking assembler, ordered by what can vanish first, stating on every connection that separate tickets protect each other not at all.
  • The open jaw — in to one city, home from another — priced as one answer, never pairing across two airports, because the car is parked at exactly one of them.
  • This page computes nothing. The build greps it for the name of every arithmetic helper.

BUILT · NOT WIRED

  • Live fares. One run, 51 options, six airports, by hand. The provider is not connected to the server's request path, so every trip on a deployed site comes back “no priced surface, and nothing will be invented.”
  • The cached price surface — the precondition, not an optimisation. No cache, no refresh schedule, no cost budget yet.
  • Exchange rates have no source, so any foreign-currency fare returns nothing.
  • The watch, with no scheduler and nowhere to send a notification.
  • Stored OAuth with revocation — written and tested, unreachable; the deployment runs stateless.
  • Database persistence — written, RLS enforced by a lint, never run against a real project.
  • Public accounts. Every session today is the same single owner.

NOT BUILT

  • The app, and therefore push, and therefore alerts that arrive.
  • NOT RUN The backtest result.
  • A verified drive time or parking rate anywhere in this project.
  • NOT SET A price.
  • Hotels, cars and parking inventory — deliberately deferred. Those are solved problems with a hundred adequate products and billions defending them. “Which airport should I fly from” has nobody.
  • Checkout. Not deferred — forbidden. Portage is never the merchant of record.

Every one of those is something this page could have implied and didn't. A page that will not tell you what is missing is not going to tell you when a fare is stale, either.