Skip to content
MaatX
AI Analyticslight interfacedemo

SIGNAL

AI Business Intelligence Platform

Ask your business data questions in plain language.

Let anyone ask why a number moved and get an answer that names the segment responsible.

  • Semantic layer
  • Query compilation
  • Contribution analysis
  • Row-level policy
  • Forecast intervals

Natural-language analytics over a governed semantic layer, with anomaly detection and forecasting that explain themselves rather than just alerting.

SIGNAL
SIGNAL, ai business intelligence platform — product interface
Product overview

What the product is built around.

SIGNAL puts a governed semantic layer between the question and the warehouse. Metrics are defined once, so the model composes from validated definitions rather than guessing at table joins. Answers arrive with the query that produced them, the segments that drove the change, and a path to investigate further.

Semantic layer, not text-to-SQL

The model selects from defined metrics and dimensions. It cannot invent a join, because it never writes raw SQL against raw tables.

Answers explain the change

A movement is decomposed by contributing segment with the effect quantified, so the answer is a diagnosis rather than a restatement.

Every answer is reproducible

The generated query, the inputs and the semantic version are attached. Re-running an answer months later produces the same number or tells you why it cannot.

The problem

What makes this hard.

Every company has dashboards and still cannot answer 'why did revenue decline last week'. The dashboard shows that it declined. Finding out why means an analyst, a few days, and a definition argument about what revenue means. Text-to-SQL tools make this worse by generating plausible queries against the wrong tables.

  • 01

    Dashboards answer 'what' and never 'why'

  • 02

    Every team has a different definition of the same metric

  • 03

    Generated SQL is syntactically valid and semantically wrong

  • 04

    Anomaly alerts fire constantly and explain nothing

  • 05

    The analysis that mattered lives in someone's notebook, unreproducible

The solution

What the system does.

SIGNAL puts a governed semantic layer between the question and the warehouse. The model selects from validated metric and dimension definitions instead of writing SQL against raw tables, so it cannot invent a join. Answers decompose a movement by contributing segment, and the compiled query, inputs and semantic version travel with the answer so it can be reproduced.

  • The model composes from certified metrics, never authors raw SQL

  • Ambiguous questions are refused with options instead of answered arbitrarily

  • Movements decomposed by segment with the effect quantified

  • Row-level access injected into the compiled query, not filtered from results

  • Cost guards reject a query projected to scan beyond budget

Product interface

SIGNAL, as working interface.

Rendered UI, not a mockup — real tables, charts, filters and states. Try ⌘K for the command palette.

DEMO
SIGNALAsk
AnswerQueryContributionLineageForecastNEW

Revenue (7D)

$1.84M

−6.2% w/w

New customers

1,284

+4.1% w/w

Net revenue retention

108.4%

−1.8pp w/w

Open anomalies

4

2 explained automatically

Answer — contribution analysis

Why did revenue decline last week?

Retrieval trace

Resolved metric · revenue (semantic v42, owner: Finance)

Period · 2026-09-14 → 2026-09-20 vs prior 7 days

Decomposed across 6 dimensions · 214 segment combinations

Row-level permissions applied · EMEA-restricted rows excluded

Revenue fell 6.2% to $1.84M week over week, a decline of $121K 1. The movement is concentrated, not broad: 84% of the drop comes from one segment 2.

Self-serve annual plans in North America fell 31.4%, contributing −$101K. New-customer volume in that segment was flat, so the driver is conversion to annual rather than demand 2.

The proximate cause is a pricing-page experiment that started on 14 September and removed the annual discount badge. Annual plan selection in the exposed variant dropped from 34% to 12% 3.

Enterprise and EMEA self-serve were both slightly positive, which is why the aggregate decline understates the segment effect 2.

Sources

  • [1]metric: revenue · semantic layer v42owner Finance
  • [2]Contribution analysis · 6 dimensions214 segments
  • [3]experiment: pricing_page_annual_badgestarted Sep 14
Show the experiment's effect by dayWhat is the revenue impact if this continues 4 weeks?Which cohorts have not been exposed yet?

Contribution to change

$K
101K
SS-AN-NA
22K
SS-MO-NA
14K
ENT-NA
9K
SS-EMEA
4K
ENT-EMEA
6K
Other

Revenue — actual vs forecast

90D · daily
$1,842,400−$121K vs prior week · below forecast intervalprev period
JunJulAugSep

Generated query — semantic layer, not raw SQL

