Help & Documentation

Learn how to use StructureGram

Snapshot Filtering (Temporal Views)

The snapshot filter is the diagram's time control. It decides which entities, relationships, and distributions belong to the slice of time you want to see. This page is the full reference — if you just want to drive it, start at How to Use Snapshots instead.

1. Why this exists

Ownership structures move. Directors come and go. Trustees change. Shares are issued and transferred. Group members join and leave. A diagram that ignored dates would always show the union of every past, present, and future arrangement piled on top of itself.

The snapshot filter lets you ask the diagram a specific question:

  • "What did this structure look like as at today?"
  • "What did it look like on 30 June last year?"
  • "What does it look like through the FY2025 income period?"
  • "What entities exist anywhere in the timeline, with no date filter at all?"

2. The mental model: a window over a timeline

Every snapshot is a window — an interval on the timeline — with each bound optional. There are five possible shapes:

ShapeWindowTrigger labelMeaning
Today (live)[today, today]As at todayPoint-in-time as at today. Recomputed every time the diagram loads. The default.
From only[From, ∞)From dateEverything in existence at any time from that date onward (including future-dated).
Until only(−∞, Until]Up to dateEverything in existence at any time up to that date.
From + Until (range)[From, Until]Date rangeEverything whose lifetime overlaps the window.
From + Until (same day)[D, D]As at datePoint-in-time as at that day.
All datesunboundedAll datesNo temporal filter. Every entity and relationship in scope.

An entity or relationship is included when its own lifetime (also possibly open-ended) overlaps the window. That single rule is the whole filter.

3. The overlap rule

Each item has a lifetime defined by two optional bounds:

  • Relationships: start date and end date.
  • Entities (standalone): group join date and group exit date.
  • Distributions: a single distribution date (treated as [date, date]).

An item is in the snapshot when:

itemStart ≤ windowEnd  AND  itemEnd ≥ windowStart

A missing bound on either side is treated as ±∞ — i.e., open-ended.

Worked examples (window = 1 Jan 2024 → 30 Jun 2024)

Item lifetimeIn window?Why
2020-01-01 → null (still open)Open-ended overlaps
2024-03-01 → 2024-04-01Fully inside
2020-01-01 → 2024-02-15Tail overlaps the window start
2024-06-15 → nullHead overlaps the window end
2020-01-01 → 2023-12-31Ended before window
2024-07-01 → nullBegins after window

Worked examples (window = From 1 Jan 2024 only)

Item lifetimeIn window?Why
2023-01-01 → nullOpen-ended; reaches into the window
2030-06-01 → nullFuture-dated; window is open on the right
2020-01-01 → 2023-12-31Ended before window

Worked examples (window = Up to 1 Jan 2024 only)

Item lifetimeIn window?Why
2010-01-01 → 2015-01-01Window is open on the left
2000-01-01 → nullStill open through the window
2025-01-01 → nullBegins after window

4. The two toggles

These checkboxes sit at the bottom of the popover and apply immediately on change. They are disabled in All dates mode (where the filter is inert).

Include undated

What it controls: items that have no dates at all on either end of their lifetime.

Item typeInclude undated = ONInclude undated = OFF
Relationship with no start and no endAlways shown (treated as in-scope)Always hidden
Standalone entity with no group join and no group exit dateEligible to remain on canvasExcluded by date and moved to stencil (disabled with camera icon)
Distributionn/a — every distribution has a date by definitionn/a

Default: on. Practical effect: with this off, your diagram only shows relationships that have been given proper appointment / cessation dates.

Hide disconnected entities

What it controls: entities that survive their own date check but have no visible relationships within the snapshot window.

SettingEntity treatment
On (default)Disconnected entities are moved to the stencil as draggable orphans (camera icon). The canvas only shows entities that have at least one visible relationship in the window (plus the focal entity and any manually-placed entities).
OffDisconnected entities remain on the canvas if their own group-membership dates are valid for the window.

Tip: leave this on for clean structure views; turn it off when you want to confirm an entity is in scope even though no in-period relationships connect it.

5. Where snapshot interacts with other diagram filters

A diagram has three independent ideas of "scope":

FilterQuestion it answers
Entity filter (scope)Which entities are even eligible to be drawn? Set under Diagram Scopes / Focus Entity.
Stencil placementOf the eligible entities, which are on the canvas vs. parked in the stencil for manual placement?
Snapshot (this page)Of what's eligible, which slice of time do we show?

