URL: /admin/plan-management/


What It Does

The Plan Management Dashboard lets you control all 41 platform features across 3 subscription tiers (Starter, Professional, Enterprise) from a web interface. Changes take effect immediately with automatic cache invalidation.

Why this matters: No code deployments needed to adjust quotas, enable features, or create custom tenant deals. Change limits in production on Black Friday without touching code.


Dashboard Overview

Stats Cards

  • Plan Tiers - 3 active tiers (Starter, Professional, Enterprise)
  • Features - 41 configurable features
  • Trial Duration - Days (default: 7)
  • Overrides - Count of tenant-specific custom configs

Feature Matrix

Features are grouped by category:

  1. Quotas - Monthly limits (15 features)
  2. Features - Boolean on/off access (2 features)
  3. Scheduling - Task frequency (1 feature)
  4. Pricing - Overage charges (13 features)
  5. Trial - Trial period limits (10 features)

Each row shows the feature name and values across all 3 tiers.


Feature Types

Quota (Monthly Limits)

Resets every billing period. Applies to usage tracking.

Examples:

  • quota_briefs - AI Briefs per month (Starter: 12, Pro: 30, Enterprise: 80)
  • quota_drafts - AI Drafts per month (Starter: 8, Pro: 20, Enterprise: 50)
  • quota_social_posts - Social Posts per month (Starter: 30, Pro: 100, Enterprise: 300)
  • quota_images - AI Images per month (Starter: 25, Pro: 75, Enterprise: 200)
  • quota_emails - Email Generation per month (Starter: 10, Pro: 30, Enterprise: 100)

All quota features:

  1. quota_briefs - Keyword, trend, custom, calendar, link magnet briefs
  2. quota_drafts - Articles from briefs, custom content, holiday content
  3. quota_social_posts - Social extensions, Twitter threads, carousels, campaign posts
  4. quota_images - Hero images, inline images, infographics
  5. quota_emails - Newsletters, email headers, outreach emails
  6. quota_video_scripts - Video scripts and podcast outlines
  7. quota_brainstorms - Brainstorm sessions, weekly strategy, recommendations
  8. quota_reports - Custom reports, gap analysis, originality checks
  9. quota_predictions - Performance predictions and validation
  10. quota_ads - Retargeting banners and brand search campaigns
  11. quota_scans - Opportunity scans
  12. quota_gap_reports - Gap analysis reports
  13. quota_trend_scans - Trend analysis scans
  14. quota_websites - Connected websites/brands (Starter: 1, Pro: 3, Enterprise: 10)
  15. quota_seats - Team user seats (Starter: 5, Pro: 15, Enterprise: 50)

Boolean (Feature Access)

On/off toggles for premium features. Value: true or false.

Examples:

  • access_drilldown - Dashboard Drill-Down (Starter: false, Pro: true, Enterprise: true)
  • access_decision_digest - Weekly Decision Digest emails (Starter: false, Pro: true, Enterprise: true)

Schedule (Task Frequency)

How often scheduled tasks run. Values: daily, weekly, biweekly, monthly.

Example:

  • schedule_perplexity - AI visibility scans (Starter: monthly, Pro: biweekly, Enterprise: weekly)

Price (Overage Charges)

Per-unit price when tenant exceeds monthly quota. Value: decimal (e.g., 25.00).

All overage prices (same across tiers):

  1. price_overage_briefs - $25.00 per brief
  2. price_overage_drafts - $60.00 per draft
  3. price_overage_social_posts - $2.00 per post
  4. price_overage_images - $1.00 per image
  5. price_overage_emails - $5.00 per email
  6. price_overage_video_scripts - $10.00 per script
  7. price_overage_brainstorms - $15.00 per session
  8. price_overage_ads - $25.00 per campaign
  9. price_overage_reports - $35.00 per report
  10. price_overage_predictions - $10.00 per prediction
  11. price_overage_scans - $20.00 per scan
  12. price_overage_gap_reports - $35.00 per gap report
  13. price_overage_trend_scans - $0.00 (free/included)

Limit (Trial Total Caps)

Maximum usage during trial period (not monthly, total cap).