reproducible
-- semantic v42 · compiled, not authored by the modelSELECT  d.segment,  d.plan_term,  d.region,  {{ metric.revenue }}            AS revenue,  {{ metric.revenue.prior_period }} AS revenue_prior,  {{ metric.revenue.contribution }} AS contributionFROM {{ model.subscription_facts }} fJOIN {{ dim.customer }} d USING (customer_key)WHERE f.date BETWEEN '2026-09-14' AND '2026-09-20'  AND {{ policy.row_level_access }}   -- applied, not optionalGROUP BY 1, 2, 3ORDER BY contribution ASC;

Segment detail

FilterAll segmentsDecliningGrowingStatistically significant
SegmentRegionTermRevenueW/WContributionTrendSignal
Self-serveAnnualNorth AmericaAnnual$220,400−31.4%−$101.0KExperiment
Self-serveMonthlyNorth AmericaMonthly$412,800−5.1%−$22.2KRelated
EnterpriseAnnualNorth AmericaAnnual$684,200+2.1%+$14.1KNormal
Self-serveAll termsEMEAMixed$318,600+2.9%+$9.0KNot exposed
EnterpriseAnnualEMEAAnnual$164,200+2.5%+$4.0KNormal
Other / partnerMixedGlobalMixed$42,200−12.4%−$6.0KLow volume

Contribution sums to the −$121K aggregate change · row-level permissions applied to the asker

Anomaly feed

  • Annual plan conversion34% → 12% · explained by pricing experimentexplained
  • Revenue below forecast interval4 consecutive days outside 95% bandexplained
  • Support ticket volume spike+41% · correlated with pricing page changecorrelated
  • APAC activation drop−8.2% · no driver identified yetopen
  • Trial-to-paid stableWithin seasonal band · no actioncleared

Metric governance

Metric
revenue
Semantic version
v42
Owner
Finance
Definition
Recognised, net of refunds
Grain
day × customer × plan
Certified
Yes · reviewed Sep 01
Upstream models
4
Downstream uses
31 dashboards · 6 reports

Answer quality

eval suite
  • Metric resolution accuracy97.1%
  • Query correctness94.2%
  • Contribution accuracy92.4%
  • Refusal on ambiguity89.1%
  • Permission leakage0 / 2,800

Investigation path

  1. Recommendation draftedStep 5

    Suggest reverting the badge variant · projected recovery $98K/week

  2. Experiment correlatedStep 4

    pricing_page_annual_badge start date aligns to the inflection within 1 day

  3. Driver isolatedStep 3

    New-customer volume flat · conversion-to-annual is the moving variable

  4. Segment localisedStep 2

    84% of the decline in self-serve annual, North America

  5. Change detectedStep 1

    Revenue −6.2% w/w · outside the 95% forecast interval

Conversion to annual by week / region

W34W35W36W37W38
NANA W34 34NA W35 33NA W36 34NA W37 21NA W38 12
EMEAEMEA W34 31EMEA W35 32EMEA W36 31EMEA W37 32EMEA W38 31
APACAPAC W34 28APAC W35 29APAC W36 28APAC W37 28APAC W38 27
LATAMLATAM W34 24LATAM W35 25LATAM W36 24LATAM W37 25LATAM W38 24

Interface states

UI states

No metrics defined

Define your first metric in the semantic layer so questions resolve against governed definitions.

Define metricEmpty state
Decomposing across 214 segment combinations…
Loading state

Question is ambiguous

‘Revenue’ maps to three certified metrics (recognised, billed, bookings). Pick one rather than getting an arbitrary answer.

RetryAMBIGUOUS_METRIC
Error state
System architecture

How it is put together.

The semantic layer is the guardrail. The model composes from definitions; it never writes SQL against physical tables.

  1. 01

    Conversational UI

    Question entry, answer rendering, drill-down and dashboard composition.

    • Next.js
    • React
    • Streaming
  2. 02

    Question Planner

    Intent resolution, metric and dimension selection, ambiguity detection.

    • LLM
    • Structured output
    • Metric catalogue
  3. 03

    Semantic Layer

    Versioned metric definitions, grain, joins, ownership and certification state.

    • Semantic models
    • Version control
    • Lineage
  4. 04

    Query Compiler

    Compiles a semantic request to warehouse SQL with row-level policy injected.

    • SQL generation
    • Policy engine
    • Cost guard
  5. 05

    Analysis Engine

    Contribution decomposition, seasonality-aware detection and forecasting.

    • Python
    • Statistical models
    • Time series
  6. 06

    Warehouse

    Governed models over source systems with tested transformations.

    • Warehouse
    • dbt-style models
    • Tests

