Skip to content
northstar
Open source, Apache 2.0

Every number has a source.

Open-source data platform where every KPI and AI answer traces back to its dataset, quality score and source.

Revenue, September

€4.82M

+3.1% vs August

  1. Dataset
    Goldfinance.revenue_monthlyReady for the business
  2. Quality score
    94/100ExcellentBased on 6 of 6 dimensions
    • Validity100
    • Completeness97
    • Freshness92
    • Volume88
    • Uniqueness100
    • Stability78

    Weakest dimension: Stability 78

  3. Lineage
    1. Bronze: salesforce.opportunity
    2. Silver: sales.orders
    3. Gold: finance.revenue_monthly

    Column amount_eur: Aggregated, SUM(amount * fx_rate)

  4. Source
    Salesforce, loaded into SnowflakeUpdated 2 hours ago

Traceable to its sourceExample data

Works with the warehouse you already have.

SQL warehouses

  • PostgreSQL
  • MySQL
  • ClickHouse
  • Snowflake
  • Amazon Redshift
  • Databricks
  • Google BigQuery
  • Microsoft Fabric

File stores

  • Amazon S3
  • Google Drive
  • OneDrive
  • SharePoint

Tables stay in your warehouse: queries run where the data is.

An AI answer is only as good as the data under it.

  • The number nobody can explain

    Two reports, two revenue figures. The meeting goes on deciding which one is right.

  • The table that went quiet

    A pipeline stopped two days ago. Nobody noticed until a dashboard stayed flat.

  • The chatbot that sounds sure

    It answers fast, from a raw table, and nothing tells you so.

Northstar checks the data before anyone uses it, and keeps the proof next to the number.

The proof sits next to the number.

A score that cannot hide a problem

Six weighted dimensions, from 0 to 100. A severe problem caps the score, so good results cannot average it away.

Weights

  • Validity30
  • Completeness20
  • Freshness15
  • Volume15
  • Uniqueness10
  • Stability10

Caps

  • 59A critical validation rule fails
  • 59The primary key has duplicates
  • 40The table is empty
  • 40The schema changed in a breaking way

Levels

  1. 80-100Excellent
  2. 60-79Good
  3. < 60Needs improvement
The quality score

Lineage down to the column

From the sources to the gold datasets, and on to the KPIs and dashboards that use them. Check what a change would break before you make it.

  1. Sources
  2. Bronze
  3. Silver
  4. Gold
  5. Usages
Reading the lineage

Answers that show their work

Chat looks in gold datasets first. Each answer lists the datasets, the SQL it ran and the rows returned.

Why did revenue rise in September?

How this answer was built

Datasets analysed
finance.revenue_monthlyGold
SQL executed
SELECT month, SUM(amount_eur) …
12 rows returned
12 rows returned

Not based on a gold dataset. When no gold dataset backs an answer, Chat says so.

How Chat answers

The AI proposes. You decide.

Assistants work on your governed datasets, within your rights. Nothing is deployed, applied or accepted without a person.

ChatAnswers questions in plain languageWhat it never does alone: Change data, or read a dataset you cannot use
Ingestion agentWrites and tests a pipeline that loads a sourceWhat it never does alone: Deploy, or see the credentials you enter
Transformation agentWrites the queries of silver and gold datasetsWhat it never does alone: Apply, or write the statements that create tables
Alert assistantPrepares an alert from one sentenceWhat it never does alone: Create the alert without your review

12 switches let platform administrators turn each AI feature on or off.

Access follows your teams. The AI too.

Organization roles open the features. Team roles open the resources: this dataset, that dashboard. An assistant only reads what you can read.

Who can do what

Open source

The whole product, on your servers.

Apache 2.0, with no feature held back. Run it with Docker Compose, Helm or Coolify, next to your warehouse. Or let us run it for you.

Self-host
git clone https://github.com/nathan294/northstar.git
cd northstar/deploy/docker
cp .env.example .env
docker compose -f compose.full.yml up -d
Automate with the Python SDK
from northstar_sdk import Client

client = Client()  # NORTHSTAR_API_URL, NORTHSTAR_API_KEY

orders = client.datasets.upsert(
    location={"schema": "marts", "table": "orders"},
    name="Orders",
    type="TABLE",
    layer="GOLD",
    storage_system_slug="warehouse",
)
orders.assign_to_team("sales")
orders.analyze()

Every resource can be created from code. Each call respects the integration account's roles and teams.

Put a source behind every number.

Install Northstar on your servers today, or tell us about your data and join Cloud early access.