Shadowrocket Data Usage: Uploads, Downloads, and Usage by Server or App

Learn how to read and reset Shadowrocket’s Data usage by server or app, and why totals may differ from your provider’s usage report.

At a glance

This guide is for users who have already imported their own configuration into Shadowrocket. First, distinguish uploads, downloads, and real-time speeds. Then review traffic by server and by app, and learn how to record, reset, and compare statistics over the same time window. Data is for troubleshooting on your device; check your provider’s metering policy and account records for remaining allowance and billing totals.

1. Reading Data: Direction, Totals, and Real-Time Speed

Read Shadowrocket traffic from the device’s perspective. Upload is data sent from your device; Download is data received by your device. Loading a webpage involves more than downloads: requests, sign-in details, and uploaded attachments all contribute to upload traffic. When you upload a file, responses and acknowledgments may also increase the download total.

Cumulative data and real-time speed are different metrics. Values shown in KB, MB, or GB usually represent data volume; values in KB/s or MB/s represent transfer speed over time. When activity stops, the speed may drop, but the cumulative total does not automatically reset. Reconnecting also does not necessarily start a new statistics period.

2 directions
Upload / Download, from the device’s perspective
2 views
By server / by app, showing different aspects of the same connections
8 bit
1 byte = 8 bits; MB/s and Mbps are not directly comparable at the same numeric value

When comparing units, also check whether they use decimal or binary conversions. In decimal units, 1 MB is 1,000,000 bytes; 1 MiB is 1,048,576 bytes. If the interface shows only MB, don’t assume both sources use the same conversion. Compare raw byte counts where available, or confirm how each source defines its units.

2. Usage by Server: Identify the Actual Egress

In Data, review the list grouped by server and focus on changes in the target server’s upload and download totals—not just the cumulative figures. The server selected on Home does not necessarily handle every request. Global Routing, the rules in the active Config, and policy selection all affect the actual egress path.

App request Route decision Outbound connection Usage total Check the figures

With Global Routing set to Config, requests are handled by the rules in the active configuration. DOMAIN-SUFFIX matches a domain and its subdomains; IP-CIDR matches a destination address range; GEOIP makes a decision based on an IP geolocation database; and FINAL handles requests that do not match earlier rules. Requests matched to DIRECT do not use your provider’s proxy egress, so you should not expect their traffic to increase the corresponding server total.

  1. On Home, note the current server name and Global Routing setting, then check which Config is active.
  2. Open Data and record the target server’s starting upload and download totals, along with the time on your device.
  3. Run one clearly defined test, such as opening a known webpage once. Avoid switching servers during the test.
  4. Return to Data and check the change. If the list has not refreshed, wait for the figures to update before recording the ending values.
  5. If another entry shows an increase, check the matching policy and actual egress against the connection records. Don’t change server settings yet.

Switching servers does not transfer previously accumulated usage to the newly selected server. Different entries in a configuration may also point to the same remote service, so client-side server categories may not match the server categories on your provider’s bill. For troubleshooting, record the entry name and test time. Don’t include passwords, keys, or full subscription URLs in screenshots.

3. Usage by App: Find Traffic Sources and Understand the Limits

Usage by app helps answer “which source generated traffic during this period?” It does not directly tell you which app is responsible for all usage on your provider’s bill. App attribution depends on information supplied by the system and the connection data available to the client. System services, shared network components, or connections without attribution data may not appear under a specific app name.

Multiple pages in a browser usually still count under the same app, so app categories are not page-by-page billing records. No foreground activity does not necessarily mean there is no network activity: app sync, system tasks, and persistent connections can still transfer data. If an entry is unclear, narrow it down with a controlled test using one app and a fixed time window rather than relying on its name alone.

Tip: Compare changes first, then identify the traffic source

To check whether an app is still transferring data, record its current total, leave other activity unchanged for a fixed 5-minute window, and compare the ending value. A large historical total alone does not show that the app is currently using the network.

4. Reset Statistics: Save a Baseline Before Starting a New Window

