Why Analytics Breaks Under Change (and How Visier’s Subject Model Helps)

Back to the Engineering Blog index Visier Developer Docs

Visier has achieved significant financial success, but this series is not about the business story. It’s about the technical decisions that make Visier different, especially how we handle constant change in real‑world data.

Modern organizations live in a state of flux:

Most traditional BI/ETL stacks were not built for this reality. They typically:

Visier was founded with a different goal:

Deliver analytics as a flat‑rate product, not as an open‑ended consulting engagement, by building technology that absorbs the cost of change.

To get there, we made some foundational choices: a subject‑ and time‑centric data model, an event‑driven ingestion layer, and a temporal, object‑based analytics engine. In this first part, we’ll focus on the data model.


A Subject‑ and Time‑Centric Data Model

Visier’s data model revolves around subjects.

Subjects: Real‑World Entities, Not Rows

A subject is a real‑world entity you want to analyze:

Each subject has:

Instead of designing around tables and rows from each source system, we think in terms of:

“What is this subject? What are the properties we care about? How do they evolve over time?”

Subject- and time-centric data model: subjects, properties, and time as first-class dimensions

Figure 1: The subject-centric view—real-world entities with properties and relationships, modeled over time.

Time as a First‑Class Dimension

Every subject has a time aspect:

Each of these changes corresponds to an event. Those events are modeled by the data we load into the system.

Crucially:


Why Traditional ETL Struggles Here

Consider an organization with multiple systems, a very common situation. There are often multiple core HR systems (e.g., different systems by region, or legacy and new HR coexisting), not only systems covering different domains:

A typical ETL‑centric approach:

  1. Extracts rows from each system.
  2. Joins them into a warehouse schema.
  3. Keeps a mostly current‑state view, with maybe some slowly changing dimensions.

The problems:

Traditional ETL vs. multi-source, time-varying reality

Figure 2: Why traditional ETL struggles—multiple sources, different cadences, and current-state focus lead to fragile pipelines.

The result: high maintenance cost and fragile analytics whenever the real world changes.


From Rows to States and Events

Visier takes a different approach:

This leads to a few key principles:

  1. Schema‑agnostic mapping
    • We identify data in source files and map it to properties on analytic subjects.
    • Concepts like “row from table X” matter less than:
      • “This field sets employee.location from date D,” or
      • “This sets employee.placement_type and thus might affect promotion logic.”
  2. Events → States
    • We record events (hiring, transfers, salary changes) and derive states over time:
      • e.g., “Employee was at Job Level 3 from 2022‑01‑01 to 2023‑03‑10, then Job Level 4.”
  3. Handling corrections and restatements
    • If a source system corrects an earlier record, we can:
      • Ingest the correction as another event,
      • Re‑derive the subject’s history accordingly.
  4. Decoupling from source schemas
    • Business rules are defined in terms of subject properties, not specific source columns.
    • When schema changes, you don’t have to rewrite every SELECT/INSERT in the pipeline.

Events, states, and schema-agnostic mapping

Figure 3: From rows to states and events—schema-agnostic mapping keeps business rules independent of source structure.


Business Rules Without Schema Lock‑In

A concrete example:

“Set employee.last_promotion_date when the placement type changes from A to B.”

In many ETL setups, that logic is embedded in SQL tied to table and column names. If the schema changes, someone has to update the SQL everywhere that logic appears.

In our approach:


Where This Series Goes Next

This first part described:

In Part 2, we’ll dig into:

Return to the Engineering Blog index for the latest posts.