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:
| Shape | Window | Trigger label | Meaning |
|---|---|---|---|
| Today (live) | [today, today] | As at today | Point-in-time as at today. Recomputed every time the diagram loads. The default. |
| From only | [From, ∞) | From date | Everything in existence at any time from that date onward (including future-dated). |
| Until only | (−∞, Until] | Up to date | Everything in existence at any time up to that date. |
| From + Until (range) | [From, Until] | Date range | Everything whose lifetime overlaps the window. |
| From + Until (same day) | [D, D] | As at date | Point-in-time as at that day. |
| All dates | unbounded | All dates | No 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 lifetime | In window? | Why |
|---|---|---|
| 2020-01-01 → null (still open) | ✅ | Open-ended overlaps |
| 2024-03-01 → 2024-04-01 | ✅ | Fully inside |
| 2020-01-01 → 2024-02-15 | ✅ | Tail overlaps the window start |
| 2024-06-15 → null | ✅ | Head overlaps the window end |
| 2020-01-01 → 2023-12-31 | ❌ | Ended before window |
| 2024-07-01 → null | ❌ | Begins after window |
Worked examples (window = From 1 Jan 2024 only)
| Item lifetime | In window? | Why |
|---|---|---|
| 2023-01-01 → null | ✅ | Open-ended; reaches into the window |
| 2030-06-01 → null | ✅ | Future-dated; window is open on the right |
| 2020-01-01 → 2023-12-31 | ❌ | Ended before window |
Worked examples (window = Up to 1 Jan 2024 only)
| Item lifetime | In window? | Why |
|---|---|---|
| 2010-01-01 → 2015-01-01 | ✅ | Window is open on the left |
| 2000-01-01 → null | ✅ | Still open through the window |
| 2025-01-01 → null | ❌ | Begins 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 type | Include undated = ON | Include undated = OFF |
|---|---|---|
| Relationship with no start and no end | Always shown (treated as in-scope) | Always hidden |
| Standalone entity with no group join and no group exit date | Eligible to remain on canvas | Excluded by date and moved to stencil (disabled with camera icon) |
| Distribution | n/a — every distribution has a date by definition | n/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.
| Setting | Entity 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). |
| Off | Disconnected 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":
| Filter | Question it answers |
|---|---|
| Entity filter (scope) | Which entities are even eligible to be drawn? Set under Diagram Scopes / Focus Entity. |
| Stencil placement | Of 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:
- 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.
- Out-of-scope entities are completely excluded. They do not appear in the canvas, the stencil, or any node's content.
- 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 |
|---|---|---|---|
| No | n/a | n/a | Hidden everywhere (canvas + stencil + node content) |
| Yes | Yes | Yes | Drawn on the canvas |
| Yes | Yes | No, excluded by own dates | Moved to stencil as disabled (camera icon, can't drag) |
| Yes | Yes | No, disconnected (and Hide disconnected = on) | Moved to stencil as draggable orphan (camera icon) |
| Yes | No (hidden in stencil) | Yes | Still appears inside other nodes' content (e.g., as a listed officeholder) |
| Yes | No (hidden in stencil) | No | Hidden 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
| Cue | Meaning |
|---|---|
| Camera icon, greyed/disabled | Entity 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, draggable | Entity is in scope and date-valid, but has no relationships in this window. Drag it back to the canvas to override. |
| Eye-off icon | Entity was manually hidden from the canvas by the user. This is unrelated to the snapshot filter. |
8. Defaults and persistence
| Setting | New diagram default | Stored as |
|---|---|---|
| Mode | live (today) | mode: 'live' (recomputed each load) |
| Include undated | On | includeUndated: true |
| Hide disconnected entities | On | hideDisconnectedEntities: true |
| From / Until dates | none | startDate / 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
| Situation | Behaviour |
|---|---|
| You set From > Until | Apply is disabled with an inline error. |
| You set From only with a date in the future | Window 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 it | The 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 canvas | It's exempt from the "disconnected → stencil" rule (Hide disconnected does not move it). Its own date exclusion still applies. |
| Relationship has no end date | Treated as ongoing (+∞). Always passes the right-side overlap check. |
| Relationship has no start date but has an end date | Treated as (−∞, end]. Always passes the left-side check; right-side check uses the end date. |
| Snapshot in a scenario | Scenarios may inherit the base diagram's snapshot or define their own — see Scenario Settings. |
11. Related topics
- How to Use Snapshots — task-oriented walkthrough
- Snapshot Filtering FAQ — troubleshooting
- Diagram Scopes — controlling which entities are eligible to draw
- Focus Entity — how the focal entity affects scope
- Distributions — how distribution dates interact with snapshots
- How to Create Relationships — putting dates on relationships so snapshots can use them