Resetting statistics establishes a fresh baseline for monitoring usage on your device; it does not restore your provider’s allowance. Clearing local totals does not undo transferred data or change your provider’s billing period. Before resetting, decide whether you still need the historical figures—especially when investigating unexpected usage or contacting your provider.

  1. Save the pre-reset figures: Record the time, server entry, upload and download totals, and the current view. If you take a screenshot, hide account details and configuration credentials.
  2. Limit test traffic: Pause large file transfers, video playback, and other known downloads. If the test can be done without a connection, you can turn it off on Home temporarily.
  3. Reset in Data: Use the statistics reset option on the page and read the confirmation prompt. Check whether it applies to the current entry or all statistics; the button’s location and availability depend on the current interface.
  4. Check the result: Stay in the same view and confirm that the value has reset or dropped significantly. If the connection is still active, a small new total soon after the reset is new traffic to observe separately.
  5. Set a new baseline: Restore the connection you need, note the new start time, and run one test. Subtract the starting value from the ending value rather than assuming the starting value is zero.

Updating the server list in Subscribe and resetting Data are separate actions. A subscription update refreshes an existing configuration obtained from your own provider; it does not recalibrate local totals. Repeatedly deleting and reimporting a configuration to investigate a discrepancy may make it harder to match entries and lose useful context.

5. Why Provider Usage Differs: Compare Like with Like

If Data totals differ from your provider’s dashboard, first check that you are comparing the same account, device scope, and time window. The client and server measure traffic at different points. Protocol overhead, how uploads and downloads are combined, other devices on the account, and reporting delays can all explain differences. A discrepancy alone does not prove either set of statistics is wrong.

What to check Why figures may differ What to do
Billing period Local totals start at the last reset; account totals follow the billing period Use the same start and end times, and compare changes rather than totals
Direction totals Comparing Download alone with combined upload and download usage Check whether billing counts both directions
Device scope Comparing this device’s list with totals across multiple devices on the account Pause related transfers on other devices during the test window
Routing scope Some requests use DIRECT while others go through a proxy egress Check the current routing setting and connection records to confirm the actual egress
Measurement point Different handling of protocol overhead, control data, and retransmissions Check your provider’s documentation; don’t assume a fixed overhead percentage
Reporting delays and multipliers Account reports may update late, or a specific route may use a multiplier as described by your provider Wait for the report to update and check the metering rules for the relevant period

Here’s a simple arithmetic example, not a measured result: during one window, the client records 12 MB uploaded and 88 MB downloaded, for a total of 100 MB if the units match. If the account documentation explicitly says that traffic on this route is metered at a 2× rate, the metered amount may be 200 MB. Don’t compare that directly with the 88 MB Download figure. Actual billing is subject to the scope and rules in your account documentation.

Tip: Don’t calculate a percentage difference until the time windows match

Save the starting and ending figures from both sources, then wait until the provider’s report covers the same end time before calculating the difference. If the account report still ends earlier, resetting local data will only destroy your comparison baseline.

6. FAQ: Stalled or Rising Totals and Checking Your Allowance

A webpage loads, but the selected server’s usage doesn’t increase. Why?

First check Global Routing on Home, then check the policy used for the request. Rules in Config may send it through DIRECT or select another egress. Cached content may also reduce the amount of data transferred. Record the starting value, make one clearly defined new request, then return to Data and check the change for the relevant entry.

I reset the total. Why did a few KB appear again right away?

First check whether the connection is still on, then review the triggers under Settings → On Demand. Background requests, DNS lookups, or connection maintenance can generate new traffic. Record the first reading after the reset as your baseline and observe changes over a fixed window. Repeatedly resetting the total won’t keep it at zero.

Why don’t the app totals add up exactly to the server list?

Check that both views cover the same time range, then look for unattributed connections, different egress scopes, or differences in display precision. Run a short test with one app and one server. Don’t add totals from different views or manually assign unidentified traffic to an app.

Can Data tell me how much usage I have left this month?

Data can help estimate your device’s usage over a known time window, but it can’t determine your account’s remaining allowance on its own. Check your provider’s account records for the billing period, upload and download metering rules, usage on other devices, and report update time, then compare those details with the same period’s change on your device.

After troubleshooting, keep a brief record of the test start and end times, current routing setting, server entry, changes in both directions, and the provider report’s update time. Using the same format for future checks helps distinguish configuration changes, reporting refreshes, and actual traffic. For more on getting started, see the Getting Started Guide. For an explanation of rule fields, see Configuration Fields.

Verify Shadowrocket on the App Store