Skip to content

Notifications

National Compute emails your organization when its account needs a person. The console's Notifications page (Settings → Notifications) sets who receives each category of email and what sends it. Billing is the only category, and email the only channel: there is no in-app notification, no Slack or webhook delivery, and no digest.

Recipients

Each category has one recipient list. A recipient receives every notification in the category or none; there is no subscription per notification.

By default, Billing email goes to every member of your organization who has an email address, and to the organization's billing contact email when one is set. Any member can change the list: tick or untick any member, themselves or others, and the billing contact. A member who joins later receives Billing email until someone unticks them. A member with no email address is listed and receives nothing. An address that is both a member's and the billing contact receives one copy.

Members and the billing contact email are the only recipients. There are no extra addresses and no distribution lists.

Billing contact email

The billing contact email is the email of the organization's billing profile, the one invoices print. Any member can set, change or clear it on the Notifications page, with or without a name and address in the profile. An email alone is not a billing profile: issuing an invoice still needs a name and address. A change prints on invoices issued afterwards and never rewrites an issued one. A cleared billing contact stays on the recipient list and receives nothing.

The address is one plain address, at most 254 characters. Before the @: letters, digits and . _ % + -, with no dot at the start, at the end or doubled. After it: at least two labels joined by dots, each of letters, digits and hyphens with no hyphen at either end, the last one two or more letters. Anything else, a list, a display name or quoting included, is refused 422 bad-request with field email. The invoice billing profile's email follows the same rule. Notification email skips a billing contact email that fails it, such as one saved before the rule existed. A member's own address needs only to be one plain address of at most 254 characters with no control characters; notification email skips a member address that fails that.

Billing notifications

Notification Sends Default
Low balance when the balance is projected to run out within 3 days at the last 24 hours' spend, or falls below an amount you set on, with two exceptions
Auto-reload failed when an auto reload card charge fails on
Promo credits expiring before Promo credits expire on

Any member can turn each notification on or off and change the low balance threshold. A saved setting wins over the default either way. Reset removes it, and the default follows your organization's facts again: a reset low balance email turns off by itself once auto reload is turned on. The page states why a default is off ("Off by default because auto-reload is on").

Low balance

The low balance email warns before the credits that pay for usage run out. The threshold is one of two modes:

Mode Below the threshold when Limits
Runway (the default) the projected time left is under N days N in whole days, 1 to 30; default 3
Amount the balance is under an amount $1 to $1,000,000

A balance at or below zero is below the threshold in either mode.

It is off by default for an organization with auto reload on, whose card tops the balance up, and for one that has never paid for credits, whose credits all came from grants. Either can turn it on.

The projection

  • Balance: the credits available to spend organization wide. For an organization whose money is one pool it is the total balance. Otherwise it is the available to spend for anything else (credits with no restriction, plus organization wide advances), less the unpaid that hits it. Restricted and locked credits are not part of it.
  • Spend: your organization's usage charges over the last 24 hours: capacity, storage, Marshall model usage and Public Research, the ledger's category usage.
  • Runway: the balance drained at that 24-hour spend rate. A Promo balance counts only until it expires. Promo credits are spent first, so only the part left unspent at the expiry drops out.

The spend counts every usage charge, including what Restricted and locked credits pay. For an organization holding those, the projection runs out sooner than its unrestricted credits really do. A Restricted balance running low on one cluster sends no email.

With no usage charges in the last 24 hours there is no projection. In runway mode only a balance at or below zero is then below the threshold. An organization whose usage is not billed to its credits is never checked and never receives the email.

The balance is checked every 15 minutes (currently), from ledger figures 5 to 10 minutes behind real usage. The Billing page shows the same projection beside the balance, and the billing summary carries it as runway.

Cadence

An episode starts at the first check, with the email on, that finds the balance below the threshold, and ends at the first check that finds it above.

  • At most one email goes out a day, whichever episode sent the last one. An organization that crosses its threshold back and forth within a day receives one email, not one per crossing.
  • An episode's first email goes at the first check the daily limit allows. Later ones go at most once a day, and only while your organization had usage charges in the last 7 days: an idle organization below the threshold stops receiving it after a week.
  • The first time in an episode the balance reaches zero, an out of credits email goes out at once, even within a day of a low balance email, unless an out of credits email already went in the last 24 hours. At most one out of credits email goes out a day.

