Admin: Grant Free Months
Free-month grants are an admin-level business development tool that extends a tenant's existing paid subscription at no charge. A grant is a trial extension applied directly to the tenant's active Stripe subscription; it is not a customer-facing coupon or discount code. During the grant period, invoices are EUR 0.00 with a "Free trial" description. At the end of the grant, Stripe resumes charging the listed plan price automatically. For general subscription and pricing information, see Pricing.
When to Grant
Free-month grants are appropriate in the following situations:
- Conference attendees — extending access for participants of sponsored events or workshops where OSC is featured
- Strategic onboarding — giving a new customer time to evaluate the platform before committing to a paid billing cycle
- BD discretion — any other case where a business development team member judges that a goodwill extension is warranted
Free-month grants are a business development tool. They are not available to customers through self-service and cannot be requested from within the OSC dashboard.
Step-by-Step Workflow
- Open the admin tenant page at
app.osaas.io/admin/tenant/[id]/, replacing[id]with the target tenant's ID. - Locate the Grant free months card on the page.
- Set the number of months (1 through 12 inclusive).
- Enter a reason for the grant. This is stored in the grants-history table on the same page and is visible to other admins.
- Click Confirm to apply the grant.
The grants-history table at the bottom of the tenant admin page records all past grants for the tenant, including the number of months, the reason, the date applied, and the admin who applied it.
Card-on-File Requirement
A grant will be rejected if the tenant does not have a payment method on file in Stripe. This is not a platform policy choice; it is a technical constraint. Stripe's trial-extension mechanism operates on an existing active subscription with an attached payment method. Without a payment method, there is no subscription to extend, and the API call fails.
If a grant is rejected for this reason, ask the tenant to add a credit card via Workspace Settings → Billing before retrying.
Anchor Pricing Rule
The grant does not alter the tenant's listed plan price. During the grant period:
- Invoices are EUR 0.00 with a "Free trial" line item description
- The listed price (EUR 15 / 69 / 199 depending on plan) remains unchanged in Stripe
- At the end of the grant period, Stripe automatically resumes charging the listed price with no action required from the tenant or from admin
There is no prorated credit; the grant simply defers the next charge by the number of months granted.
Conference-Account Safety
Grants issued against a conference Stripe account are rejected at runtime. The platform contains a safety assertion that detects conference billing entities and blocks the API call. This prevents a grant from being accidentally applied to the wrong billing context (the conference organizer's account rather than an individual attendee's account). If a grant for a conference attendee is rejected with this error, verify that the target tenant is billed under their own individual Stripe account rather than a shared conference account.
Customer Experience
From the tenant's perspective:
- The dashboard shows the grant period, including the end date
- Stripe sends EUR 0.00 invoices with a "Free trial" description for each month of the grant
- No action is required from the tenant during the grant period
- When the grant period ends, Stripe charges the listed plan price automatically using the payment method on file
Tenants do not receive a separate notification that a grant has been applied unless the admin communicates it directly.
Comp MRR Accounting
Comp MRR (revenue from tenants on admin-granted free months) is a chart-build-time computation used in the business metrics dashboard. It is not persisted to the stripe-weekly JSON snapshot. The calculation feeds into a gross MRR + comp adjustments + net MRR breakdown per CEO directive 2026-05-03.
Formula pending — see parent epic Eyevinn/osaas-app#3886 for the exact computation rule.