What the product does.

The capability set the demonstration is built around.

Natural-language analytics

Conversational questions resolved against a governed metric catalogue.

Semantic layer

Versioned metric and dimension definitions with ownership and lineage.

Dashboards

Composable boards built from the same definitions the assistant uses.

Anomaly detection

Seasonality-aware detection with contribution analysis attached to each alert.

Forecasting

Baseline forecasts with prediction intervals and driver decomposition.

Automated reports

Scheduled narrative summaries highlighting what changed and why.

Data exploration

Drill-down from any answer into the underlying rows with permissions applied.

Engineering focus

Challenges, and the MaatX approach.

The problems that actually decide whether a system like this survives production — and how we address each one.

Generated SQL is confidently wrong against raw tables

The model never authors SQL. It selects metrics and dimensions from a validated catalogue, and a compiler produces the query. An unresolvable question is refused instead of approximated.

'Revenue' means four different things depending on who asks

Metrics are defined once with an owner and a certification state. When a question maps to multiple certified metrics the system asks which one rather than picking.

Anomaly alerts without explanation are noise

Detection is seasonality-aware and every alert runs contribution analysis before it is delivered, so the alert arrives with the segment that caused it already identified.

A natural-language query can accidentally scan the whole warehouse

The compiler enforces cost guards, grain limits and time bounds. A query projected to exceed budget is rejected with the reason rather than run and billed.

Row-level permissions must survive the AI layer

Access policy is injected into the compiled query, not filtered from results. The engine cannot return a row the asker is not entitled to read.

An answer from three months ago cannot be reproduced

Answers store the compiled query, the semantic version and the inputs. Re-running either reproduces the number or reports which definition changed.

The stack behind it.

Question planning

  • LLMs
  • Structured output schemas
  • Metric catalogue retrieval
  • Embeddings
  • Ambiguity detection
  • Refusal policy

Semantic layer

  • Semantic models
  • Versioned metric definitions
  • Dimension and grain modelling
  • Join path resolution
  • Certification state
  • Lineage graph
  • Version-controlled definitions

Query compilation

  • SQL generation
  • Query plan validation
  • Row-level policy injection
  • Cost guard
  • Scan estimation
  • Grain and time bounds
  • Warehouse dialect adapters

Analysis engine

  • Python
  • Contribution analysis
  • Time-series forecasting
  • Seasonal decomposition
  • Change-point detection
  • Prediction intervals
  • Significance testing

Warehouse & modelling

  • Columnar warehouse
  • dbt-style models
  • Incremental materialisation
  • Model tests
  • Partition pruning
  • Semantic-versioned result cache

Answer surface

  • Next.js
  • React
  • TypeScript
  • Tailwind CSS
  • Streaming responses
  • SVG charts

Governance & reproducibility

  • Policy engine
  • Metric ownership
  • Compiled-query provenance
  • Answer replay
  • Audit logging
  • Evaluation suite
Product evolution

How it grows with the business.

The same system at three stages. Most products should not start at the third — but the architecture should not have to be thrown away to get there.

MVP

A handful of certified metrics answering questions for one team.

  • Core metric definitions in a semantic layer
  • Natural-language question answering
  • Generated query shown with every answer
  • Basic dashboards
Scale

Company-wide metrics with anomaly detection that explains itself.

  • Full metric catalogue with ownership and certification
  • Seasonality-aware anomaly detection
  • Contribution analysis attached to every alert
  • Forecasts with prediction intervals
Enterprise

Governed analytics with lineage and cost control.

  • Row-level policy enforcement and audit
  • Metric lineage from answer to source table
  • Scheduled narrative briefings by team
  • Materialisation recommendations for query cost
Future expansion

Where it could go next.

Directions this system would extend into.

  • 01

    Causal inference beyond correlation for driver attribution

  • 02

    Self-serve metric proposals reviewed by the owning team

  • 03

    Narrative briefings pushed to the teams a change actually affects

  • 04

    What-if modelling over the semantic layer

  • 05

    Query cost optimisation through materialisation recommendations

Needing analytics your team trusts enough to argue with?

We built SIGNAL to work through exactly this. Tell us where you are and we will tell you what we would do differently for your constraints.