NebularStack
Website

Fair Usage Policies

A Fair Usage Policy (FUP) lets you automatically slow down (throttle) a subscriber's speed once they have used a certain amount of data in a given period. Instead of cutting a subscriber off, you gradually reduce their download and/or upload speed, keeping them connected while protecting your network during busy times.

A FUP is built from a FUP Profile (a named container) and one or more FUP Rules inside it. You then attach the FUP Profile to a Subscriber Profile, and every subscriber on that profile is governed by those rules.

How Fair Usage Policies Work

Before creating rules, it helps to understand the building blocks and how a subscriber's usage is measured.

The Building Blocks

  • FUP Profile — a named policy (for example "Home 100Mbps FUP"). It is simply a container that holds a list of rules.

  • FUP Rule — one throttling instruction. A rule says: "when this much data has been used in this period, reduce speed by this much."

  • Subscriber Profile — the package a subscriber is on. Its Fair Usage Policy field is where you attach a FUP Profile.

Every FUP Rule has the following values:

  • Rule Order — the order in which rules are checked (lowest first).

  • Chain — which traffic is measured:

    • download — only data downloaded by the subscriber.

    • upload — only data uploaded by the subscriber.

    • combined — download plus upload added together.

  • Volume Threshold (GB) — how much data (in gigabytes) must be used before the rule takes effect.

  • Cycle — the period the data is measured over, and when the counter resets:

    • daily — resets every day at the subscriber's local midnight.

    • weekly — resets every Monday at the subscriber's local midnight (a week runs Monday to Sunday; see What Counts as a Week?).

    • monthly — resets on the first of each month.

  • Download Speed Reduction % — how much to cut the download speed (0–100).

  • Upload Speed Reduction % — how much to cut the upload speed (0–100).

  • Effective Start / End (24h clock, UTC) — the time-of-day window during which the rule is active. Use this for "off-peak" or "peak" throttling. These hours are in UTC, not the subscriber's local time.

  • Policy Name / Input Policy Name / Output Policy Name (optional) — advanced fields that push a named policy or queue to the NAS when the rule triggers. Leave these blank unless your network design requires them.

How Usage Is Measured

As a subscriber uses the internet, our system continuously records how much they have downloaded and uploaded. For each subscriber we keep three running totals — a daily, a weekly, and a monthly counter — and each of those tracks download, upload, and combined separately.

When the subscriber's local day, week, or month rolls over, the matching counter resets to zero and starts counting again. This is why the subscriber's timezone matters (see Why Timezone Matters below).

Step 1 — Create a FUP Profile

  1. Go to Subscriber (AAA) > Fair Usage Policies.

  2. Click New (or the add button).

  3. Give the profile a clear Name, for example "Home 100Mbps FUP".

  4. Save. You now have an empty policy, ready for rules.

Step 2 — Add FUP Rules

Open the FUP Profile you just created and add one or more rules. For each rule, fill in the values described above. A typical rule looks like this:

  • Rule Order: 1

  • Chain: combined

  • Volume Threshold: 10 (GB)

  • Cycle: daily

  • Download Speed Reduction %: 50

  • Upload Speed Reduction %: 50

  • Effective Start: 00:00 (UTC)

  • Effective End: 23:59 (UTC)

This rule means: "Once a subscriber has used 10 GB combined in a single day, halve their download and upload speed for the rest of that day."

Add as many rules as you need. Rules can target different cycles (daily, weekly, monthly), different traffic (download, upload, combined), and different times of day. See What Happens When Several Rules Match for how they combine.

Step 3 — Apply the FUP Profile to a Subscriber Profile

A FUP Profile does nothing on its own. It must be attached to a Subscriber Profile:

  1. Go to Subscriber (AAA) > Subscriber Profiles.

  2. Open (or create) the Subscriber Profile that represents the package.

  3. In the Fair Usage Policy field, select your FUP Profile.

  4. Save.

From this point on, every subscriber on that Subscriber Profile is governed by the policy's rules. The rules are measured against each subscriber's own usage — the policy is shared, but the counters are per-subscriber.