All trial limits:

  1. trial_briefs - 10 briefs total
  2. trial_drafts - 5 drafts total
  3. trial_images - 10 images total
  4. trial_social_posts - 15 social posts total
  5. trial_emails - 3 emails total
  6. trial_video_scripts - 2 video scripts total
  7. trial_brainstorms - 2 brainstorm sessions total
  8. trial_ads - 1 ad campaign total
  9. trial_reports - 2 reports total
  10. trial_predictions - 5 predictions total

How to Edit Feature Values

Single Feature Edit

  1. Click any value in the feature matrix
  2. Enter new value
  3. Submit

Validation:

  • Quotas/limits must be integers
  • Booleans must be true or false
  • Prices must be valid decimals
  • Schedules must be daily, weekly, biweekly, or monthly

Changes take effect immediately after cache clears (automatic).

Bulk Edit

URL: /admin/plan-management/bulk-edit/

Edit multiple features at once. Organized by category tabs:

  • Quotas - All 15 quota features in one grid
  • Access - Boolean feature toggles
  • Schedules - Task frequency settings
  • Prices - Overage pricing
  • Limits - Trial caps

Workflow:

  1. Select category tab
  2. Edit values across all 3 tiers
  3. Submit form
  4. All changes applied in one transaction

When to use: Black Friday promotions (increase all quotas by 50%), new tier launches, pricing experiments.


Tenant Overrides

URL: /admin/plan-management/overrides/

Give specific tenants custom values that supersede their tier defaults.

Why Use Overrides

  • Extended trials - Give beta tester 30-day trial instead of 7
  • Agency partners - Increase quota_websites from 1 to 5
  • Custom deals - Offer Professional features at Starter price
  • Temporary boosts - "You've been selected for early access to X feature"
  • Apology credits - Increase quotas after downtime

Add Override

Form fields:

  • Tenant - Which tenant gets the override
  • Feature - Which feature to override (e.g., quota_briefs)
  • Value - New value (e.g., 50 instead of tier default 12)
  • Expires (days) - Optional expiration (0 = permanent)
  • Reason - Why this override exists (for audit trail)

Example: Agency partner Acme Corp needs 10 websites instead of 3.

  • Tenant: Acme Corp
  • Feature: Websites
  • Value: 10
  • Expires: 0 (permanent)
  • Reason: "Agency partner agreement - needs multi-brand support"

Override Priority

When looking up a feature value:

  1. TenantFeatureOverride (if exists and not expired) ← Highest priority
  2. PlanFeatureValue for tenant's tier
  3. Feature.default_value (fallback)

Expiration

Overrides can expire automatically. Use cases:

  • Trial extensions - "30 days" → Reverts to standard tier after 30 days
  • Promotional periods - "90 days" → Black Friday deal expires
  • Testing - "7 days" → Beta feature access expires

Expired overrides stop applying automatically. Tenant reverts to tier defaults.

Delete Override

Click "Delete" button on override row. Takes effect immediately with cache clear.


Trial Configuration

URL: /admin/plan-management/trial/

Global trial settings (applies to all new trial users).

Settings:

  • Trial Duration - Days (default: 7)

Trial limits are configured via trial_* features in the main dashboard (not here).

When to change:

  • Black Friday promotion - Extend to 14 days
  • Aggressive acquisition - Reduce to 3 days (for high-intent signups)
  • Enterprise trials - Extend to 30 days for complex onboarding

Cache Management

URL: /admin/plan-management/clear-cache/

Plan configuration is cached for 5 minutes (300 seconds) to reduce database load.

When Cache Clears Automatically

  • After any feature value edit
  • After adding/deleting tenant override
  • After changing trial settings

Manual Cache Clear

Click "Clear Cache" button if:

  • Changes not reflecting immediately
  • Debugging subscription issues
  • After database manual updates

What gets cleared: All plan config cache keys (plan_config:*) for all tenants.


Quick Links

Dashboard footer provides direct links to Django admin for advanced operations:

  • Manage Plan Tiers - Add/edit tier pricing, levels, descriptions
  • Manage Features - Add new features, change categories, toggle active status
  • Feature Values - View/edit raw PlanFeatureValue records
  • All Overrides - Django admin view of TenantFeatureOverride table

