Select to view content in your preferred language

Calculation Mode Changes in Survey123 web app (v3.25)

718
5
4 weeks ago
JodyZhengLiu
Esri Contributor
3 5 718

Overview

Starting with ArcGIS Survey123 web app v3.25 (March 2026), the web app now fully supports the 'calculationMode' parameter defined in XLSForms. This update aims to align the web app’s calculation behavior with the field app, providing a consistent experience across the platform and preventing accidental data overwrites when editing existing records.

 

Core change: Shift in default calculation behavior

Prior to version 3.25, the web app ignored the calculation mode parameter and effectively treated all calculations as "Always." The new version introduces a significant shift in default behavior:


VersionDefaultDescription
v3.24 and earlierAlwaysCalculations update automatically whenever a referenced field changes, potentially overwriting previously submitted data without warning.
v3.25 and laterAutomated (Auto)(Default) Calculations do not automatically run when editing existing records to protect data integrity. A "Calculate" icon appears if a change is detected, requiring a user click to update the value.

 

Supported calculation modes

You can now explicitly control calculation behavior by setting the calculationMode parameter in the bind::esri:parameters column of your XLSForm. The following modes are supported:

  • Always: Calculations are reactive and immediate. The field will automatically update whenever any referenced input changes, regardless of whether you are submitting a new record or editing an existing one.
  • Automated (Auto): This is the default behavior.
    • In Submit mode (new records): It functions like "Always," where calculation expressions are evaluated whenever any of the inputs in the calculation expression change.
    • In Edit mode (existing records): It protects existing data. If a referenced input changes, the field will not overwrite the stored value automatically; instead, a button appears, allowing the user to manually trigger the update.
  • Manual: Calculations are never triggered by input changes. The field remains static until the user explicitly clicks the "Calculate" button to evaluate the expression.
  • WhenEmpty: The calculation logic only triggers if the field is currently null or empty. If the field already contains a value, the calculation is bypassed, preserving the existing data.

 

Solutions: Restoring legacy behavior

For users—such as those managing ArcGIS Solutions—who wish to maintain the "Always Calculate" behavior without republishing existing surveys, the following options are available:

1. Updating the XLSForm (Recommended)

For new projects or surveys that can be updated, you can preserve the legacy behavior by explicitly setting the mode in the XLSForm:

  • Column: bind::esri:parameters
  • Value: calculationMode=always

2. Using recalculate=all via URL

To address the breaking change in v3.25, the recalculate URL parameter has been enhanced to act as a global override.

  • Parameter: &recalculate=all
  • Effect: Appending this to the survey URL forces all questions to use calculationMode=always.
  • Availability: Now supported in both Submit (new records) and Edit modes.
  • Benefit: Restores the v3.24 experience instantly without requiring a survey republish.
Tags (1)
5 Comments
LindsayRaabe_FPCWA
MVP Regular Contributor

Interesting. I've found this because it seems the WebApp is still not honouring the WhenEmpty option. I've published a survey from Survey123 Connect (3.25.27) to ArcGIS Online, and when using the survey with existing records via the Experience Builder widget, empty values are not recalculating (unless I expose the field and make editable so the user can click the recalculate button). Bottom line in the below screenshot (issuing_officer). 

LindsayRaabe_FPCWA_0-1781579787535.png

Example feature selected with empty value:

LindsayRaabe_FPCWA_3-1781580203414.png

Recalculate option doesn't even show up unless I start typing in the box:

LindsayRaabe_FPCWA_2-1781580092666.png

 

 

LindsayRaabe_FPCWA
MVP Regular Contributor

Also just tested in the standalone webapp editing a feature with an empty field. Same outcome. 

LindsayRaabe_FPCWA_0-1781581992768.gif

 

JodyZhengLiu
Esri Contributor

Hi @LindsayRaabe_FPCWA, thank you for reaching out. We are investigating the issue you described and will update you shortly.

JodyZhengLiu
Esri Contributor

Hi @LindsayRaabe_FPCWA, is the question set to not submit the answer? Is it possible to share the XLSForm so we can reproduce the issue in-house? You can send it to me at [email protected].


Thanks,
Jody Zheng Liu

SerjStol
Frequent Contributor

calculationMode=whenEmpty is not working for us either in Survey123 Connect, published to ArcGIS Online, latest version 3.25.27. Updated the form template as well and republished the survey form from Connect. The form is then consumed in Survey Widget in Experience Builder App. The calculation is also within a repeat group. We tried whenEmpty or leaving as default (auto) and the calculation does not get executed at all when it should. Only settings calculationMode=always works but then it overwrites existing value in the field when survey is re-opened.

It is quite critical for us since without it we would need to rethink the logic of the form as otherwise we hit the circular logic error. We need to preserve the current value when the form opens, so the calculation should run only when the field is empty.