# Subscription

> The Subscription row of the Account page, the perpetual license, the plan and its status, renewal, license seats, the stations signed in to the account, the attention states, Manage subscription, and free mode with the runtime countdown.

The **Subscription** row reads the subscription of the account this station is signed in to,
and what it means for this station: whether it holds a license seat, and if not, how long the
runtime may run before free mode stops it. It is display only, refreshed at sign-in, at boot,
every 24 hours and every time the Account page opens; a failed refresh keeps the last snapshot
and says when it was taken.

While the station is signed out, or signed in with no snapshot yet, the row shows one line:
"Sign in to see your subscription plan, status and the stations using its license seats."
The temporary-identity banner described under [Account](account-ganter-account#the-temporary-identity-notice)
sits above this row whenever it applies.

## Perpetual license {#perpetual-license}

A perpetual license is bought once, on the site, for one station. It covers every version of its year and earlier, the year being the first number of the version (2026.12.0 is a version of 2026). The station activates it by signing in once with internet; from then on it stays licensed without any contact with the site. Its card sits above the subscription card and shows whether the station is signed in or not, because the license outlives the account session.

| Situation | The card shows |
| --- | --- |
| This station holds a perpetual license that covers the version it runs | **Perpetual license**, and "This station runs on a perpetual license that covers every version of 2026 and earlier. It keeps working offline, with no need to reach the site again." |
| This station's perpetual license does not cover the version it runs | A critical banner, **This version is not covered by the perpetual license**: "The perpetual license of this station covers every version of 2026 and earlier. This version of Ganter Lab is newer, so the station runs in Free mode. To bring the license back, renew it on the subscription page of the website, or reinstall the last version of 2026: its installer is on the same page." Its button is **Manage subscription**, and the Account entry on the rail carries a red exclamation with the same text. |
| This station holds no perpetual license | No card. |

When a station signs in, the site gives it a free perpetual license of the account that covers its version before any subscription seat. A station holds one license at most, and an account may hold perpetual licenses and a subscription together. A station keeps its perpetual license even when the license does not cover the version it runs, and then takes no subscription seat beside it.

| Event | What happens to the perpetual license |
| --- | --- |
| Sign out, on the Account row | The license goes back to the account, and the next station that signs in may take it. This station runs in free mode until it signs in again; the confirmation says so. |
| The sign-in ends without a sign-out (the site refused to renew it after a long time offline, for example) | The station keeps its perpetual license and stays licensed, while the Account row shows it signed out. A subscription license does not survive that. |
| The station stays offline or switched off, for any length of time | Nothing: a perpetual license is never freed by absence. |
| The computer is replaced or lost | Remove the station on the site's subscription page; the license is then free for the next station that signs in. The site allows two such moves per license each calendar year, and refuses a third with the address to write to. |
| The station signed out while offline | The site never heard of it and still counts the license as held by this station. Sign in again on the same station, or remove it on the site, which counts as a move. |
| A version newer than the license covers is installed | The station runs in free mode, and the banner above says so. It keeps its perpetual license, so a subscription of the account does not take it over: to use a subscription seat instead, sign out and sign in again on this station, or remove it on the site's subscription page, which counts as a move. Otherwise, renew the license on the site's subscription page, or reinstall the last covered version with the installer that page offers. After reinstalling, let the station reach the site once (opening this page does): if it reached the site while it ran the newer version, the license it holds says it is not licensed until the site answers again. [Updates](settings-updates#perpetual-license) warns before such a version is installed, and installs it only after a confirmation. |
| The license is renewed on the site | The station reads the new year the next time it reaches the site. |

Nothing on this page buys, renews or moves a perpetual license: all three happen on the site's subscription page, behind **Manage subscription**.

## Plan and status {#plan-and-status}

| Element | What it shows |
| --- | --- |
| Billing | **Billed monthly**, **Billed annually** or **Billed every three years**, or **No subscription** when the account has no plan. No plan name is shown: there is one subscription, so naming it would only invite the question of which others exist. |
| Status | Trial, Active, Payment past due, Canceled, or, with no plan, "This account has no active plan." A status the app does not know is shown as the server sent it. |
| Renewal line | "Renews on {date}." while renewal is on; "Ends on {date}. Renewal is turned off." when it is off; "Trial ends on {date}." during a trial; nothing when canceled. The date reads in the format set under Settings > Localization. The line is not drawn while the **Renewal ends soon** banner already names the date. |

There is one plan and no tiers. Monthly, annual and longer terms differ only in commitment;
what the station may do never depends on the plan.

## License seats {#license-seats}

A subscription buys a number of seats, one per station. A station occupies a seat while its
sign-in can still renew silently, that is, for 90 days after it was last seen; signing out
releases the seat at once. The server, not the app, decides which stations hold a seat and
reports the answer per station; the app reads its own line.

The gauge, **License seats**, shows the seats in use over the seats bought: one cell per
seat, used cells filled, up to twelve seats, and a proportional bar above that. The readout
reads "{used} / {total}" with the caption **seats in use**, or **over your seat limit** when
more stations occupy seats than the plan bought; the tooltip reads "{used} of {total}
licenses in use." The gauge is drawn only while the account has a plan with at least one
seat.

When seats run out, the stations beyond the quantity run in free mode: the server does not
grant them a seat, and this row says so with the **No license assigned to this station**
banner. Freeing a seat (signing another station out, or waiting for one to age out) or raising
the quantity licenses the next station at its next refresh.

Perpetual licenses are counted apart: the gauge counts subscription seats only. When the account owns perpetual licenses, a line under the headline counts them, "Perpetual licenses in use: 1 of 2.", the licenses a station holds over all of them, refunded ones left out.

## Stations signed in to this account {#stations-signed-in-to-this-account}

With a plan, the row lists every station registered to the account, most recently seen first:
a station glyph, the name it reported (its Windows machine name; **Unnamed station** when
blank), the chip **This station** on the row that is this computer, and "last seen today",
"last seen yesterday", "last seen {n} days ago", the date, or "last seen: unknown". A station
that signed in to a different account moves to that account. There is no eviction command
here: a retired station releases its seat by signing out, or ages out after 90 days.

The list also shows when the account has perpetual licenses and no plan. A station on a perpetual license carries an outlined badge, "Perpetual, 2026 and earlier", and never ages out (see [Perpetual license](#perpetual-license)).

## Subscription status from {#subscription-status-from}

Under the list, "Subscription status from {date and time}." names when the snapshot was
fetched. It stays visible when the station is offline or a refresh failed, so an old snapshot
is never mistaken for the present.

## Manage subscription {#manage-subscription}

**Manage subscription** opens the site's subscription page, where a signed-in visitor buys a
plan when none exists and reaches the billing portal (payment method, cancellation, monthly or
annual, quantity, invoices) when one does. On the station's window it opens in the default
browser; in a plain browser it opens a new tab. The button sits at the foot of the card, or
inside the attention banner when one is showing.
The two banners about a license the site has not confirmed leave it at the foot.

## License attention {#license-attention}

When the subscription needs action, the card leads with a banner. The same diagnosis marks the
Account entry on the rail with an exclamation (amber for the first three, red for the others)
whose tooltip carries the banner's text, and the entry then opens straight on this row. Nothing
else is raised for it: no snackbar and no system notification.

| Title | Severity | Text | When |
| --- | --- | --- | --- |
| Payment is past due | Caution | This station remains licensed while billing is retried. Update the payment method to avoid losing its license. | Status is past due and this station holds a seat. |
| Renewal ends soon | Caution | The subscription ends on {date} because renewal is turned off. After that, this station runs in Free mode unless the subscription is renewed. | Active, renewal turned off, end within 14 days. |
| Renewal is turned off | Caution | Renewal is turned off, but no end date is available. This station runs in Free mode when the subscription ends unless renewal is restored. | Active, renewal turned off, no end date known. |
| Subscription canceled | Critical, loud | This station is running in Free mode. Start a new subscription to restore an unlimited runtime. | Status is canceled. |
| No license assigned to this station | Critical, loud | This station is running in Free mode because the subscription has no license free for it: a license stays with the station that took it. To free one, sign out of the account on that station or remove it on the subscription page of the website. Adding a license to the subscription also covers this station. | Status is active or past due and the server did not grant this station a seat. |
| License not confirmed by the site | Critical, loud | The subscription grants this station a license, but the site has not yet confirmed it to this version of Ganter Lab, so the station runs in Free mode. The license takes effect the next time the station reaches the site: press Check again while the internet is available, or wait for the daily check. | Status is active or past due, the server granted this station a seat, and the station holds no license signed by the site that this version accepts: on the first start of a new version, before it reaches the site, or while the site does not sign. |
| License confirmation expired | Critical, loud | The subscription grants this station a license, but the last confirmation from the site expired on {date} without being renewed, so the station runs in Free mode. A station has to reach the site at least once every 90 days to keep its license. The license returns the next time the station reaches the site: press Check again while the internet is available, or wait for the daily check. | The same, when the license the site last signed for this station has passed its date: 90 days went by without the station reaching the site. |

Only one banner shows at a time, in this order: canceled first, then a missing seat, then a
license the site has not confirmed, then past due, then the renewal cases. The four loud ones
are the states where the runtime is already running down to a stop. A trial with no seat, and an
account with no plan, raise no banner; the free-mode countdown alone says the station is not
licensed.

In those two banners the button is **Check again** instead of Manage subscription, which stays at
the foot of the card: it asks the site at once, the same way opening the page does, and the banner
goes away as soon as the site answers with a license. Without internet it changes nothing; the
station also asks by itself at start and once a day.

The perpetual license's banner, **This version is not covered by the perpetual license**, is not one of these: it stands in the perpetual license card, comes before every other diagnosis, and while it shows this card carries none. A station on a perpetual license gets none of the subscription's diagnoses (canceled, past due, the renewal cases), only the two about a license the site has not confirmed, or **No license assigned to this station** when the site no longer grants it one.

## Free mode and the runtime countdown {#free-mode-and-the-runtime-countdown}

A station is **licensed** when three things hold at once: it is signed in, the subscription
is active or past due (past due keeps working), and the server granted this station a seat.
The server issues that grant to the station for 90 days at every contact: at start, once a
day, and whenever the Account page opens. A station that loses its connection therefore stays
licensed for 90 days after it last reached the server; past that date it runs in the signed-in
window until it reaches the server again, whatever the saved snapshot on this page still shows.
A licensed station's runtime never stops on its own.

A station is also licensed, signed in or not, when it holds a perpetual license the site signed that covers the version it runs. That license has no end date, so the station never needs the site again (see [Perpetual license](#perpetual-license)).

Everything else is **free mode**. Every feature stays available; what is limited is how long
the runtime runs before it stops and waits for a restart:

| State | Window |
| --- | --- |
| Signed out | 1 hour |
| Signed in without a seat (no plan, canceled, or beyond the quantity) | 2 hours |
| Licensed | No limit |
| Holding a perpetual license that covers the version it runs, signed in or not | No limit |

The window counts from the runtime's start. Signing in during a countdown widens the window
and keeps its start; signing out during one restarts it from that moment, so a station is
never stopped on the tick the state changed. Losing the license (a cancellation, a seat lost
at a refresh) starts a fresh window from that moment. Becoming licensed while stopped restarts
the runtime by itself.

### What you see {#what-you-see}

| Where | What |
| --- | --- |
| Status bar, first item | The Account entry's G in amber and the countdown, "Free · mm:ss" below one hour and "Free · hh:mm:ss" from one hour up (the two-hour window of a signed-in station starts in hours); tooltip "Free mode: the runtime stops when the timer runs out. Sign in or add a license to remove the limit. Click to open Account." Pressing it opens this page. Hidden while licensed. |
| Five minutes before the stop | A notification, **Free-mode time limit**: "The runtime will stop in about {n} minutes. Sign in or add a license to remove the limit.", raised once per window, and a system toast when the window is hidden or minimized. |
| At the stop | A notification, **Runtime stopped**: "The free-mode time limit was reached and the runtime stopped. Sign in or add a license to remove the limit, or restart the runtime at the station.", and a system toast. |
| The shell band, above the rail on every route | **Runtime stopped**, "Acquisition, Logic and recording are paused. Your configuration and recorded runs are intact.", and the **Restart runtime** button on the station's own window. A browser reads "The restart happens at the station, the computer running Ganter Lab." instead. |
| Status bar while stopped | "Free · runtime stopped", and in place of the health and alarm indicators one message that leads somewhere: "Sign in for a longer free window" or "Add a license to remove the limit" (both open the Account page), or "Restart the runtime to continue" on the station's window. |
| Every page but this one | A paused notice, "This screen is paused": "It reads the station live, and nothing is being read while the runtime is stopped. It waits here instead of showing values that are no longer true." |

### What stops and what stays {#what-stops-and-what-stays}

The stop closes the station to every mutation first, drains the work already admitted, then
aborts any run still open (sealing its file as aborted), stops the logic sweep and stops
communication, the embedded OPC UA server included. The application itself, the MCP endpoint
(inspection tools only) and this page stay up. Every write anywhere answers "Runtime stopped"
until a complete restart: Connector and Logic changes, Process operations, dashboard editing,
settings, backups, and users, roles and PINs. Signing in and out of a local user, changing the
theme, and the Ganter account's own Sign in, Sign out and refresh remain available, because
they are what fixes the situation.

**Restart runtime** is offered only on the station's own window, never to a browser, so a
free-mode window cannot be reset from across the network. It is immediate and unlimited, and
it opens a fresh window. A restart never resumes or restarts a procedure that was running.
A restart that fails leaves the station stopped, with "The runtime could not be fully
restarted. Review Events and try again.", and the button stays for another try. The limiter
writes its steps to the Events console under the **Licensing** source.

## What the row does not do {#what-the-row-does-not-do}

- It never blocks a feature. There are no tiers and nothing is locked behind the plan.
- It does not buy, cancel or resize anything. Every change to the subscription happens on the
  site, behind Manage subscription.
- It does not decide the seat grant. The server computes it and the app reads its own
  station's line; the app never infers a license from the counts.
- It does not free another station's seat. Sign that station out, or let it age out.
- It shows nothing while signed out, apart from the temporary-identity banner and the perpetual license card.
- It does not buy, renew or move a perpetual license.