These compose, in order. The snapshot does not override the entity filter — if an entity is not in scope, the snapshot can never bring it back. The locked product rules are:

  1. All content is filtered by the snapshot. Canvas, edges, in-node detail rows, and synthetic role nodes are all filtered through the same overlap rule.
  2. Out-of-scope entities are completely excluded. They do not appear in the canvas, the stencil, or any node's content.
  3. In-scope but stencil-hidden entities still appear inside other nodes' content (e.g., a hidden director still appears in the parent company's node-content director list), provided the snapshot includes them.

Interaction matrix

Entity in filter scope?On canvas?In snapshot window?Result
Non/an/aHidden everywhere (canvas + stencil + node content)
YesYesYesDrawn on the canvas
YesYesNo, excluded by own datesMoved to stencil as disabled (camera icon, can't drag)
YesYesNo, disconnected (and Hide disconnected = on)Moved to stencil as draggable orphan (camera icon)
YesNo (hidden in stencil)YesStill appears inside other nodes' content (e.g., as a listed officeholder)
YesNo (hidden in stencil)NoHidden everywhere

6. How relationships, distributions, and node content are filtered

Canvas relationships

  • A relationship is shown if its lifetime overlaps the window (see Section 3).
  • Relationships with no dates follow the Include undated toggle.

In-node detail rows (officeholders, beneficiaries, named shareholders, etc.)

The same rule applies to every detail row inside a node:

  • A row is shown if its relationship's lifetime overlaps the window.
  • The target person/entity must also be in the entity filter scope (rule 2 above).
  • Undated rows follow the Include undated toggle.

A former director with a cessation date earlier than the window will not appear in the company's directors list. A current director who hasn't been given an appointment date will appear if Include undated is on, and disappear if it's off.

Distributions

  • A distribution is a point-in-time event. It appears if its distribution date falls inside the window.
  • Distributions are unaffected by Include undated (they always have a date) and by Hide disconnected (they sit on relationships, not entities).
  • Distribution rendering still requires the Distributions link toggle under Diagram Settings.

Synthetic role nodes (e.g., grouped beneficiaries)

Treated the same as in-node content: filtered by snapshot and by entity-filter scope.

7. Stencil visual cues

CueMeaning
Camera icon, greyed/disabledEntity is in scope but excluded by its own group join/exit dates. You can't drag it onto the canvas while this snapshot is active.
Camera icon, draggableEntity is in scope and date-valid, but has no relationships in this window. Drag it back to the canvas to override.
Eye-off iconEntity was manually hidden from the canvas by the user. This is unrelated to the snapshot filter.

8. Defaults and persistence

SettingNew diagram defaultStored as
Modelive (today)mode: 'live' (recomputed each load)
Include undatedOnincludeUndated: true
Hide disconnected entitiesOnhideDisconnectedEntities: true
From / Until datesnonestartDate / endDate (ISO yyyy-mm-dd)

The mode 'live' is intentional: it lets the diagram re-resolve to "today" every time it loads, rather than locking onto the day you first opened it.

Selecting All dates is also persisted (as mode: 'all') so the diagram remembers your preference across reloads.

9. Performance and limits

  • Snapshot filtering runs entirely client-side over the relationships and entities already loaded for the diagram. There is no extra network round-trip per snapshot change.
  • Switching between Today (live) and All dates is effectively free; pinning a date triggers a graph re-sync to update stencil placement.
  • Diagrams in scenario mode use the scenario's own snapshot setting, which can be inherited from the base diagram (see Scenario Settings).

10. Edge cases

SituationBehaviour
You set From > UntilApply is disabled with an inline error.
You set From only with a date in the futureWindow is [future, ∞) — only entities/relationships active on or after that date are shown. Useful for previewing a planned restructure.
Focal entity has dates that exclude itThe focal entity is always shown regardless of its own dates or the window. It's the anchor of the diagram.
Entity is manually placed on the canvasIt's exempt from the "disconnected → stencil" rule (Hide disconnected does not move it). Its own date exclusion still applies.
Relationship has no end dateTreated as ongoing (+∞). Always passes the right-side overlap check.
Relationship has no start date but has an end dateTreated as (−∞, end]. Always passes the left-side check; right-side check uses the end date.
Snapshot in a scenarioScenarios may inherit the base diagram's snapshot or define their own — see Scenario Settings.

11. Related topics