aai agency logo
Newsletter header images

Document Properties in Spotfire

October 1, 2025

Choose Your Learning Style

Select an option to view the article tailored to your learning style

  • Technical

    For those who want to dive deep into the technical details

  • Curious Learner

    For those who want to understand the big picture

  • Short on Time

    Few minutes read that gives you the high-level points


Technical TLDR:


You can watch the full tutorial video below.


  • Document Properties in Spotfire: Document properties act as global variables in Spotfire. They are values you define once and can reference throughout your dashboard.


  • Dynamic Inputs: These properties can be used in text areas, calculated columns, custom expressions, data limiting expressions, chart titles, and more.


  • String Property Gotcha: When using a string document property inside an expression or calculated column, make sure to wrap it in quotes. This avoids a very common error.


  • Driving Logic With Properties: Document properties can trigger IronPython scripts or be passed into Data Functions. This allows you to build app-like logic directly inside Spotfire.



Spotfire Document Properties: Your Dashboard’s Hidden Superpower


If you have been using Spotfire for a while, you already know how flexible it is. But there are parts of the platform that most people never touch. Document properties are one of those features.

Most users recognize the menu, but very few realize how powerful these properties can be once you start using them the right way. They are often the difference between a static dashboard and something that feels more like an interactive internal application.


This is the first part of a larger series on advanced Spotfire capabilities. Today we are starting simple with document properties. They are the foundation that makes the more advanced features possible.


Think of a document property as a variable. It is just a value you store that Spotfire can reference in many different areas.



What Document Properties Actually Are


A document property is a typed value stored inside your analysis.

You can create them under:


File → Document Properties → Properties


Assign a name, choose a type such as string, integer, real, currency, date, or boolean, give it a default value, and you are set.


Once the value exists, you can use it in:

  • Calculated columns
  • Custom expressions
  • Data limiting expressions
  • Text areas
  • Chart titles
  • Python or R data functions
  • IronPython scripts
  • Config or admin tabs that control your entire dashboard


This creates a single source of truth that your visuals and logic can reference.



Using Document Properties in Calculated Columns


Here is an example. Say you create a numeric document property called number with a default value of 10.


In a calculated column expression, you can write:

[BOE] * ${number}


Your production data is now scaled by whatever value the user enters. You can duplicate a visualization, bring in the new column, and immediately see the difference.


Change 10 to 2.2 or 0.8, and the visual updates in real time.


This is useful for:

  • Unit conversions
  • Sensitivity analysis
  • Quick “what-if” scenarios
  • Scaling decline curves
  • Rapid prototyping


You can expose the value in a text area so users can change it without touching the calculation.



String Properties: The Gotcha Everyone Runs Into


Numbers are straightforward. Strings require one extra step.

Let’s say you have a string document property called string and you write this:

[Well Name] = ${string}

Spotfire returns an error that does not make much sense. Why does this happen?


Spotfire needs the property wrapped in quotes before it treats it as a literal string value.


The correct form is:

[Well Name] = "${string}"


The quotes convert the value into a literal string that Spotfire can compare. This is the most common mistake people run into when working with document properties. Once you know this rule, things start clicking.



Custom Filters Using Document Properties


Once you have the string property working, you can create custom filters that update instantly.

For example:


[Well Name] = "${string}"


This creates a column of TRUE or FALSE values depending on what the user typed into the text area.


This pattern gives you:

  • Custom search fields
  • Quick well lookups
  • User-driven filter logic
  • Exact or fuzzy match filtering
  • Cleaner dashboards without dozens of filter panels


It is a simple pattern that opens up a lot of flexibility in your workflows.



Using Document Properties in Data Limiting Expressions


Anywhere you can write an expression, you can reference a document property.


For example:

[Well Name] = "${string}"


This lets you limit data at the visual level based on user input. It is an easy way to build dynamic views without relying on the traditional filter panel.


Other common uses include:

  • Switching between data subsets
  • Filtering by time periods
  • Applying user-selected thresholds
  • Creating advanced toggles inside a single visualization


It keeps your interface clean and gives your users more control.



Dynamic Titles Using Document Properties


One of the most overlooked features is using document properties to control chart titles.

Say your property string is set to October 2025.


In the title field for a visual, you can write:

Monthly Report – ${string}


Now your visual displays “Monthly Report – October 2025.”


Change the value in the text area, and every referenced visual updates automatically.

This is perfect for:

  • Admin or config tabs
  • Automated monthly reporting
  • Reusing dashboards across multiple periods
  • Reducing manual title edits across dozens of charts


It adds a clean, professional touch to your dashboards.



Passing Document Properties Into Data Functions


Document properties can act as inputs to Python or R data functions. This is where things become very powerful.


You can pass in values such as:

  • Economic assumptions
  • BOE factors
  • Operating costs
  • Thresholds
  • Toggle values
  • User-defined inputs


Inside the script, you can run whatever logic you need.

This lets you:

  • Run economics
  • Make API calls
  • Shape or clean data
  • Trigger custom calculations
  • Build rapid internal tools


Document properties become the bridge between user inputs and your backend logic.



Triggering IronPython Scripts When Properties Change


Document properties can also trigger IronPython scripts whenever the value changes.

This allows you to:


  • Switch between light and dark themes
  • Show or hide specific layers in a map
  • Update layout sections
  • Run advanced analysis once inputs are ready
  • Adjust visuals programmatically

It works like an event listener. Whenever the value changes, the script fires.

Even a simple “Hello World” example shows how it works. Real dashboards often use this to create app-like behavior.



Performance Considerations


Document properties update instantly, but keep these notes in mind:

  • Recalculating across millions of rows can slow things down
  • Chained calculated columns compound the cost
  • Avoid overusing document properties inside heavy expressions


Used in the right places, they perform very well. Just be mindful of where they fit in larger datasets.



Wrapping Up


Document properties are one of the most underrated features in Spotfire. They seem simple at first, but once you start using them, they unlock:


  • Dynamic calculated columns
  • Custom expressions
  • User-driven filters
  • Data limiting expressions
  • Dynamic titles
  • Data function inputs
  • IronPython script triggers
  • Theme switches
  • Admin-control panels
  • App-like functionality


If you ever feel limited by what Spotfire allows out of the box, document properties are usually the path forward.


This is the first part of a deeper series. We will cover custom expressions, over functions, data functions, and IronPython in upcoming pieces.


If you want help designing internal Spotfire tools or leveling up your dashboards, feel free to reach out at info@aai.agency.