compile_events · live
awaiting first compile…
Comparison · Flatland vs.

Flatland vs.
dbt.

dbt rebuilt analytics on a typed transformation graph and named the category “analytics engineering.” Flatland is doing the same for financial reasoning. Different graph, different artifact, same architectural argument: the typed compile layer is the right place to do this work.

dbt · founded 2016 (as Fishtown Analytics) · the analytics-engineering category leader · dbt Core is Apache-2.0 open source, dbt Cloud is the paid managed surface. · Flatland · 2026 · MCP + REST · metered · typed IR for finance.

Specimen · the same architectural pattern, two domains
dbt · analytics graphmodels/fct_orders.sql
-- A dbt model declares a transformation
-- with typed columns, declared sources,
-- and tests as first-class assertions.

{{ config(materialized='table')  }}

select
  order_id::uuid,
  customer_id::uuid,
  order_total::numeric,
  order_status
from {{ ref('stg_orders') }}
where order_status != 'cancelled'

# schema.yml
tests:
  - not_null:
      column_name: order_id
  - unique:
      column_name: order_id

dbt's graph is data-flow: source tables → staging models → marts. Tests are first-class assertions. The compiler runs against your warehouse.

Flatland · finance graphdrivers + assertions in IR
# Flatland declares typed drivers
# with declared dependencies and
# assertions as first-class guardrails.

driver arr {
  category: "computed",
  type:     Currency(USD),
  formula:  "arpu * customers * 12",
  depends_on: [arpu, customers]
}

assertion burn_mult_ok {
  expression: "burn_multiple < 1.5",
  severity:   "structural"
}

 Currency / Count → Currency
 dependency graph resolved
 assertion checked at compile

Flatland's graph is reasoning-flow: assumptions → computed drivers → outputs. Assertions are first-class guardrails. The compiler runs in memory against the typed IR; no warehouse needed.

The architectural pattern is identical: name your nodes, declare their dependencies, add tests, let a compiler enforce the rules. dbt did it for SQL transformations on warehouse tables. Flatland is doing it for financial drivers and computed outputs. The category we're building toward stands to financial modeling as analytics engineering stands to dashboarding.

Diagnostic · 12 dimensions, honestlyanalog mapping
Dimension
dbt
Flatland
Note
Domain
analytics / SQL transforms
financial reasoning / IR
Different graphs. Same compile-the-DAG pattern.
Node abstraction
model (SELECT statement)
driver (typed assumption / formula)
Both are named, dependency-aware, recomputable nodes.
Type system
warehouse column types (Postgres / Snowflake / BigQuery)
Currency, Percentage, Count, Duration, Rate, custom
dbt inherits warehouse types. Flatland's types are domain-specific to finance.
First-class tests / assertions
data tests via YAML
assertions in IR
dbt's not_null/unique/relationships. Flatland's structural and rule assertions.
Compile target
your data warehouse
in-memory typed compiler
dbt compiles to SQL the warehouse runs. Flatland compiles to bindings + assertions in process.
Determinism
depends on warehouse + sources
✓ bit-identical from IR
dbt is as deterministic as the source data and warehouse are. Flatland's compile is fully deterministic from IR.
Open source core
✓ MIT (dbt Core)
dbt Core is OSS. Flatland is API + engine; IR open-sourcing is under council deliberation.
Authoring
analytics engineer in IDE
AI agent over MCP/REST
dbt is written by humans. Flatland is written by agents calling the API surface.
Documentation generation
✓ dbt docs
via IR JSON + Manifest
dbt's dbt docs is best in class. Flatland's IR is the source of truth; docs gen is roadmap.
Cloud paid surface
dbt Cloud · sub + seat
metered $0.10/answer
dbt Cloud is subscription with seats. Flatland is metered usage-based.
Category framing
analytics engineering
finance engineering
dbt named a category. We're trying to do the same, with full credit to that move.
Audience
data team
AI agents + finance engineers
dbt's primary user is a human analytics engineer. Flatland's primary user is an AI agent acting on a finance engineer's behalf.
When you should pick dbt instead

You're doing analytics. SQL transformations on a warehouse. Dashboarding, business intelligence, marketing attribution, customer 360. dbt is the tool; it's mature, open source, and the category leader. Flatland is not a dbt replacement and we are not trying to be.

When you should pick Flatland

You're doing financial reasoning. Forecasting, sensitivity, scenarios, models investors and auditors read. The graph isn't in your warehouse: it's in your business logic. Flatland is the typed compile layer for that.

dbt did this for analytics.
We're doing it for finance.

Try the substrate · sixty seconds

Compile a finance model
the way you'd compile a dbt graph.

Three questions. A typed compile. A real Excel export. The compiler is the source of truth; the workbook is one rendering of it.

Flatland · index of everything
© 2026 Flatland · made for systems of record · live pulse · awaiting first compile