Model Reuse: Freshness and Shared Models

How freshness settings and shared models reduce redundant app runs and compute costs.

🕐 Status: arriving with the SBT 1.0 rollout. These features apply to SBT 1.0 apps. You can prepare configurations now; the behavior activates as the rollout completes.

Today, every subscribing organization's app run recomputes everything, even when the source data has not changed, and even when other subscribers already computed identical outputs. Model reuse fixes both: freshness settings skip runs whose outputs are still current, and shared models compute once for all subscribers.

Freshness (max_age)

An optional setting on app configurations and model configurations:

max_age:
  count: 1
  period: day   # hour | day

When a run is requested, Insight Cloud checks the age of the existing output. If the age is at or past max_age, the run proceeds. If the output is fresher than max_age, the run is skipped. App-level skips are recorded with status skipped; skipped models still appear as tasks in the run view. Apps and models without max_age behave exactly as they do today.

Local testing note: local runs never skip on freshness. Freshness gating applies only to deployed runs, so you can iterate locally without fighting the gate.

Model types

Type

Computed

Parameters

Visibility

output

Per variant

Allowed

Public or private

mapping

Per subscriber organization

No

Public or private

shared

Once, for all subscribers

No

Always private

A variant is one saved configuration of an app. Its parameter values plus an optional run schedule. Shared model outputs live in the publisher's app database and are reused by every subscribing organization. The legacy type: data_mapping is still accepted and treated as mapping.

Force run

To re-run an app and refresh its data regardless of freshness, use the force option on the variant run API. This is API-only for now: there is no CLI flag and no in-product button. If an app contains shared models, only members of the publisher's organization can force a run.

Whether force runs get built into the platform depends on how often they're needed and why, so when you use the API for this, tell us what prompted it through Contact Us. That usage shapes the decision.

FAQ

What happens if I set no max_age anywhere? Nothing changes. Your app runs exactly as today.

Can a Beta app use these features? No. Freshness and shared models require the SBT 1.0 framework. See the SBT 1.0 App Migration Guide.

Related articles