Upgrading and downgrading
Switching plans is fully self-service today (no Stripe payment processing yet — that lands next sprint). Pricing and entitlements take effect according to the rules below.
# Upgrade
Upgrades take effect immediately. The moment you confirm the upgrade on the pricing page:
account.plan_idupdates to the new plan.account.statusflips toactive(or stays ontrialingif you were mid-trial; switching to a paid tier ends the trial early).- Feature gates re-evaluate against the new plan. Semantic AI Search, AI Coach apply, click-based rerank, etc. become available without any cache-refresh or re-login.
- Limit caps grow to the new tier — usage counters carry forward.
Pro-ration: today the back-bill is tagged on account.current_period_end
for reconciliation when Stripe lands. The system records the upgrade
date so the eventual Stripe invoice covers only the days at the new
tier.
# Downgrade
Downgrades take effect at the end of the current billing cycle —
you keep your existing features until then. The downgrade is queued
on the account row; the daily housekeeping job applies it at the
cycle boundary.
What carries over to the lower plan:
- All product data, indexes, and synonyms.
- Ranking rules and curated results.
- AI Coach history (recommendations stay; the apply action requires the new plan to allow it).
- Analytics history is capped at the new plan's retention — older records become inaccessible but aren't deleted until the next archival sweep (90 days).
What pauses:
- Feature gates re-evaluate. Semantic AI Search, multi-language morphology, A/B testing, etc. lock based on the new tier.
- Limit caps reduce. Existing over-cap usage isn't deleted, but new additions are blocked per Limits.
# Cancellation
Same mechanism as downgrade-to-Free with the additional 30-day data
window: after the billing cycle ends, the account flips to cancelled,
search continues to work in read-only mode for 30 days, and after
that the data is purged per the retention policy in our
Privacy statement.
# Trial transitions
Three trial-related transitions you'll see:
| Transition | What happens |
|---|---|
| Trial → paid | Trial ends immediately, billing starts, all features stay unlocked. |
| Trial → Free (day 14) | Auto-downgrade by EndExpiredTrials, features lock to Free. |
| Trial → cancel mid-trial | Trial ends, account flips to Free, no charge. |
# Stripe billing (next sprint placeholder)
The current implementation provisions accounts in trialing /
active / cancelled states with no payment provider. When Stripe
lands:
- Tenants will add a payment method during the trial (we'll prompt at day 11).
post_trial_actionon the account row dictates whether the trial ends → Free or → paid based on whether a card is on file.stripe_price_id_eurandstripe_price_id_ronon theplansrow are already wired in the schema, so the only remaining work is the webhook + checkout session controller.
For now: use the dashboard to change plans, and we'll true up any billable usage when Stripe is wired.
# Self-service vs sales-led
- Free, Starter, Growth, Pro, Scale — fully self-serve. Sign up, pick a plan, go.
- Enterprise — custom contracts, white-label, dedicated
infrastructure, custom AI tuning. Email
sales@skryx.ioto start the conversation.
# See also
- Pricing model — what each plan includes
- Trial — how the 14-day trial works
- Limits — what happens when you exceed a cap