Plans + billing — what each tier unlocks and how upgrades work
For: all
Tier: free+
Time: ~5 min
Why you'd do this
Every page in the dashboard either is unlocked at your tier or shows an upgrade prompt. Knowing which tier unlocks which feature helps you avoid pricing surprises ("I thought Free included this") and helps team admins justify the right tier to procurement. This chapter is the ground-truth reference for the four tiers and the billing flow.
Before you start
- An understanding that ComplianceLint billing is per ACCOUNT, not per repo or per user — the OWNER's tier covers all their repos and all invited members on those repos
- A LemonSqueezy account if you're upgrading (auto-created during first paid checkout)
Step 1
The four tiers and their headline differences:
| Feature | Free | Starter (€19) | Pro (€99) | Business (€199) | |---|---|---|---|---| | Max repos | 1 | 3 | 10 | unlimited | | Scan retention | 7 days | 30 days | 12 months | 36 months | | Profiling Wizard (applicability customization) | — | ✓ | ✓ | ✓ | | Team invites | — | ✓ | ✓ | ✓ | | Human Gates Fill | — | — | ✓ | ✓ | | Time Capsule export | — | — | ✓ | ✓ | | SARIF / GitHub Code Scanning | — | — | ✓ | ✓ | | CI/CD quality gate | — | — | ✓ | ✓ | | Regulation Updates digest | — | — | — | ✓ | | Sign-off / multi-person workflows | — | — | — | ✓ | | Past exports retention | 7d | 30d | 12mo | 36mo |
All prices are per MONTH, billed in EUR. Annual billing (10% discount on Pro / Business) available on the same checkout flow.

What you'll see: Plans page with the four-tier comparison grid. Current tier is highlighted; the upgrade button on each higher tier shows the delta ("+€80/mo" if you're on Starter looking at Pro).
Step 2
Click Upgrade on the target tier. The flow:
- Redirects to LemonSqueezy checkout (hosted by them, not us)
- Card / SEPA / PayPal supported; corporate invoicing via the Business+ overlap
- After successful payment, returns to
/dashboard/planswith a confirmation banner - Tier upgrades take effect IMMEDIATELY — newly-unlocked features (Human Gates, Time Capsule, etc.) become usable in the same session
- Webhook from LemonSqueezy updates the account's
plancolumn; if you don't see the upgrade reflected within 30 seconds, refresh the page (occasional webhook delay)
Annual switch: same upgrade button — pick "Yearly" radio on the LemonSqueezy page. Annual is single-up-front; the dashboard shows "renews <date>" instead of monthly cycle.
Step 3
Downgrade flow:
- Click Manage subscription → opens the LemonSqueezy customer portal (hosted by them)
- Pick the lower tier, confirm. The change takes effect at the END of your current billing cycle (no proration / refunds for partial months)
- At cycle end, the dashboard transitions to the new tier automatically
If the new tier's maxRepos is lower than your current owned repos, the OLDEST repos beyond the limit are LOCKED (read-only) until you re-upgrade or unlink. Locked repos preserve all data; only writes are gated. The dashboard shows a red banner naming every locked repo until the lock is resolved.
See Team collaboration for how downgrade blast radius affects invited members.
Step 4
Cancellation = downgrade to Free at end of cycle. From the LemonSqueezy customer portal click "Cancel subscription" — you keep paid-tier access until the cycle end, then revert to Free.
Free tier consequences:
maxRepos = 1→ repos beyond the first locked- Human Gates Fill, Time Capsule, SARIF, CI/CD all locked
- Past exports retention drops to 7 days (active exports stay downloadable until the 7d window expires)
- Team members on your repos lose paid-tier access on those repos (their account state unchanged, but THEY now see upgrade prompts on YOUR repos)
Resubscribing within 30 days restores all previous data; after 30 days the account moves to a deletion-pending state (legal data retention requirements). Email notice sent at T-7 days before deletion-pending.
Step 5
Invoice history is on the LemonSqueezy customer portal (linked from /dashboard/settings → Billing card). Each invoice is downloadable as PDF with VAT calculations per your country.
EU customers: VAT collected per LemonSqueezy's MOSS; reverse-charge for B2B with valid VAT id (entered on first checkout).
Refund policy: 14-day money-back on first paid month for any reason. Beyond that, refunds case-by-case for billing errors. Email billing@compliancelint.dev with your account email + the issue.
What can go wrong
- Paid via LemonSqueezy but dashboard still shows me as Free — Webhook delay. Wait 60 seconds and refresh. If still Free, open Settings → Billing — if the LemonSqueezy customer link shows your active subscription but our dashboard says Free, the webhook failed to deliver. Email
billing@compliancelint.devwith your LemonSqueezy order id; manual sync resolves within a few hours during EU business hours. - Downgraded but my repos aren't locking — I expected Free maxRepos = 1 — Downgrade takes effect at END of current billing cycle, not immediately. The dashboard shows "Plan ends
<date>— switching to Free" at the top until the cycle ends. If you want immediate downgrade, contact support — they can apply it manually but there's no proration. - Card declined mid-cycle — what happens? — LemonSqueezy retries the card 3 times over 7 days. If all retries fail, account moves to
subscription_status: past_due— paid features stay accessible during this grace period (additional 7 days). After 14 total days unpaid, account moves to Free (same locked-repo consequences as voluntary downgrade). Update card details in LemonSqueezy customer portal; auto-resumes once payment succeeds.
Related
Last updated: 2026-04-30