FUP & Quotas
ProxPanel’s FUP system is multi-layered. This page covers the four mechanisms and their priority order.
The four mechanisms
Section titled “The four mechanisms”| Mechanism | Trigger | Effect | Configured on |
|---|---|---|---|
| Daily FUP | daily_quota_used > FUP1Threshold etc. | Speed reduced per tier (FUP1 / FUP2 / … / FUP6) | Service |
| Monthly FUP | monthly_quota_used > MonthlyFUP1Threshold etc. | Speed reduced per tier (independent of daily) | Service |
| Free Hours (Quota Discount) | Time of day in configured window | A percentage of usage is not counted toward quota | Service |
| Time-Based Speed (Bandwidth Rules) | Time of day + day of week | Speed is multiplied (boost or throttle) | Bandwidth Rules page |
Quota tracking
Section titled “Quota tracking”QuotaSync runs every 30 seconds:
- Fetch the list of online subscribers per NAS.
- For each, query
/ppp/activeon the MikroTik to get per-session byte counters. - Compute delta since last poll.
- Update
daily_download_used,daily_upload_used,daily_quota_used(and monthly counters). - Check if a new FUP threshold was crossed → apply speed change via CoA.
- Save
last_seentimestamp.
Daily reset
Section titled “Daily reset”Configured in Settings → RADIUS → Daily Quota Reset Time (default 00:05).
The DailyQuotaResetService runs at that time in your system timezone (not UTC) and zeroes:
daily_quota_used,daily_download_used,daily_upload_usedfup_level
Monthly resets happen on the same day-of-month the subscriber was created (e.g., a subscriber created on the 15th renews on the 15th of every month).
Free Hours / Quota Discount
Section titled “Free Hours / Quota Discount”A way to give customers “free” data during off-peak hours without changing their speed.
Configured on the service:
time_based_speed_enabled— true/falsetime_from_hour,time_from_minute— window starttime_to_hour,time_to_minute— window endtime_download_ratio— % of usage that is FREE during the window
Formula applied every 30s during the window:
counted_quota_delta = raw_delta × (100 - free_percent) / 100Examples (raw 1 GB used during the window):
time_download_ratio = 100→ fully free, 0 GB countedtime_download_ratio = 70→ 70% free, 300 MB counted toward FUPtime_download_ratio = 0→ no discount, 1 GB counted normally
Free Hours does not change speed — use Bandwidth Rules for that.
Time-Based Speed (Bandwidth Rules)
Section titled “Time-Based Speed (Bandwidth Rules)”Time-windowed speed multipliers, configured in Bandwidth Rules (separate from services).
A rule has:
- Name (e.g., “NIGHT BOOST”)
- Time window (start/end)
- Days of week
- Speed multiplier (e.g.,
200%) - Optional: scope (NAS, service, specific subscribers)
When the window is active:
final_speed = base_speed × (1 + multiplier / 100)Examples (base 4 Mbps):
- 0% → 4 Mbps (no change)
- 100% → 8 Mbps (double)
- 200% → 12 Mbps (triple)
Priority order
Section titled “Priority order”When multiple mechanisms are in play, this is the order:
1. Subscriber-specific Bandwidth Rule (per-user override) ← highest priority2. FUP tier speed (if in FUP)3. Service base speed × time-based bandwidth-rule multiplier (if active)The system intentionally does not double-boost: if a global Bandwidth Rule is active, the per-service time_based_speed_enabled (which is for Free Hours only, not boost) does not also apply a second multiplier.
Burst control
Section titled “Burst control”Separate from FUP. Burst lets users get higher speeds for short bursts at the start of a session, then settles to the base speed. Configured on the service (burst_threshold, burst_time, burst_speed). Burst is enforced by MikroTik, not ProxPanel.
Resetting FUP manually
Section titled “Resetting FUP manually”- Per-subscriber: Subscribers list → row action → Reset FUP (resets daily counters, restores service speed).
- Bulk: Bulk Action → Reset FUP — runs against a filter result set.
- All: FUP Counters page → Reset All (admin only, affects every subscriber).
Reset only zeroes the daily counters. To reset the monthly counter, use Renew (full plan renewal) which charges balance.