Shadowrocket Data Usage: Server and App Statistics Explained

Learn what Shadowrocket’s Data screen upload, download, and total figures mean, how server and app views differ, when counts reset, and why they may not match carrier bills.

At a glance

Data shows the transfers Shadowrocket records; it is not a carrier bill. This guide is for iPhone and iPad users who have already imported their own configuration and want to understand where traffic is going. First distinguish direction, speed, and total usage; then check the server and app categories. Compare changes over the same time period to investigate discrepancies.

Understand upload, download, and total figures

Open Shadowrocket and go to Data. Before reading the figures, check the units and reporting scope. Upload is data sent from your device; download is data received by your device. Direction is defined from the device’s perspective, not the remote server’s. When browsing, outgoing requests count as uploads, while pages, images, and video segments received count as downloads.

A unit with /s indicates a rate, such as KB/s. KB, MB, or GB without /s indicates an amount of data. A momentary rate dropping to zero does not mean the cumulative total has reset. The total alone also doesn’t tell you how fast the current connection is.

2 directions
Upload and download, from the device’s perspective
1 second
The unit /s means a rate per second, not a cumulative amount
2 readings
Ending value minus starting value gives the change over the interval

Within the same reporting scope, total usage is generally the sum of uploads and downloads. The figures below are a calculation example, not measured results: at the start, uploads are 12 MB and downloads are 80 MB; at the end, uploads are 15 MB and downloads are 104 MB. Uploads increased by 3 MB and downloads by 24 MB, for a total increase of 27 MB. Keep units consistent when comparing values, and don’t treat rounded figures as exact byte counts.

By server: traffic attributed to an outbound, not total device usage

When viewing totals by server, focus on which outbound entry is increasing—not just which server is currently selected on Home. The default server, the policy selected by a rule, and the server actually used for an established connection may differ. After changing the default selection, some existing connections may continue using the previous outbound until they end or are re-established.

App request Tunnel receives Routing decision Outbound connection Category total

Go back to Home → Global Routing and check the current mode. Proxy sends traffic handled by that mode through a proxy outbound; Direct uses a direct connection; Config applies the rules in the selected configuration; Scene also requires checking the routing settings for the active scene. Don’t interpret a server’s cumulative figure as the total traffic across all these modes.

Suppose server A in an existing configuration has the address proxy.example.com and port 443. These are illustrative values, not a clickable link or a claim that every protocol uses port 443. Use the configuration provided by your own service provider. Server statistics show which entry traffic was attributed to; they don’t establish how much data remains in a remote plan.

By app: check the categorization before identifying the source

“By app” is about source categorization; “by server” is about outbound attribution. One app can access multiple domains and use different outbounds depending on the rules, while multiple apps may share one server. The two views therefore aren’t suitable for matching and adding up row by row.

On iPhone and iPad, don’t treat category labels shown in the VPN as a complete system-level, per-process ledger. Whether the current interface offers app categories, and what those labels are based on, depends on the actual screen. A domain, connection characteristic, or service name is not the same as a system-identified app. If an item is uncategorized, don’t assume an app is transferring data in the background based only on its name.

By server

Question answered
Which outbound entry has increased in traffic
Where to check
Home → Global Routing
How to compare
Subtract the starting value from the ending value for the same entry
Does not replace
The remote provider’s plan usage measurement

Check the routing mode first, then interpret the change for each server.

By app

Question answered
Which source category the transfer is attributed to
Where to check
Categories and descriptions shown in Data
How to compare
Use a single app and record the difference before and after
Does not replace
The system’s cellular data usage by app

If there’s no app view, don’t pass off a domain list as an app list.

To see which apps use cellular data, open Settings on your iPhone or iPad, go to Cellular or the corresponding cellular data page on your device, and check app usage and the statistics period. Wi-Fi-only iPad models don’t have the same cellular usage view. System statistics and Shadowrocket measure different things, so their figures don’t have to match.

When figures reset: distinguish ending a session from resetting history