While the email is off and the balance stays below the threshold, the episode stays open: turning the email on again continues it instead of starting a new one. Since both daily limits count the last email of any episode, turning the email off and on or changing the threshold adds no email beyond them.

Auto-reload failed

At most one email goes out per organization per 24 hours. It names the newest failed auto reload charge, its amount and why it failed, and counts every failed attempt since the previous email, those inside the 24 hours that sent no email of their own included. A failure is never emailed twice, and one that happens while the email is off is never emailed later. A failed charge pauses auto reload for 24 hours; saving the auto reload setting on the Billing page again, after fixing the card, ends the pause. The billing summary's auto_reload carries the same attempt as last and the pause as cooldown_until.

Promo credits expiring

The email goes out when the Billing page's notice starts: 3 days before the expiry by default (Promo credits). The lead time is the platform's setting; the page shows it and no member can change it.

At most one email goes out per organization per UTC day. It covers every Promo balance inside the notice window that no earlier email named, listed by expiry day with the amount for each day and the total. A balance that enters the window after the day's email is in the next day's. When the new balances total under $1.00, no email goes out and they are never named later.

The email

Every notification is a plain text email from National Compute <no-reply@nationalcompute.com>; a reply goes to support@nationalcompute.com. Each recipient gets their own message and sees no other recipient's address. The email links to your organization's Billing page and Notifications page. Its footer says why the address receives it (a member of the organization, or its billing contact) and that any member can change who receives Billing email on the Notifications page.

There is no unsubscribe link. To stop receiving Billing email, untick the address on the Notifications page, or ask a member to.

Recent notifications

The Notifications page lists the last 20 notifications sent to your organization, newest first: when, which notification, the subject and how many addresses received it.

Agent access

Two MCP tools carry the page for an agent signed in as a member (MCP server). Where notifications are not available to your organization, tools/list leaves them out and tools/call answers as for an unknown tool. There is no org API token route for these settings. notifications_write is the ordinary two phase gate, never the human confirmation class: a setting spends no money and destroys nothing.

Tool What it does
notifications_read no arguments; answers the page as JSON: categories[] with each category's recipients[] and rules[], billing_email, recent[] and writable
notifications_write two phase: the first call checks the arguments and answers a preview (current and proposed) with a confirm_token; the same call with the token applies the change and answers the same JSON as notifications_read

notifications_write takes an action:

action Arguments
subscribe category (billing), recipient_kind (member or billing_email), recipient_id (the member's username, or billing_email), subscribed
rule rule, and enabled with optional params, or reset: true
billing_email email; null or "" clears it

Saving the default value still saves a setting; reset is the way back to the default. The read's fields:

Field Meaning
recipients[] kind, id, email (null: no address, receives nothing), name, subscribed, and default (true while no member has changed this row). The billing_email row is always present
rules[] key (billing.low_balance, billing.reload_failed, billing.promo_expiring), label, enabled, default_enabled, default_reason (auto_reload, promo_only or null), customized, params, limits, status and last_sent_ms
params low balance: mode (runway or amount), runway_days, amount_ucredits. Promo credits expiring: lead_days, read only. Auto-reload failed: none
status low balance only, else null: state, figure_ucredits, spend_24h_ucredits, runway_hours and as_of_ms, read as the billing summary's runway (runway_hours is its hours)
recent[] at_ms, category, rule, variant (low_balance, out_of_credits, reload_failed or promo_expiring), subject, recipients (the number of addresses)
writable whether the caller can change the settings

A write refuses 422 bad-request with field naming the problem:

field Cause
action action missing, not a string, or other than subscribe, rule or billing_email
an argument's name an argument the action does not take
category an unknown category
recipient a recipient_kind other than member or billing_email, a username that is not a member of your organization, or a billing_email row whose recipient_id is not billing_email
subscribed not true or false
rule an unknown rule key
enabled not true or false (required unless reset)
reset a value other than true, or reset beside enabled or params
params not an object, an unknown key, mode missing, runway_days or amount_ucredits not a whole number inside the limits, amount_ucredits missing in amount mode, or any params on the other two rules (lead_days included)
email missing, or an address that fails the billing contact checks