Updated Billing and plans page#412
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
📝 WalkthroughWalkthroughRewrites billing-and-plans into seat-centric billing: billing scope and guest allocation, proration and mid‑cycle rules, subscription lifecycle (upgrades/downgrades/cancellations), free-tier/grandfathering nuances, separation of AI credits, payment/invoicing flows, and Cloud vs. self‑hosted differences. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
participant User as "User\n(runner)"
participant App as "App\n(UI/API)"
participant Billing as "Billing Service\n(Proration, Invoices)"
participant Stripe as "Payment Provider\n(Stripe)"
participant DB as "Database\n(Accounts, Seats)"
rect rgba(200,200,255,0.5)
User->>App: Request plan upgrade / add seats
App->>Billing: Create change request
Billing->>DB: Retrieve acct, current seats, billing cycle
end
rect rgba(200,255,200,0.5)
Billing->>Billing: Calculate proration & immediate charge amount
Billing->>Stripe: Create charge / invoice
Stripe-->>Billing: Charge success
Billing->>DB: Update subscription, allocate seats, record invoice
Billing-->>App: Confirm change
App-->>User: Show success & new seats
end
rect rgba(255,200,200,0.5)
Stripe-->>Billing: Charge failed
Billing->>DB: Record failed payment, increment retry policy
Billing->>App: Notify user (email/UI)
Billing->>Stripe: Schedule retry / retry webhook handling
opt Unpaid after retries
Billing->>DB: Mark account delinquient / reduce access per policy
Billing-->>App: Enforce access limits (e.g., 12-seat free cap)
end
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
📝 Coding Plan
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (2)
docs/workspaces-and-users/billing-and-plans.md (2)
135-136: Clarity: awkward phrasing.Line 136 reads "Workspaces on the Free tier before v1.3.0 on the Commercial Edition" which is slightly awkward. Consider "Workspaces that were on the Free tier before v1.3.0 of the Commercial Edition."
♻️ Proposed rewording
**Grandfathered workspaces** -Workspaces on the Free tier before v1.3.0 on the Commercial Edition were grandfathered at their current seat count. If you had 20 Admins and Members when the limit was introduced, your Free workspace retains 20 seats. +Workspaces that were on the Free tier before v1.3.0 of the Commercial Edition were grandfathered at their current seat count. If you had 20 Admins and Members when the limit was introduced, your Free workspace retains 20 seats.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/workspaces-and-users/billing-and-plans.md` around lines 135 - 136, Replace the awkward phrase "Workspaces on the Free tier before v1.3.0 on the Commercial Edition" with the clearer wording "Workspaces that were on the Free tier before v1.3.0 of the Commercial Edition" (update the sentence starting with that phrase and ensure the following sentence about retaining seats still reads smoothly).
208-208: Inconsistent link formatting: mix of absolute and relative URLs.Lines 208 and 214 use absolute URLs (
https://docs.plane.so/...) while other cross-references throughout the document use relative paths (e.g.,/workspaces-and-users/upgrade-planon line 218). For consistency and portability, consider using relative paths throughout.♻️ Proposed fix for consistency
-Self-hosted license keys are tied to both a workspace and a machine. If you switch servers or workspaces, you must [delink your license key](https://docs.plane.so/workspaces-and-users/manage-licenses#delink-license-key) from the old workspace before reactivating it elsewhere. +Self-hosted license keys are tied to both a workspace and a machine. If you switch servers or workspaces, you must [delink your license key](/workspaces-and-users/manage-licenses#delink-license-key) from the old workspace before reactivating it elsewhere.-If you believe you have an exceptional case warranting a refund, contact [Plane support](https://docs.plane.so/support/get-help) with details about your situation. +If you believe you have an exceptional case warranting a refund, contact [Plane support](/support/get-help) with details about your situation.Also applies to: 214-214
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/workspaces-and-users/billing-and-plans.md` at line 208, Replace absolute documentation links with relative paths for consistency: update the "delink your license key" absolute URL (https://docs.plane.so/workspaces-and-users/manage-licenses#delink-license-key) and the other absolute link at the nearby sentence to their corresponding relative paths (e.g., /workspaces-and-users/manage-licenses#delink-license-key) so they match the existing relative cross-references like /workspaces-and-users/upgrade-plan; ensure link anchor text remains unchanged and verify both updated links render correctly in the document.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@docs/workspaces-and-users/billing-and-plans.md`:
- Around line 1-220: The CI failed because the markdown file with frontmatter
title "How billing works" and top-level heading "How billing works" is not
formatted according to the repository formatter; run the project's formatter
(oxfmt) locally to reformat that document, review the changes, stage and commit
the formatted file, then push the commit so the formatting check (oxfmt --check)
in CI will pass.
- Around line 37-40: The example bullet "5 seats remain available for future."
is an incomplete phrase—update that third bullet in the example block so it
reads either "5 seats remain available for the future." or "5 seats remain
available for future use." to fix the grammar and ensure the sentence is
complete.
---
Nitpick comments:
In `@docs/workspaces-and-users/billing-and-plans.md`:
- Around line 135-136: Replace the awkward phrase "Workspaces on the Free tier
before v1.3.0 on the Commercial Edition" with the clearer wording "Workspaces
that were on the Free tier before v1.3.0 of the Commercial Edition" (update the
sentence starting with that phrase and ensure the following sentence about
retaining seats still reads smoothly).
- Line 208: Replace absolute documentation links with relative paths for
consistency: update the "delink your license key" absolute URL
(https://docs.plane.so/workspaces-and-users/manage-licenses#delink-license-key)
and the other absolute link at the nearby sentence to their corresponding
relative paths (e.g., /workspaces-and-users/manage-licenses#delink-license-key)
so they match the existing relative cross-references like
/workspaces-and-users/upgrade-plan; ensure link anchor text remains unchanged
and verify both updated links render correctly in the document.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 5c051938-961b-49b9-bfb3-baf2e8ef9a93
📒 Files selected for processing (1)
docs/workspaces-and-users/billing-and-plans.md
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@docs/workspaces-and-users/billing-and-plans.md`:
- Line 125: The document uses two different labels for the same settings menu
("Billing and Plans" vs "Billing & Plans"); pick the correct UI label and make
all occurrences consistent (update the string at the instance that currently
reads "Billing and Plans" to "Billing & Plans" OR change the other occurrences
to "Billing and Plans"), ensuring you update the instances referenced in the
review (the occurrences on lines showing "Billing and Plans" and "Billing &
Plans") so that every instance of the menu path uses the exact same phrasing.
- Line 20: Fix the spacing in the documentation string "Granular Access
Control(GAC)" by inserting a space before the opening parenthesis so it reads
"Granular Access Control (GAC)"; locate the phrase in the
docs/workspaces-and-users/billing-and-plans.md content and update the text
accordingly where the string "Granular Access Control(GAC)" appears.
- Line 123: Update the compound adjective "lower paid plan" to "lower-paid plan"
in the header "Downgrade to a lower-paid plan" (and any other occurrences) so
the phrase is correctly hyphenated when used before a noun; search for the exact
phrase "lower paid plan" and replace with "lower-paid plan" in the text and
headings such as the header titled "Downgrade to a lower-paid plan".
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 9f421de4-91fd-4c1a-84a4-5c70dd3fd8cb
📒 Files selected for processing (1)
docs/workspaces-and-users/billing-and-plans.md
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (3)
docs/workspaces-and-users/billing-and-plans.md (3)
20-20:⚠️ Potential issue | 🟡 MinorAdd missing space before “(GAC)”.
Line 20 uses “Granular Access Control(GAC)”; it should be “Granular Access Control (GAC)”.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/workspaces-and-users/billing-and-plans.md` at line 20, Fix the spacing in the sentence that currently reads "Granular Access Control(GAC)" by inserting a space before the parenthesis so it reads "Granular Access Control (GAC)"; update the string/markdown in the billing-and-plans document where the phrase "Granular Access Control(GAC)" appears.
123-123:⚠️ Potential issue | 🟡 MinorHyphenate the compound adjective in the heading.
Line 123 should use “lower-paid plan” instead of “lower paid plan.”
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/workspaces-and-users/billing-and-plans.md` at line 123, Update the heading text "### Downgrade to a lower paid plan" to hyphenate the compound adjective: change it to "### Downgrade to a lower-paid plan" so the compound modifier is grammatically correct.
125-125:⚠️ Potential issue | 🟡 MinorUse one consistent settings label across the doc.
The page mixes “Billing and Plans” and “Billing & Plans.” Pick one canonical UI label and apply it everywhere for consistency.
🛠️ Proposed fix (if ampersand is canonical)
-1. Go to **Workspace Settings > Billing and Plans**. +1. Go to **Workspace Settings > Billing & Plans**.Also applies to: 135-135, 176-176, 180-180, 190-190
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/workspaces-and-users/billing-and-plans.md` at line 125, The document mixes two UI labels ("Billing and Plans" and "Billing & Plans"); choose one canonical label and replace all occurrences consistently (including the instances noted around the current lines: the string "Billing and Plans" at line showing "1. Go to **Workspace Settings > Billing and Plans**" and any "Billing & Plans" variants at the other mentioned locations). Update every occurrence to the chosen canonical string across the file so the UI label is uniform.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@docs/workspaces-and-users/billing-and-plans.md`:
- Line 20: The doc contains contradictory statements about Granular Access
Control (GAC): the sentence starting "Guest allocation works differently on
Enterprise Grid..." claims Enterprise Grid includes GAC, while another sentence
says GAC is “coming”; pick the current correct product state and make both
sentences consistent by replacing the incorrect phrasing so both lines state the
same truth (either "Enterprise Grid includes Granular Access Control (GAC) and
all instance-level users are billable" or "GAC is coming to Enterprise Grid;
until then preset roles apply and billable seats are..."), update the sentence
that claims inclusion and the one that says "GAC is 'coming'" to the chosen
wording, and ensure the terminology "Granular Access Control (GAC)" and the
billing implication ("all users at the instance level are billable seats") are
used consistently.
---
Duplicate comments:
In `@docs/workspaces-and-users/billing-and-plans.md`:
- Line 20: Fix the spacing in the sentence that currently reads "Granular Access
Control(GAC)" by inserting a space before the parenthesis so it reads "Granular
Access Control (GAC)"; update the string/markdown in the billing-and-plans
document where the phrase "Granular Access Control(GAC)" appears.
- Line 123: Update the heading text "### Downgrade to a lower paid plan" to
hyphenate the compound adjective: change it to "### Downgrade to a lower-paid
plan" so the compound modifier is grammatically correct.
- Line 125: The document mixes two UI labels ("Billing and Plans" and "Billing &
Plans"); choose one canonical label and replace all occurrences consistently
(including the instances noted around the current lines: the string "Billing and
Plans" at line showing "1. Go to **Workspace Settings > Billing and Plans**" and
any "Billing & Plans" variants at the other mentioned locations). Update every
occurrence to the chosen canonical string across the file so the UI label is
uniform.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 618a6fb6-5a51-43a9-b393-d1512feef240
📒 Files selected for processing (1)
docs/workspaces-and-users/billing-and-plans.md
There was a problem hiding this comment.
Actionable comments posted: 2
♻️ Duplicate comments (3)
docs/workspaces-and-users/billing-and-plans.md (3)
123-123:⚠️ Potential issue | 🟡 MinorHyphenate compound adjective in heading.
Line 123 should use “lower-paid plan.”
📝 Proposed edit
-### Downgrade to a lower paid plan +### Downgrade to a lower-paid plan🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/workspaces-and-users/billing-and-plans.md` at line 123, Update the heading text "Downgrade to a lower paid plan" to hyphenate the compound adjective as "Downgrade to a lower-paid plan" so the heading uses the correct compound-adjective form; locate the heading string in the Markdown file where the line reads "### Downgrade to a lower paid plan" and replace it with "### Downgrade to a lower-paid plan".
1-223:⚠️ Potential issue | 🔴 CriticalCI blocker: this file still fails formatter checks.
oxfmt --checkis failing for this file, which blocks merge. Please run the formatter and commit the output.🔧 Fix
-# Run locally and commit the result -oxfmt docs/workspaces-and-users/billing-and-plans.md +# Run locally and commit the result +oxfmt docs/workspaces-and-users/billing-and-plans.md🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/workspaces-and-users/billing-and-plans.md` around lines 1 - 223, The file fails the oxfmt formatter check; run the formatter and commit the fixed markdown. Specifically, run the oxfmt formatter (e.g., oxfmt docs/workspaces-and-users/billing-and-plans.md or the repo's formatting script), review the changed output for any unintended edits, stage and commit the formatted file, and push the commit to unblock CI so that oxfmt --check passes.
20-20:⚠️ Potential issue | 🟠 MajorResolve conflicting Enterprise Grid access-control statements.
Line 20 says Enterprise Grid includes GAC (Granular Access Control), while Line 46 says it will include “Global Access Control.” This is contradictory and changes terminology.
🛠️ Proposed consistency fix
-This does not apply to the Enterprise Grid. All users are billable seats at the instance level regardless of role. This is because Enterprise Grid will include Global Access Control, which lets you define custom permissions for any role. This means our preset system-defined roles no longer apply in the same way. Plus, your Enterprise Grid license isn't tied to a single workspace. You can have multiple workspaces with Enterprise features turned on. +This does not apply to Enterprise Grid. All users are billable seats at the instance level regardless of role. Enterprise Grid includes Granular Access Control (GAC), which lets you define custom permissions for any role. This means preset system-defined roles no longer apply in the same way. Plus, your Enterprise Grid license isn't tied to a single workspace. You can have multiple workspaces with Enterprise features turned on.Also applies to: 46-46
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/workspaces-and-users/billing-and-plans.md` at line 20, The document uses conflicting terminology for Enterprise Grid access control; standardize both mentions to the same phrase and acronym: replace the phrase "will include 'Global Access Control'" and any "Global Access Control" occurrences with "includes Granular Access Control (GAC)" (or conversely update the earlier sentence to "will include Granular Access Control (GAC)") so both lines consistently refer to "Granular Access Control (GAC)" and ensure the acronym GAC is defined only once and matches the chosen full name.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@docs/workspaces-and-users/billing-and-plans.md`:
- Line 17: Edit the example sentence to remove the duplicated phrase and fix the
grammar: delete the repeated "100 Guests" and change "for a total 100 Guest
slots" to "for a total of 100 Guest slots" so the sentence reads cleanly (the
sentence containing "20 Admins and Members and 100 Guests 100 Guests" and the
trailing "for a total 100 Guest slots" should be corrected).
- Line 92: Fix the typo in the sentence that begins "Subscriptions renew
automatically at the start of each billing cycle, monthly or annua, depending on
what you selected." — change "annua" to "annual" so the sentence reads
"...monthly or annual, depending on what you selected." Ensure only that word is
corrected in the sentence to preserve existing wording.
---
Duplicate comments:
In `@docs/workspaces-and-users/billing-and-plans.md`:
- Line 123: Update the heading text "Downgrade to a lower paid plan" to
hyphenate the compound adjective as "Downgrade to a lower-paid plan" so the
heading uses the correct compound-adjective form; locate the heading string in
the Markdown file where the line reads "### Downgrade to a lower paid plan" and
replace it with "### Downgrade to a lower-paid plan".
- Around line 1-223: The file fails the oxfmt formatter check; run the formatter
and commit the fixed markdown. Specifically, run the oxfmt formatter (e.g.,
oxfmt docs/workspaces-and-users/billing-and-plans.md or the repo's formatting
script), review the changed output for any unintended edits, stage and commit
the formatted file, and push the commit to unblock CI so that oxfmt --check
passes.
- Line 20: The document uses conflicting terminology for Enterprise Grid access
control; standardize both mentions to the same phrase and acronym: replace the
phrase "will include 'Global Access Control'" and any "Global Access Control"
occurrences with "includes Granular Access Control (GAC)" (or conversely update
the earlier sentence to "will include Granular Access Control (GAC)") so both
lines consistently refer to "Granular Access Control (GAC)" and ensure the
acronym GAC is defined only once and matches the chosen full name.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: e487e25a-1782-4a21-acc7-840d584e9717
📒 Files selected for processing (1)
docs/workspaces-and-users/billing-and-plans.md
Summary by CodeRabbit