Skip to content

FUP & Quotas

ProxPanel’s FUP system is multi-layered. This page covers the four mechanisms and their priority order.

MechanismTriggerEffectConfigured on
Daily FUPdaily_quota_used > FUP1Threshold etc.Speed reduced per tier (FUP1 / FUP2 / … / FUP6)Service
Monthly FUPmonthly_quota_used > MonthlyFUP1Threshold etc.Speed reduced per tier (independent of daily)Service
Free Hours (Quota Discount)Time of day in configured windowA percentage of usage is not counted toward quotaService
Time-Based Speed (Bandwidth Rules)Time of day + day of weekSpeed is multiplied (boost or throttle)Bandwidth Rules page

QuotaSync runs every 30 seconds:

  1. Fetch the list of online subscribers per NAS.
  2. For each, query /ppp/active on the MikroTik to get per-session byte counters.
  3. Compute delta since last poll.
  4. Update daily_download_used, daily_upload_used, daily_quota_used (and monthly counters).
  5. Check if a new FUP threshold was crossed → apply speed change via CoA.
  6. Save last_seen timestamp.

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_used
  • fup_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).

A way to give customers “free” data during off-peak hours without changing their speed.

Configured on the service:

  • time_based_speed_enabled — true/false
  • time_from_hour, time_from_minute — window start
  • time_to_hour, time_to_minute — window end
  • time_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) / 100

Examples (raw 1 GB used during the window):

  • time_download_ratio = 100 → fully free, 0 GB counted
  • time_download_ratio = 70 → 70% free, 300 MB counted toward FUP
  • time_download_ratio = 0 → no discount, 1 GB counted normally

Free Hours does not change speed — use Bandwidth Rules for that.

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)

When multiple mechanisms are in play, this is the order:

1. Subscriber-specific Bandwidth Rule (per-user override) ← highest priority
2. 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.

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.

  • 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.