Instructions for Zwift Activity Monitor app

This application allows Zwift users to monitor their moving average power and FTP in real-time. It also provides valuable metrics to the rider such as average and normalized power (NP), intensity factor (IF), and total suffer score (TSS). For the racer and time-trialist, there’s also the ability to configure distance based splits with optional goals.

How It Works

Zwift Activity Montitor (or ZAM for short), monitors outgoing network packets generated by the Zwift application and aggregates the data into statistical moving averages.

The network packets that ZAM consumes contain some important statistics. Some of them are:

    1. Current power output
    2. Current heartrate (if wearing an HRM)
    3. Distance travelled
    4. Time spent riding


Before you begin, ensure you have met the following requirements:

Installing Zwift Activity Monitor (Windows Only)

Note: The Setup-ZAM.exe file is not signed by certificate as that costs money. You therefore might get warning messages from your Anti-Virus software.

To install Zwift Activity Monitor, follow these steps:

    1. Make sure you’ve installed the latest version of Npcap from the link above in Prerequisites.
    2. Download the latest Setup-ZAM.exe release from this GitHub repository. You may get some weird messages from your Anti-Virus software.
    3. Run the installation. Again, you may get some messages from your Anti-Virus software.

Using Zwift Activity Monitor

When you launch ZAM for the first time, you will be presented with the configuration window. The following section describes this important step.


ZAM is easily configured via a set of configuration tab pages in the Analyze->Options dialog.

Options -> System Configuration Tab

ZAM first and foremost needs to know what network you use when running Zwift. It’s usually pretty simple as most computers are either Wi-Fi or direct Ethernet cabled. Within ZAM there is a packet monitoring system which MUST be started in order to use ZAM. This can either be done manually each time you run ZAM (by clicking the Start button), or by checking Auto-Start.

    1. Current User – The user profile that will be used during this ZAM session. This defaults to the Default User Profile.
    2. Network – The network in your computer you use when running Zwift.
    3. Auto-Start – Whether to start the Zwift Packet Monitoring service automatically when ZAM starts.
    4. Window Position – Once you find where you like the ZAM window to sit, enter those coordinates and it will open there each time.

      Options -> User Configuration Tab

      Multiple user profiles are ideal for multi-rider households, or if you’d like to be able to quickly select a different collector set. A default profile is provided for you, but you should configure it properly before using.
      1. Name – Identifies the rider.
      2. Weight – In Kilos or Pounds, preferably
      3. FTP – From your last FTP test or the value that Zwift has.
      4. Default moving average collector selection
    5. The moving average collectors selected will be shown by default for this user. However, you can select different collectors from the main ZAM window.
      Note: It is VERY important to set the weight and FTP fields properly! These are used to calculate Watts/Kilo and Intensity Factor.

Options -> Collector Configuration Tab

  1. ZAM uses moving average collectors to present statistics on the screen in real-time. A collector has the following attributes:
    1. Time Duration – The period for which a collector retains data
    2. Average Power display format – Moving average for all values currently in the collector.
    3. Maximum Power display format – The maximum value attained from the moving average.
    4. FTP display format – Maximum power value * 0.95 (Most applicable to the 20 minute collector).
  2. Display Format can be shown in:
    1. Watts – Rounded to nearest whole number.
    2. Watts/Kilo – Shown as #.##
    3. Hidden – Not shown.

Options -> Splits Configuration Tab

ZAM allows you to configure distance based splits to review your progress while riding. Optionally, you can also configure goals so that you’ll know if you’re ahead or behind on your split times. A split has the following attributes:

  1. Show Splits – When checked, the Splits View window will display automatically for 5 seconds when the distance is hit.
  2. Splits Every – This determines the distance (in km or mi) that splits occur.
  3. Calculate Goal – When checked, the splits view window will show a +/- indicator of your time vs the split time.
  4. Goal Time and Goal Distance – Together these are used to automatically calculate the number of splits and the target split times.

An example of the Splits View window is shown at the beginning of this readme file.

Using While Zwifting

Quick Start

    1. Start the Zwift Packet Monitoring service from the Analyze->Options System Tab by pressing Start. Maybe while you’re there select the Auto-Start option.
    2. Click Analyze->Start.
    3. Pedal away!
    4. Click Analyze->Stop when done.Timer Set-Up

      If you’ve ever done a WTRL TTT then you know there’s usually a delayed start after the banner drops. Or, maybe you’re in an event pen and don’t want to worry about clicking Analyze->Start when the banner drops. We’ve got you covered! Setting the timer allows you to pre-determine the ZAM start time. You set it up and a countdown begins. When the countdown ends, the system “clicks” Start for you.

      1. Click Analyze->Setup Timer.
      2. Set your delay time.
      3. Click the Start Timer button.
      4. When the countdown ends, start pedalling!
      5. If you change your mind or need to reset the timer, Click Analyze->Stop Timer and repeat the setup process.