What Happens After the Rules Apply

Each time a subscriber's session is authorized (for example when they connect or reconnect), the system:

  1. Starts from the base speed set on their Subscriber Profile (for example 100 Mbit/s download, 20 Mbit/s upload).

  2. Looks at every rule in the attached FUP Profile.

  3. For each rule, checks two things:

    • Is the current UTC time inside the rule's start/end window?

    • Has the subscriber's usage in that rule's cycle and chain reached the Volume Threshold?

  4. If both are true, the rule triggers and its speed reductions are applied.

The reduced speed takes full effect on the subscriber's next reconnect or session refresh.

Example — a single rule

Base profile: 100 Mbit/s download, 20 Mbit/s upload.

Rule: combined / daily / threshold 10 GB / download 50% / upload 50% / active 00:0023:59 UTC.

  • Subscriber has used 6 GB today → under the threshold → full speed (100 / 20).

  • Subscriber crosses 10 GB today → rule triggers → speed becomes 50 Mbit/s download, 10 Mbit/s upload for the rest of their local day.

  • At local midnight the daily counter resets → back to full speed.

What Happens When Several Rules Match

This is the most important behaviour to understand:

Speed reductions compound (multiply together). If two rules each reduce download by 50%, the result is not 50% — it is 0.5 × 0.5 = 0.25, i.e. a 75% total reduction.

Example — graduated (tiered) throttling

Base profile: 100 Mbit/s download, 20 Mbit/s upload.

Two rules in the same FUP Profile:

  • Rule A: combined / daily / 10 GB / download 50% / upload 50%

  • Rule B: combined / daily / 50 GB / download 50% / upload 50%

Result as the subscriber's daily usage grows:

  • 0–10 GB used: no rule matches → 100 / 20 (full speed).

  • 10–50 GB used: Rule A matches → 100 × 0.5 and 20 × 0.550 / 10.

  • Over 50 GB used: Rule A and Rule B match → 100 × 0.5 × 0.5 and 20 × 0.5 × 0.525 / 5.

This lets you build gentle, graduated throttling: the more a subscriber uses, the more their speed is stepped down.

Why Timezone Matters

Every subscriber account has a timezone setting, and it directly affects Fair Usage Policies.

The daily, weekly, and monthly usage counters reset based on the subscriber's own local time — not on UTC and not on your server's time. So:

  • A daily counter resets at the subscriber's local midnight.

  • A weekly counter resets at the start of their local week (Monday).

  • A monthly counter resets at the start of their local month.

If a subscriber's timezone is wrong, their counters reset at the wrong moment. For example, a subscriber who is really in UTC+2 but is set to UTC would have their "daily" allowance reset at 02:00 local time instead of midnight — so late-night usage could land in the wrong day and throttling would start or clear at the wrong time.

What Counts as a Week?

A week runs from Monday to Sunday (the ISO 8601 standard):

  • The week begins on Monday at 00:00 (the subscriber's local midnight).

  • The week ends on Sunday at 23:59:59.

  • The weekly counter resets to zero at the start of every Monday, so the new week starts fresh.

Because the week is worked out in the subscriber's own timezone, "Monday midnight" means their local Monday midnight — not UTC and not your server's time. This is the same reason the daily and monthly counters depend on the subscriber's timezone.

There is one important exception. A rule's Effective Start and Effective End hours are always in UTC. If you want a rule to be active during your local off-peak hours, convert those hours to UTC first. For example, if your off-peak window is 22:00–06:00 in UTC+2, set the rule window to 20:0004:00 UTC.

Quick Reference

  • A FUP reduces speed once a data threshold is reached; it never cuts the subscriber off and never raises speed above the profile's base.

  • Chain selects download, upload, or combined traffic. Cycle selects the daily, weekly, or monthly counter (and when it resets).

  • All matching rules apply together, and speed reductions multiply.

  • Usage counters reset on the subscriber's local time — keep the subscriber timezone accurate.

  • Rule start/end hours are in UTC — convert your local peak/off-peak times to UTC.

  • Attach the FUP Profile to a Subscriber Profile for it to take effect.