
New signups with a matching email domain can now request to join your existing Schematic organization instead of creating a fresh account. They see the org, who's already in it, and a request button; admins approve or decline in one click from the members page.
This is opt-in per organization, and it ends the most common onboarding dead end — a teammate signing up solo, landing in an empty account, and wondering where the team's plans went.

The Plans tab now charts how many companies are on each plan over time. See free-to-paid conversion, watch a new plan or version pick up subscribers, and spot the effect of a migration or price change as it happens — without exporting data to answer "how is this plan actually doing?"

You can now set a rate limit cap on any individual API key from the dashboard. Caps are lower-only — they carve a budget out of your environment's overall limit — so a runaway script or a chatty integration can't starve your production traffic.
Every API response now includes standard X-RateLimit-Limit, X-RateLimit-Remaining, and Retry-After headers, so clients can pace themselves and back off gracefully instead of discovering limits through 429s.

Entitlements can now warn customers before they hit a limit. Set a warning threshold on any plan entitlement — say, 80% of a credit balance or usage limit — and when a company crosses it, components surface the warning state in usage meters and a webhook fires so you can trigger emails, in-app nudges, or a sales alert.
Limits stop being a surprise customers discover by getting blocked, and become an upsell conversation you start on time.

Checkout, custom plans, and the company profile now collect tax IDs. Buyers can enter a VAT number or other tax identifier during checkout; operators can add one on the company profile or during custom plan finalization. IDs are validated through Stripe's tax ID validation and written to the Stripe customer, so they render on invoices automatically — as Partita IVA, EU VAT, EIN, or any other Stripe-supported format.
No more collecting VAT numbers over email and pasting them into Stripe after the invoice already went out.

Usage now breaks down to the individual user. For any feature or credit type, see which users inside a company are consuming it — events and credits consumed, aggregated per user for the current period — in the company profile and via the API.
This answers "who is actually using this?" without exporting raw events: useful for seat-based expansion conversations, spotting power users before a renewal, and debugging a customer's usage dispute down to the person.

Licenses are a new feature type for anything customers buy in units — seats, workstations, devices, or family members on a plan. Alongside boolean and metered features, a license feature carries a count per company, and that count can scale other entitlements: grant 500 credits per seat and a customer with 12 seats automatically gets 6,000.
License counts are set per plan, managed per company via the dashboard or API, and work with plan versioning and custom plans like any other entitlement. This replaces the pattern of modeling seats as a metered feature and reconciling counts by hand.

Streaming clients and the self-hosted Replicator hold a local copy of entitlement state, so flag checks run in memory with no call to Schematic in the request path. If that connection drops during a deploy or a network interruption, the client resumes where it left off and replays only the updates it missed, instead of tearing down and re-syncing the entire dataset.
Local state stays current, enforcement keeps running without a gap, and reconnects stop triggering a cold re-sync. This matters most for high-throughput deployments that run on local state and cannot absorb a resync stall on every reconnect.