Turning off the connection ends the current VPN connection; it doesn’t automatically erase cumulative history. After reconnecting, the current session counter may start over while retained historical records continue accumulating. Quitting and reopening the app is not proof that the figures were reset. First determine whether the field you’re viewing refers to the current session or a retained record.

  1. Open Data and note the current category, unit, value, and time.
  2. If you need a reset, use only a reset or clear action explicitly identified in the current interface as applying to statistics. Read the confirmation prompt and check what it affects first.
  3. If the page has no such action, don’t treat deleting a server or configuration, or reinstalling the app, as routine ways to reset statistics. Record the difference between readings instead.
  4. Afterward, return to the same view and check again. Existing connections and background requests may generate new traffic immediately, so a brief nonzero value doesn’t necessarily mean the reset failed.

For monthly tracking, save readings for the same scope at the start and end of each month. If you reset the counter mid-month, calculate each interval separately and add the results. Also check when the system cellular statistics were last reset. Clearing Shadowrocket statistics won’t change the system page or the provider’s bill.

Why usage doesn’t match your carrier bill: check four measurement boundaries

Carriers primarily measure usage according to their cellular network rules. Shadowrocket shows transfers the client can process or record; traffic over Wi-Fi may also appear in its statistics. Protocol encapsulation, retransmissions, and differences in measurement layers can also affect the figures. There is no single conversion ratio that applies to every network.

What to checkPotential discrepancyHow to check
Network typeClient statistics may include Wi-Fi traffic, which isn’t included in a cellular billUse only one network type throughout the test
Time periodThe client’s starting point may differ from the billing cycle dateRecord the start and end times, including the time zone, for both
Reporting scopeA single server’s record doesn’t cover all traffic on the deviceDistinguish individual entries, totals, and system app usage
Units and measurement layerRounding, protocol overhead, and retransmissions may be counted differentlyUse the same units first, then check the measurement details

For example, decimal 1 GB is 1,000,000,000 bytes, while binary 1 GiB is 1,073,741,824 bytes. They’re not the same size. But a screen showing GB alone doesn’t tell you which convention is used internally. Check the page’s notes and allow for display rounding.

Bottom line: compare changes over the same period

Keep the network, start and end times, and reporting scope consistent, then compare the change in readings. Cumulative totals with different starting points aren’t directly comparable, and shouldn’t be used to decide whether a provider overcounted usage.

Check unusual increases with a controlled test

The goal is not to stop every background activity, but to reduce variables. Don’t change the server, routing mode, and network type at the same time, or it will be hard to identify what caused the change. Use a working server and configuration you already have; there’s no need to import another subscription.

  1. Choose a stable Wi-Fi or cellular connection. Note the network type and start time, along with the cumulative upload and download figures in Data.
  2. Go back to Home and note the current Global Routing value. If you’re using Config, note the selected configuration too.
  3. Pause downloads, video playback, and cloud syncing that you can stop. Open a new page in just one app.
  4. Wait for the page to finish loading, then return to Data and note the ending values. Also check whether the relevant server record increased.
  5. Repeat the test with all other conditions unchanged. Don’t clear all configurations, and don’t mistake a small increase due to a cache hit for a fault.

To investigate automatic reconnections, check Settings → On Demand. This setting may reconnect when its conditions are met, but the connection itself doesn’t explain every large increase in usage. Also check background sync, media preloading, and repeatedly retried requests. If uploads keep increasing, first check tasks that send data out, such as photo backup and file syncing.

Why does the download figure keep increasing when no page is open?

Pause media playback, file downloads, and sync tasks, then record the increase over one minute. Push notifications, background refresh, and connection maintenance also transfer data; an empty foreground doesn’t mean usage should be zero.

Why is the old server’s figure still increasing after I switched servers?

Stop the transfer in the original app first, then make a new request. Next, check Home → Global Routing and the policies in the current Config to distinguish an existing connection from the outbound used by a new one.

Data shows more usage than cellular statistics. Does that mean I was billed twice?

First check whether Data includes earlier Wi-Fi usage, then align the figures with the system cellular statistics reset date. The client’s display isn’t proof of billing. For billing questions, compare records for the same period with the measurement details from your carrier or your own service provider.

I can’t find a by-app view. Where do I turn it on?

First check which categories the current Data page actually provides. Don’t assume there’s a universal app-identification switch. To check cellular usage by app, go to Cellular in system Settings and compare the same time period.

Verify the official App Store listing