# Read Tag with Formatting - Best Practice

**URL:** <https://forum.inductiveautomation.com/t/read-tag-with-formatting-best-practice/109648>\
**Category:** Ignition\
**Tags:** ignition81, perspective\
**Created:** [August 12, 2025, 3:42pm UTC](https://forum.inductiveautomation.com/t/read-tag-with-formatting-best-practice/109648 "2025-08-12T15:42:13Z")\
**Posts on this page:** 1\
**Showing post:** 8

<div class="post-metadata">

**Author:** ![ryan.white](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ryan.white/32/73193_2.png) [@ryan.white](https://forum.inductiveautomation.com/u/ryan.white)\
**Post date:** [August 12, 2025, 4:24pm UTC](https://forum.inductiveautomation.com/t/read-tag-with-formatting-best-practice/109648/8 "2025-08-12T16:24:25Z")

</div>

Quoting a response in that list that explains it:

> [@Indirect Tags versus Tag() function](https://forum.inductiveautomation.com/t/indirect-tags-versus-tag-function/95947/2):
>
> Every difference in behavior between the tag() function and indirect tag bindings is a negative against the tag() function. tag(), like any expression function, must deliver an answer in the thread that is running the whole expression. But on expression startup that means waiting on the tag subsystem to establish the subscription and deliver the initial value. This creates stalls. Indirect tag bindings deliver asynchronously. The string expression within the parentheses of tag() must re…

---

_[View the full topic](https://forum.inductiveautomation.com/t/read-tag-with-formatting-best-practice/109648)._
