# Providing default value for non-persistent bindings

**URL:** <https://forum.inductiveautomation.com/t/providing-default-value-for-non-persistent-bindings/108390>\
**Category:** Ignition\
**Tags:** perspective, ignition81\
**Created:** [July 11, 2025, 6:36pm UTC](https://forum.inductiveautomation.com/t/providing-default-value-for-non-persistent-bindings/108390 "2025-07-11T18:36:03Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ryan\_Deardorff](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ryan_deardorff/32/63815_2.png) [@Ryan\_Deardorff](https://forum.inductiveautomation.com/u/Ryan_Deardorff)\
**Post date:** [July 11, 2025, 6:36pm UTC](https://forum.inductiveautomation.com/t/providing-default-value-for-non-persistent-bindings/108390/1 "2025-07-11T18:36:03Z")

</div>

I know I can set a property to `persistent` in order to cause a default value to show up, but when the property is the result of a binding, it will end up being whatever the bound value happens to be when I save the project. At one point I thought I learned that a default for non-persistent values could be set by wrapping the binding in `coalesce`:

```python
coalesce({someBoundValue}, 'defaultValue')

```

...but that does not appear to be working. I still see the value I saved in development appearing before the live values populate. Is setting a property to `persistent` the only way to ensure initial display of a default value before a binding is evaluated?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [July 11, 2025, 6:43pm UTC](https://forum.inductiveautomation.com/t/providing-default-value-for-non-persistent-bindings/108390/2 "2025-07-11T18:43:00Z")

</div>

`coalesce()` replaces a null with a default. Non-persistent properties start as null. You have to use `coalesce()` in all expressions that **reference** the non-persistent property.

---

<div class="post-metadata">

**Author:** ![Ryan\_Deardorff](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ryan_deardorff/32/63815_2.png) [@Ryan\_Deardorff](https://forum.inductiveautomation.com/u/Ryan_Deardorff)\
**Post date:** [July 11, 2025, 7:32pm UTC](https://forum.inductiveautomation.com/t/providing-default-value-for-non-persistent-bindings/108390/3 "2025-07-11T19:32:47Z")

</div>

That's what I thought, but... I have a custom property on the view:

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/a/7/a7108c074e33001ec32a0c1ea333a5d7f650ea8d.png)

...then a label visibility binding on that:

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/8/c/8cb5fd0c351e8fa55389d9e73b4287341d656ba5.png)  
The label is visible when first loading the view.

That `{view.custom.tagPathBase}` parameter on the first binding is also non-persistent. It's the result of a `runScript` expression that references a view parameter. The label still appears even if I wrap that in a `coalesce`.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [July 11, 2025, 8:08pm UTC](https://forum.inductiveautomation.com/t/providing-default-value-for-non-persistent-bindings/108390/4 "2025-07-11T20:08:01Z")

</div>

Get rid of the transform. They have latency. Put the coalesce on the label's visibility expression. (And set that visible prop to non-persistent.)

---

<div class="post-metadata">

**Author:** ![Ryan\_Deardorff](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ryan_deardorff/32/63815_2.png) [@Ryan\_Deardorff](https://forum.inductiveautomation.com/u/Ryan_Deardorff)\
**Post date:** [July 11, 2025, 8:22pm UTC](https://forum.inductiveautomation.com/t/providing-default-value-for-non-persistent-bindings/108390/5 "2025-07-11T20:22:43Z")

</div>

> [@pturmel](#):
>
> Get rid of the transform.

That doesn't fix it, the label still shows. I had only added it hoping to fix the problem.

> [@pturmel](#):
>
> Put the coalesce on the label's visibility expression. (And set that visible prop to non-persistent.)

Unless I'm misunderstanding, that's already what I had (my second screenshot).

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [July 11, 2025, 8:24pm UTC](https://forum.inductiveautomation.com/t/providing-default-value-for-non-persistent-bindings/108390/6 "2025-07-11T20:24:53Z")

</div>

You need both the custom prop and the visible prop to be non-persistent.

---

<div class="post-metadata">

**Author:** ![Ryan\_Deardorff](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ryan_deardorff/32/63815_2.png) [@Ryan\_Deardorff](https://forum.inductiveautomation.com/u/Ryan_Deardorff)\
**Post date:** [July 11, 2025, 8:28pm UTC](https://forum.inductiveautomation.com/t/providing-default-value-for-non-persistent-bindings/108390/7 "2025-07-11T20:28:29Z")

</div>

They are:

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/e/e/ee3a0faf0c25d9d72fc03df3e900b968bf2f72fe.png)  
 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/3/2/325384c37937891c53dcf0ff400c332e7d3c91c9.png)

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [July 11, 2025, 8:29pm UTC](https://forum.inductiveautomation.com/t/providing-default-value-for-non-persistent-bindings/108390/8 "2025-07-11T20:29:56Z")

</div>

Hmm. Stumped.
