What Is a Tag Group?
Tag Groups dictate the rate of execution of Tags, and therefore play a crucial role in the design of large and high-performance systems. Highly optimized systems generally use multiple Tag Groups which allows for each data point to be polled only as fast as it needs to be. For example some Tags may need to updated every 500ms, while others may only need to be updated every 30 seconds.
Creating different Tag Groups allows you to organize your Tags into groups that subscribe or poll at different rates.

Tag Groups Modes
Tags are assigned to a Tag Group that determine how often they update. For example, how often an OPC value is polled from the PLC, how often an Expression Tag calculates its expression, and how often a Query Tag runs its query. It's easy to create Tag Groups in Ignition for just about any scenario you can think of. Tag Groups are extremely powerful and flexible, and you can create them based entirely on your individual business requirements.
There are three different Tag Group modes in Ignition that you can use. Each mode works a bit differently.
Direct
Executes at one fixed rate, as determined by the Rate property in milliseconds. This is the most simplistic option, as the rate of the group doesn't intentionally change between two different rates. The default tag group on newly installed Ignition systems uses this mode. It's the simplest mode in that there is only a single rate for this mode.

See the Direct Tag Group Example page on steps to add a Direct Tag Group.
Driven
Driven Tag Groups switch between two different rates based on a condition you configure directly onto the Tag Group. The condition in this case is an expression on the Driving Expression property. The result of the expression is then compared to the Comparison Value property. If the comparison of the two values is equivalent, then the entire tag group executes at the Leased/Driven Rate in milliseconds, otherwise it executes at the Rate.
Thus, you can have a tag group that switches between a fast and slow rate under certain conditions.
Furthermore, Driven Tag Groups have a One Shot property. When set to true, means the group only executes every time the comparison is equivalent. Furthermore, it only executes once every time that comparison transitions from false to true: this is sometimes called "a rising edge".
The One Shot property allows for more interesting tag executions. Instead of running at set rates, you can trigger an execution for all tags on the group by incorporating a tag value as part (or all) of the driving expression, allowing a single tag value change to cause many other tags to update.

See the Driven Tag Group Examples page on steps to add a Driven Tag Group.
Leased
Leased groups have two different execution rates, much like a Driven group. However Leased groups don't rely on a comparison to determine rate. Instead, the driving mechanism is whether a Tag is being displayed on an open window or view: generally via a Tag Binding of some sort.
Tags that are displayed (leased) will run at the Leased/Driven Rate, while those Tags on the same group that aren't leased will run at the Rate.
Leased groups are unique in that Tags on the same group may execute at different rates while being in the same group. For example, if Tags A and B are both on the same Leased group, and all Designer,
Vision Client, and Perspective Sessions are closed, then both tags execute using the Rate value. If a user launches a Perspective Session and switches to a view where the value of A is displayed on a component binding, then A will switch to the Leased/Driven Rate. However, since B isn't displayed anywhere, it will continue to execute using the Rate value.

See the Leased Tag Group Example page on steps to add a Leased Tag Group.
Note: Viewing the Tag only in the Tag Browser will not cause the Tag Group to execute at the Leased Rate.