Multi-tier sales & commission tracking dashboard with hierarchical affiliate networks
Project description
RT Commission Dashboard
Sales & Commission Dashboard
A high-performance, Python-based commission tracking dashboard built with NiceGUI.
🚀 Features
- Admin Panel: User management, Contract approval, Financial oversight.
- Affiliate Capability: Infinite-level Tree View, Link generation, Commission tracking.
- Performance: Realtime updates, instant page loads (SPA).
- Backend Agnostic:
- Phase 1: Local SQLite (Zero-setup).
- Phase 2: Supabase (Production).
🛠️ Installation
# Install with uv (recommended)
uv sync
# Run the dashboard
uv run rt-commission-dashboard --ui
⚙️ Configuration
The dashboard is fully configurable via config.yaml in the project root. You can customize:
Workspace Settings
workspace:
name: "RT Commission Dashboard" # Application title
company: "RealTime" # Company name
domain: "rt.local" # Email domain for mock data
Commission Settings
commission:
rates:
level_1: 0.10 # 10% for direct upline
level_2: 0.05 # 5% for second level upline
level_3: 0.02 # 2% for third level upline
max_levels: 5 # Maximum commission hierarchy levels
Database & App Settings
database:
filename: "rt_commission_dashboard.db" # Database filename
app:
title: "RT Commission Dashboard" # App title
port: 8000 # Default port
secret_key: "rt_dashboard_secret_key_123"
User Roles & Permissions
roles:
admin:
label: "Administrator"
permissions: ["Q1", "Q2", "Q3", "Q4"]
affiliate:
label: "Affiliate"
permissions: ["Q1", "Q2", "Q3", "Q4"]
ctv:
label: "Collaborator"
permissions: ["Q1", "Q2"]
💰 Financial Mechanics
The system implements a configurable Multi-Tier Automatic Commission structure triggered by retail_sales.
Volume-Based Commission Tiers
Commission rates are determined by Total Monthly Sales (Personal + F1).
| Monthly Sales | Rate |
|---|---|
| > 0 | 20% |
| > 200M | 22% |
| > 400M | 25% |
| > 1B | 30% |
| > 2B | 35% |
Differential Bonus (Stateful)
The system uses a Stateful Monthly Recalculation model.
- Step 1: Every
retail_salestransaction triggers a recalculation of the user's monthly volume and tier. - Step 2: The update propagates up the upline.
- Step 3: Upline earns the Differential between their Tier Rate and the Downline's Tier Rate.
- Benefit: Ensures "End-of-Month" consistency in real-time. If a user ranks up late in the month, their commission for the entire month is adjusted.
Note: Commission rates can be customized in config.yaml
Shared Opportunity
- Mechanism: A sale can be shared between two users (the "Sharer" who brings the opportunity and the "Receiver" who executes the sale).
- Volume for Tier Ranking: The FULL sales amount counts toward the Sharer's tier ranking. The Receiver gets 0% volume credit for tier ranking.
- Commission Split: Both parties earn commission on 50% of the sale value using their respective tier rates.
- Sharer: Commission = (Sharer's Tier Rate) × 50% × Sale Amount
- Receiver: Commission = (Receiver's Tier Rate) × 50% × Sale Amount
Inactive User Policy
- Definition: Users with 0 Personal Sales in the current month.
- Rate: They earn a fixed 4% commission on sales (and 4% receive/share rate) instead of the standard tier rates.
- Motivation: Encourages active selling to unlock higher tier rates (20%+).
Transaction Types
- Retail Revenue: Direct sales (Count towards Personal Revenue).
- Commission: Passive income (Count towards Total Income).
- Rewards: KPI Bonuses (Manual/Periodical).
📚 Data & Development
- instruction.md: Guide on how to populate users and create transactions.
- spec/dashboard_spec.md: Full architecture and requirements.
- test_scenario.md: Current testing hierarchy and edge cases.
📖 Documentation
See spec/dashboard_spec.md for detailed requirements and architecture.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rt_commission_dashboard-1.1.5.tar.gz.
File metadata
- Download URL: rt_commission_dashboard-1.1.5.tar.gz
- Upload date:
- Size: 32.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
184fd9e704f9c1134d8db9680aab06fb9c169993df4412be342d401f7f390c57
|
|
| MD5 |
99cbbf1553da6cf106238c679edb9666
|
|
| BLAKE2b-256 |
696d74f8c2b0fcc8daed50449fafc6c20b1526a7bee584f23f626122365f980e
|
File details
Details for the file rt_commission_dashboard-1.1.5-py3-none-any.whl.
File metadata
- Download URL: rt_commission_dashboard-1.1.5-py3-none-any.whl
- Upload date:
- Size: 39.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f71b43caa5e087771f9ca10771166cf78210dfcd81391522e241a32219b3c5bf
|
|
| MD5 |
b1f1e13a9961a149313dfc259cf65079
|
|
| BLAKE2b-256 |
9e195c4e799b77f726c7135f0426522471513e2c8a652426dcf101917930dc94
|