The data platformAgents can read
Declare your sources, your business and your metrics. Daana generates the platform, and every layer stays readable to people and their agents.
Need help building your data platform? Free assessment →01 Model02 Generate03 AskScroll ↓︎The Daana CLI overview film
The hand-written layers of a data platform collapse into two declared files, a model and a mapping. Everything else is generated.
- Model your business: entities, their attributes and the relationships between them, declared in YAML.
- Generate: daana-cli deploy and daana-cli execute generate the warehouse, and marts are generated from dar specs.
- Ask: an agent answers a question about history, reading the definitions from the model.
Model. Generate. Ask.
The parts you'd hand‑write,
already handled.
Every warehouse needs these, and every team builds them again. In Daana they come from the model, the same way every time.
- // 01
Model once, generate everything
Declare entities, attributes and relationships in YAML and map your sources to them. Daana generates the tables, a current and a history view per entity, and a view for every relationship. No schema copied across dbt models or stored procedures.
daana-cli deploy - // 02
History is first-class, not bolted on
Mark an attribute with effective_timestamp and every change is kept, with a point-in-time function per entity. No SCD-2 plumbing, no "do we add valid_from this time?"
effective_timestamp: true - // 03
Multiple IDs are reality, not edge cases
A customer has an email, a customer number and a partner reference. Daana keeps up to five identifiers per entity and resolves them to one stable key, instead of making you pick the one true key and hack around it later.
allow_multiple_identifiers: true - // 04
Load strategies you can explain at 3am
Four ways in: FULL for current state, FULL_LOG for history, INCREMENTAL for rows that change, TRANSACTIONAL for events that never do. Pick one per source and move on.
FULLFULL_LOGINCREMENTALTRANSACTIONAL - // 05
Merge, don't nuke
Your model evolves. Merge brings the mappings up to date: new attributes arrive with placeholders, removed ones go, and your transformation expressions, table settings and where clauses stay. A backup is written first.
daana-cli merge - // 06
Definitions live with the data
Deploy writes every definition into your own warehouse, next to the data it describes. People and agents read what a field means instead of guessing it.
daana_metadata
CI/CD without surprises
Check validates the model, mappings, workflow and connections before anything deploys. Generation is deterministic: the same model produces the same SQL, so every pull request shows exactly what will change.
daana-cli check3-Layered
Architecture
Describe your sources, define your business concepts, and declare your metrics. Daana connects the layers and generates the pipelines. Every layer is a declaration, so the whole platform is something you, and your agents, can read.
Semantic lineage Technical lineage
Connected data. Connected context. Knowing where a field came from is only part of the picture. Daana connects the data path with definitions at every layer, so humans and agents can understand both how data moves and what it means. This is the map an agent walks.
From source to metric, through DAS, DAB and DAR
Illustrative example · subscription lifecycleDAS · Data contract
What does the source mean?
The state the accounts service gave the account. DISABLED, since 2020: blocked by support or billing, no login. CLOSED_BY_USER, since last year: the user closed it in the app.
account_state_changed
new_state
ACTIVE · DISABLED · CLOSED_BY_USER
Contract field · STRING · REQUIRED
DAB · Business model
What does the business mean?
Where the customer's subscription stands. ENDED: no access and no billing, however the account was closed.
SUBSCRIPTION
subscription_status
DISABLED → ENDED
CLOSED_BY_USER → ENDED
Mapped from new_state · effective at the source event time
DAR · Metric definition
What is churn?
Subscriptions that ended in the month. Each counts once, in the month its status became ENDED.
fct__subscription_event
Monthly churn
Event count · grouped by event month
Ask an agent why churn looks low on a given day, and it walks both lineages back: from the metric's definition to the business's to the source's, checking at every step what each layer means and where its data comes from. Read how that played out in a real standup →
Talk to your
data platform
Every "talk to your data" demo stops at the chart. Here the agent keeps going: asked why a number looks wrong, it walks back through every layer that made it, reading what each one means and where its data comes from, until it finds the one that broke.
[ HUMAN ]
Why is revenue so low on the 4th?
[ AGENT ]
It isn't slow sales. Orders are missing.
Walked back
- Checked: DAR Daily revenueDefinition unchanged.
- Checked: DAB order_line.
order_line_amountThe mapping drops no line. - Checked: DAS sales_ordersorder_date against ingested_at: lost, not late.
- Failed: Landing Shop databaseNo orders landed for 6h40m. The connector stalled overnight.
Reload the window; the next normal run repairs the rest.
No code read.Every step answeredby a declaration.
That was one walk. Every question about the platform, from you or your agents, is one of three.
Walk back
Understand a metric. Trace a number through its business definition, mapping, and source contract.
Walk forward
Assess a change. Follow the connections to see which business concepts and metrics depend on a source field.
Compare
Diagnose a mismatch. Compare the definitions, mappings, and run history to locate what needs correcting.
Don't take our word for it. Ask your agent.
Give the agent you already use this question about your own platform:
Our revenue looks low for last Tuesday. Walk from the dashboard metric back to the source system. At each step, tell me what the data means and where it comes from, and show me where you found it.
Count how often it had to read code, or guess. With Daana, every one of those answers is a declaration.
Agents can read what Daana is at daana.dev/llms.txt, including the declarations behind the example above.
BETA
Less time reconstructing the platform. More time building and operating it.
Role
Data Engineer
Analytics Engineer
Platform Lead
Other
Favorite Platform
DuckDB
BigQuery
Snowflake
Microsoft Fabric
Postgres
Other
Need help building your data platform?
We'll spend time with your data team, understand where you are and where you want to go, and come back with a roadmap. What to build, in what order, and why.