Common Tasks

Adjust Quotas for All Tiers

Use case: Usage data shows customers need more briefs.

  1. Go to Bulk Edit → Quotas tab
  2. Change quota_briefs from 12/30/80 to 15/40/100
  3. Submit
  4. Changes live immediately

Create Custom Trial Extension

Use case: Enterprise prospect needs 30-day trial.

  1. Go to Tenant Overrides
  2. Add override:
  • Tenant: Acme Corp
  • Feature: Trial Briefs
  • Value: 50 (instead of default 10)
  • Expires: 30 days
  • Reason: "Enterprise evaluation - extended trial"
  1. Submit

After 30 days, override expires and tenant must subscribe or lose access.

Enable Feature for Single Tenant

Use case: Beta test new Decision Digest feature with one customer.

  1. Go to Tenant Overrides
  2. Add override:
  • Tenant: Beta Tester Inc
  • Feature: Weekly Decision Digest
  • Value: true
  • Expires: 0 (permanent until manually removed)
  • Reason: "Beta tester for decision digest feature"
  1. Submit

Tenant gets access even though their Starter tier normally has false.

Change Overage Price

Use case: Reduce draft overage from $60 to $50.

  1. Main dashboard → Find price_overage_drafts in Pricing section
  2. Click current value (60.00)
  3. Change to 50.00
  4. Submit

Applies to all tiers immediately (overage prices are tier-agnostic).

Adjust Scheduled Task Frequency

Use case: Enterprise tier should run AI visibility scans daily instead of weekly.

  1. Main dashboard → Find schedule_perplexity in Scheduling section
  2. Click Enterprise column value (weekly)
  3. Change to daily
  4. Submit

Next scheduled run will use new frequency.


Troubleshooting

Changes Not Reflecting

Symptom: Changed quota from 12 to 15, tenant still sees 12.

Causes:

  1. Cache not cleared - Wait 5 minutes or click "Clear Cache"
  2. Wrong feature slug - Check you edited correct feature (e.g., quota_briefs not trial_briefs)
  3. Tenant has override - Check Tenant Overrides page for conflicting override

Fix: Go to Tenant Overrides, search for tenant name, delete conflicting override.

Tenant Not Respecting Limits

Symptom: Tenant subscribed to Starter (12 briefs) but created 50 briefs.

Causes:

  1. Tenant is marked is_beta=True (beta users get unlimited)
  2. Tenant has override giving higher quota
  3. Usage tracking not enforced for this feature

Fix: Check tenant in Django admin, verify beta mode is off, check for overrides.

Trial Limits Not Working

Symptom: Trial user exceeded 10 briefs, still generating.

Causes:

  1. Trial limits are total caps, not monthly (common confusion)
  2. Trial usage tracking not incrementing correctly
  3. Feature missing enforcement for this action type

Fix: Check the tenant's trial state in Django admin, verify usage fields are incrementing.

Override Not Expiring

Symptom: 30-day override still active after 30 days.

Causes:

  1. Expiration date in future (check actual expires_at timestamp)
  2. No scheduled task cleaning expired overrides (manual cleanup needed)

Fix: Manually delete expired overrides from Tenant Overrides page or Django admin.


Permissions

Access: Staff users only (@staff_member_required decorator on all views).

Audit trail: All changes logged via Django admin history. Created/updated timestamps tracked on models.


Related Features

  • Subscription Management - /admin/subscriptions/ - Assign tiers to tenants
  • Usage Tracking - /admin/usage/ - View actual tenant usage vs quotas
  • Billing - /admin/billing/ - Overage charges and invoicing
  • Trial States - /admin/trials/ - Active trials and usage caps

Performance Notes

  • Changes are cached for 5 minutes for fast page loads
  • Dashboard tested with 1000+ tenants, 100+ overrides with no performance issues

Ready to lose the stack?

One platform. You approve. ILLIXIS executes. Marketing that just happens.

Join the waitlistNo spam, everUnsubscribe anytime
First 20 founding members: 50% off any plan for your first year.

Marketing, Unstacked.