How Web Apps Can Gain a Competitive Edge with Supabase and MindsDB

How Web Apps Can Gain a Competitive Edge with Supabase and MindsDB

Chandre Van Der Westhuizen, Community & Marketing Co-ordinator at MindsDB

Feb 2, 2026

SaaS companies live and die by their metrics. Data is collected in operational systems, copied into warehouses, transformed through pipelines, and finally visualized in dashboards. Finance teams learn where to click. Analysts learn how to maintain the machinery. Leadership waits for answers.


This approach worked when businesses were simpler and questions were predictable. But modern SaaS companies don't operate that way anymore. Metrics change weekly. Pricing models evolve. Usage patterns shift quickly. And the most important questions are often the ones no dashboard was designed to answer.


This is why finance analytics is reaching an inflection point.


Monthly Recurring Revenue (MRR), Annual Recurring Revenue (ARR), active users, churn risk - these numbers drive decisions across finance, product, and leadership. Tools like Midday.ai exist to make those metrics visible and actionable.


But there's a growing challenge beneath the surface: As data grows more complex, dashboards alone are no longer enough.


This is where MindsDB comes in - especially for teams already using Supabase as their primary data store.


The Real Bottleneck Isn't Just Data - It’s Distance

Finance teams using Web Applications already have the data they need. What they lack is proximity to insight.


Every additional layer between the question and the answer introduces friction. Data must be replicated. Dashboards must be updated. Someone must interpret the results. By the time insight arrives, the moment has often passed.


Worse, trust erodes along the way. Numbers differ across tools. Reports disagree. Teams argue about which system is the source of truth.


In finance, uncertainty isn't just inconvenient. It's dangerous.


Supabase Has Become the System of Record for SaaS Finance

Platforms like Midday.ai, alongside Rally and Deriv, reflect a broader shift in how modern SaaS products are built.


Supabase is no longer just a backend convenience. It increasingly holds the most critical business data: subscriptions, invoices, usage, customer activity, and even pre-aggregated metrics like Monthly Recurring Revenue and Anual Recurring Revenue.


For many teams, Supabase is the financial system of record ,especially with its row-level security and all-in-one back-end solutions.


And that raises an uncomfortable question. If the authoritative data already lives in Postgres, why do we keep copying it elsewhere just to understand it?


When Intelligence Lives Where the Data Does

MindsDB challenges the assumption that analytics must live outside operational systems.


Instead of moving financial and user data into separate analytics stacks, MindsDB allows AI to run directly on Supabase. Queries execute where the data lives. Answers reflect the current state of the business. Every result can be traced back to real rows.


This is not just an architectural preference. It fundamentally changes how finance teams interact with their data.



Many AI analytics tools fall short for finance teams because their answers feel disconnected from reality. When numbers lack context, can't be audited, or appear probabilistic, trust breaks down in a domain that demands precision. MindsDB addresses this by grounding every answer directly in live Supabase data, with no hidden transformations or black-box aggregation, making each result fully traceable to its source.


When intelligence lives next to the source of truth, freshness and trust stop being tradeoffs.


MindsDB and Supabase: Bringing AI Intelligence Directly to Your Web Apps’ Data

Supabase provides a reliable Postgres-based system of record, while MindsDB turns that data into a queryable intelligence layer, enabling natural-language analytics, hybrid search, and AI agents that stay grounded in real rows. The result is faster insights, fewer pipelines to maintain, and analytics teams can trust—because every answer remains fresh, explainable, and tied back to the source of truth.


For web apps like Midday, MindsDB’s federated query engine allows Supabase to make financial intelligence a native part of the product rather than a separate analytics layer. This reduces infrastructure complexity for the product team while delivering a more flexible, differentiated experience for finance teams who need accurate insights they can act on immediately.



Let’s explore a use case for Midday where we connect web application data hosted in Supabase to MindsDB, build Knowledge Bases and perform Hybrid Search.


Please note, we will make use of synthetic data for Midday hosted in Supabase.


Pre-requisites: 

  1. Access MindsDB’s GUI via Docker locally or MindsDB’s extension on Docker Desktop.

  2. Configure your default models in the MindsDB GUI by navigating to Settings → Models.

  3. Navigate to Manage Integrations in Settings and install the dependencies for Supabase.


Once you have installed the dependencies for Supabase, you can connect to it via our SQL Editor using the CREATE DATABASE statement.

CREATE DATABASE display_name  --- display name for database.
WITH ENGINE = 'supabase',     --- name of the mindsdb handler
PARAMETERS = {
   "user": "postgres.gyjaxewghgebqavchydf",              --- the user to authenticate
   "password": "Supabase2026!",          --- the password to authenticate the user
   "host": "aws-1-us-west-1.pooler.supabase.com",              --- the host name of the Supabase connection
   "port": "5432",           --- the port to use when connecting
   "database": "postgres"           --- database name
};


You can also connect to Supabase via MindsDB's GUI Form:


PGVector will be used as storage, which you can also connect to following these docs.


We will make use of two tables:

  • `midday_user_data` which stores details about organizations.

  • `midday_metrics` which starts metrics like MRR, ARR, NRR and churn risk.


Querying Supabase Data with MindsDB Knowledge Bases and Hybrid Search

This section walks through how to use MindsDB Knowledge Bases and Hybrid Search on top of Supabase data to power AI-native analytics inside a web application. Using a Midday-style dataset, we’ll show how operational and financial data stored in Supabase can be transformed into a queryable knowledge layer that supports questions without moving or duplicating data. By the end of this tutorial, you’ll see how combining semantic search with structured filters enables accurate, explainable insights directly from your live Postgres source with the precision of SQL.


Now that you have connected your Supabase data to MindsDB, you can create a Knowledge Base using the CREATE KNOWLEDGE_BASE syntax:

CREATE KNOWLEDGE_BASE user_data_kb
USING
    storage = heroku.supabase_1,
    metadata_columns = [region, org_created_at, org_is_active, user_id, email,
                        role, user_created_at, last_login_at, user_is_active, 
                        subscription_id, plan_name, billing_interval, price, 
                        subscription_status, subscription_start, subscription_cancel, 
                        seats_included, seats_purchased, invoice_id, invoice_date, 
                        invoice_amount, invoice_status, usage_date, active_minutes, 
                        sessions, events_ingested, reports_generated],
    content_columns = [org_name, full_name, industry],
    id_column = org_id;


Insert your data using the INSERT INTO syntax:

INSERT INTO user_data_kb
SELECT region, org_created_at, org_is_active, user_id, email, role, 
  user_created_at, last_login_at, user_is_active, subscription_id, plan_name, 
  billing_interval, price, subscription_status, subscription_start, 
  subscription_cancel, seats_included, seats_purchased, invoice_id, 
  invoice_date, invoice_amount, invoice_status, usage_date, active_minutes, 
  sessions, events_ingested, reports_generated, org_name, full_name, industry, 
  org_id
FROM supabase.public.midday_user_data;


You can select the Knowledge Base to see the data inserted using the SELECT statement:

SELECT * FROM user_data_kb


You can follow the same steps for the midday_metrics table:

--Create Knowledge Base
CREATE KNOWLEDGE_BASE midday_metrics_kb
USING
    storage = heroku.supbase_metrics,
    metadata_columns = ['mrr', 'arr', 'active_users', 'net_revenue_retention', 
                        'churn_risk_score'],
    content_columns = ['metric_month'],
    id_column = 'org_id';
--Insert Data
INSERT INTO midday_metrics_kb
SELECT metric_month, org_id, mrr, arr, active_users, net_revenue_retention, 
  churn_risk_score
FROM supabase.midday_metrics;
--Query the Knowledge Base
SELECT * FROM midday_metrics_kb


MindsDB’s Hybrid search allows you to query data with keyword and semantic search using SQL. Let’s see what insights we can obtain from the Midday data stored in Supabase:


Identify which paying customers are most at risk right now and immediately see whether low engagement is a plausible driver.

--Find high churn-risk customers and pull their engagement signals
SELECT * FROM midday_metrics_kb
JOIN user_data_kb
ON midday_metrics_kb.id = user_data_kb.id
WHERE
 midday_metrics_kb.content LIKE '2025-10'
 AND midday_metrics_kb.churn_risk_score >= 0.70
 AND user_data_kb.org_is_active = 'true'


This is the fastest “save revenue” query—finance and Customer Service can prioritize outreach based on risk and product behavior in one view.


Surface customers who contribute meaningful recurring revenue but aren’t adopting the product.

--“High MRR, low usage” accounts (classic expansion + retention signal)
SELECT * FROM midday_metrics_kb
JOIN user_data_kb
ON midday_metrics_kb.id = user_data_kb.id
WHERE midday_metrics_kb.mrr >= '249'
 AND user_data_kb.active_minutes <= 20
 AND user_data_kb.sessions <= 2
 AND user_data_kb.subscription_status = 'active';


Low adoption is one of the strongest leading indicators of churn; catching it early protects ARR.


You can detect revenue leakage and billing failures without waiting for finance tooling or delayed reports.

--Accounts with payment issues + current subscription context
SELECT * FROM user_data_kb
WHERE
 invoice_status = 'failed'
 AND subscription_status = 'active'
 AND org_is_active = 'true'
 AND user_is_active = 'true';


Failed invoices are a direct threat to cash flow and can also signal account distress or impending churn.


 Find customers who have outgrown their current plan footprint.

--Seat overages: customers growing beyond plan assumptions
SELECT *
FROM user_data_kb
JOIN midday_metrics_kb
 ON user_data_kb.id = midday_metrics_kb.id
WHERE
 user_data_kb.subscription_status = 'active'
 AND user_data_kb.seats_purchased > user_data_kb.seats_included
 AND midday_metrics_kb.content LIKE '2025-12'


Seat overages are a clean expansion motion—great for upsell workflows and improving NRR.


Identify customers still paying but no longer engaged—often a precursor to cancellation at renewal time.

--“Silent churn” candidates: active subscription, but no recent logins
SELECT * FROM user_data_kb
JOIN midday_metrics_kb
 ON user_data_kb.id = midday_metrics_kb.id
WHERE
 user_data_kb.subscription_status = 'active'
 AND user_data_kb.last_login_at <= '2025-12-15'
 AND midday_metrics_kb.content LIKE '2025-12'


This is a proactive retention list for finance and customer service, especially ahead of renewals.


Flag accounts contributing recurring revenue but shrinking or at risk of contraction.

--MRR present but retention weak
SELECT *
FROM midday_metrics_kb
JOIN user_data_kb
ON midday_metrics_kb.id = user_data_kb.id
WHERE midday_metrics_kb.content = ('2025-01' and 2025)
 AND midday_metrics_kb.mrr >= '99'
 AND midday_metrics_kb.net_revenue_retention < '1.00'
 AND user_data_kb.org_is_active = 'true';


Contraction reduces ARR quietly—catching it early helps protect revenue.


Find cases where revenue retention looks good but the subscription shows cancellation signals.

--NRR strong but subscription status at risk
SELECT *
FROM midday_metrics_kb
JOIN user_data_kb
 ON midday_metrics_kb.id = user_data_kb.id
WHERE midday_metrics_kb.content = '2025-12'
 AND midday_metrics_kb.net_revenue_retention >= 1.05
 AND user_data_kb.subscription_status = 'canceled';


This helps detect “Net Retention Revenue(NRR) lag” (metrics still look fine, but renewal risk is real).


Find the accounts that could cause the biggest revenue loss if they churn.

--Revenue risk: high MRR + high churn risk
SELECT *
FROM midday_metrics_kb
JOIN user_data_kb
ON midday_metrics_kb.id = user_data_kb.id
WHERE midday_metrics_kb.content = '2026-01'
 AND midday_metrics_kb.mrr >= '249'
 AND midday_metrics_kb.churn_risk_score >= 0.70
 AND user_data_kb.org_is_active = 'true';


This allows finance and customer service teams prioritize saves by “revenue at risk,” not just customer count.


Find accounts expanding and engaging broadly across users.

--High NRR + high active_users (product-market fit signal)
SELECT *
FROM midday_metrics_kb
JOIN user_data_kb
ON midday_metrics_kb.id = user_data_kb.id
WHERE midday_metrics_kb.content = '2026-01'
 AND midday_metrics_kb.net_revenue_retention >= '1.10'
 AND midday_metrics_kb.active_users >= '10'
 AND user_data_kb.org_is_active = 'true';


This is a high-confidence “sticky + growing” segment, useful for forecasting and expansion playbooks.


Validate contraction risk using real usage behavior.

--NRR weak + low engagement (risk validation)
SELECT *
FROM midday_metrics_kb
JOIN user_data_kb
 ON midday_metrics_kb.id = user_data_kb.id
WHERE midday_metrics_kb.content = ('2025-01' and '2025-12')
 AND midday_metrics_kb.net_revenue_retention < 1.00
 AND user_data_kb.active_minutes <= 10
 AND user_data_kb.sessions <= 1
 AND user_data_kb.user_is_active = 'true';


Confirms whether retention issues are product adoption issues versus pricing/billing factors.


What This Means for Web Apps Like Midday.ai Using Supabase

Web apps like Midday.ai are evolving from static dashboards into systems that help teams reason about financial health. By pairing Supabase as the source of truth with MindsDB Knowledge Bases and Hybrid Search, these platforms can deliver real-time, financial insights that remain accurate and explainable. This represents a shift toward AI-native analytics that finance teams can trust and act on. MindsDB also offers a more natural-language querying approach with Agents, which provides conversational insights to your data.


At MindsDB, we believe in simplifying getting real-time answers. If your AI Analytics needs are more complex, we’re here to help. Contact our team that understands AI analytics demand precision and scale.


Conclusion: From Dashboards to Dialogue

The future of finance analytics isn't more charts or denser dashboards.


It’s dialogue.


A continuous conversation between the business, its data, and the people responsible for decisions. Supabase provides the foundation. MindsDB provides the intelligence. Knowledge Bases and Hybrid Search ensure that intelligence operates safely.


Together, they point toward a world where finance teams spend less time navigating tools and more time understanding what's really happening in their business.


And that's where meaningful decisions begin.

SaaS companies live and die by their metrics. Data is collected in operational systems, copied into warehouses, transformed through pipelines, and finally visualized in dashboards. Finance teams learn where to click. Analysts learn how to maintain the machinery. Leadership waits for answers.


This approach worked when businesses were simpler and questions were predictable. But modern SaaS companies don't operate that way anymore. Metrics change weekly. Pricing models evolve. Usage patterns shift quickly. And the most important questions are often the ones no dashboard was designed to answer.


This is why finance analytics is reaching an inflection point.


Monthly Recurring Revenue (MRR), Annual Recurring Revenue (ARR), active users, churn risk - these numbers drive decisions across finance, product, and leadership. Tools like Midday.ai exist to make those metrics visible and actionable.


But there's a growing challenge beneath the surface: As data grows more complex, dashboards alone are no longer enough.


This is where MindsDB comes in - especially for teams already using Supabase as their primary data store.


The Real Bottleneck Isn't Just Data - It’s Distance

Finance teams using Web Applications already have the data they need. What they lack is proximity to insight.


Every additional layer between the question and the answer introduces friction. Data must be replicated. Dashboards must be updated. Someone must interpret the results. By the time insight arrives, the moment has often passed.


Worse, trust erodes along the way. Numbers differ across tools. Reports disagree. Teams argue about which system is the source of truth.


In finance, uncertainty isn't just inconvenient. It's dangerous.


Supabase Has Become the System of Record for SaaS Finance

Platforms like Midday.ai, alongside Rally and Deriv, reflect a broader shift in how modern SaaS products are built.


Supabase is no longer just a backend convenience. It increasingly holds the most critical business data: subscriptions, invoices, usage, customer activity, and even pre-aggregated metrics like Monthly Recurring Revenue and Anual Recurring Revenue.


For many teams, Supabase is the financial system of record ,especially with its row-level security and all-in-one back-end solutions.


And that raises an uncomfortable question. If the authoritative data already lives in Postgres, why do we keep copying it elsewhere just to understand it?


When Intelligence Lives Where the Data Does

MindsDB challenges the assumption that analytics must live outside operational systems.


Instead of moving financial and user data into separate analytics stacks, MindsDB allows AI to run directly on Supabase. Queries execute where the data lives. Answers reflect the current state of the business. Every result can be traced back to real rows.


This is not just an architectural preference. It fundamentally changes how finance teams interact with their data.



Many AI analytics tools fall short for finance teams because their answers feel disconnected from reality. When numbers lack context, can't be audited, or appear probabilistic, trust breaks down in a domain that demands precision. MindsDB addresses this by grounding every answer directly in live Supabase data, with no hidden transformations or black-box aggregation, making each result fully traceable to its source.


When intelligence lives next to the source of truth, freshness and trust stop being tradeoffs.


MindsDB and Supabase: Bringing AI Intelligence Directly to Your Web Apps’ Data

Supabase provides a reliable Postgres-based system of record, while MindsDB turns that data into a queryable intelligence layer, enabling natural-language analytics, hybrid search, and AI agents that stay grounded in real rows. The result is faster insights, fewer pipelines to maintain, and analytics teams can trust—because every answer remains fresh, explainable, and tied back to the source of truth.


For web apps like Midday, MindsDB’s federated query engine allows Supabase to make financial intelligence a native part of the product rather than a separate analytics layer. This reduces infrastructure complexity for the product team while delivering a more flexible, differentiated experience for finance teams who need accurate insights they can act on immediately.



Let’s explore a use case for Midday where we connect web application data hosted in Supabase to MindsDB, build Knowledge Bases and perform Hybrid Search.


Please note, we will make use of synthetic data for Midday hosted in Supabase.


Pre-requisites: 

  1. Access MindsDB’s GUI via Docker locally or MindsDB’s extension on Docker Desktop.

  2. Configure your default models in the MindsDB GUI by navigating to Settings → Models.

  3. Navigate to Manage Integrations in Settings and install the dependencies for Supabase.


Once you have installed the dependencies for Supabase, you can connect to it via our SQL Editor using the CREATE DATABASE statement.

CREATE DATABASE display_name  --- display name for database.
WITH ENGINE = 'supabase',     --- name of the mindsdb handler
PARAMETERS = {
   "user": "postgres.gyjaxewghgebqavchydf",              --- the user to authenticate
   "password": "Supabase2026!",          --- the password to authenticate the user
   "host": "aws-1-us-west-1.pooler.supabase.com",              --- the host name of the Supabase connection
   "port": "5432",           --- the port to use when connecting
   "database": "postgres"           --- database name
};


You can also connect to Supabase via MindsDB's GUI Form:


PGVector will be used as storage, which you can also connect to following these docs.


We will make use of two tables:

  • `midday_user_data` which stores details about organizations.

  • `midday_metrics` which starts metrics like MRR, ARR, NRR and churn risk.


Querying Supabase Data with MindsDB Knowledge Bases and Hybrid Search

This section walks through how to use MindsDB Knowledge Bases and Hybrid Search on top of Supabase data to power AI-native analytics inside a web application. Using a Midday-style dataset, we’ll show how operational and financial data stored in Supabase can be transformed into a queryable knowledge layer that supports questions without moving or duplicating data. By the end of this tutorial, you’ll see how combining semantic search with structured filters enables accurate, explainable insights directly from your live Postgres source with the precision of SQL.


Now that you have connected your Supabase data to MindsDB, you can create a Knowledge Base using the CREATE KNOWLEDGE_BASE syntax:

CREATE KNOWLEDGE_BASE user_data_kb
USING
    storage = heroku.supabase_1,
    metadata_columns = [region, org_created_at, org_is_active, user_id, email,
                        role, user_created_at, last_login_at, user_is_active, 
                        subscription_id, plan_name, billing_interval, price, 
                        subscription_status, subscription_start, subscription_cancel, 
                        seats_included, seats_purchased, invoice_id, invoice_date, 
                        invoice_amount, invoice_status, usage_date, active_minutes, 
                        sessions, events_ingested, reports_generated],
    content_columns = [org_name, full_name, industry],
    id_column = org_id;


Insert your data using the INSERT INTO syntax:

INSERT INTO user_data_kb
SELECT region, org_created_at, org_is_active, user_id, email, role, 
  user_created_at, last_login_at, user_is_active, subscription_id, plan_name, 
  billing_interval, price, subscription_status, subscription_start, 
  subscription_cancel, seats_included, seats_purchased, invoice_id, 
  invoice_date, invoice_amount, invoice_status, usage_date, active_minutes, 
  sessions, events_ingested, reports_generated, org_name, full_name, industry, 
  org_id
FROM supabase.public.midday_user_data;


You can select the Knowledge Base to see the data inserted using the SELECT statement:

SELECT * FROM user_data_kb


You can follow the same steps for the midday_metrics table:

--Create Knowledge Base
CREATE KNOWLEDGE_BASE midday_metrics_kb
USING
    storage = heroku.supbase_metrics,
    metadata_columns = ['mrr', 'arr', 'active_users', 'net_revenue_retention', 
                        'churn_risk_score'],
    content_columns = ['metric_month'],
    id_column = 'org_id';
--Insert Data
INSERT INTO midday_metrics_kb
SELECT metric_month, org_id, mrr, arr, active_users, net_revenue_retention, 
  churn_risk_score
FROM supabase.midday_metrics;
--Query the Knowledge Base
SELECT * FROM midday_metrics_kb


MindsDB’s Hybrid search allows you to query data with keyword and semantic search using SQL. Let’s see what insights we can obtain from the Midday data stored in Supabase:


Identify which paying customers are most at risk right now and immediately see whether low engagement is a plausible driver.

--Find high churn-risk customers and pull their engagement signals
SELECT * FROM midday_metrics_kb
JOIN user_data_kb
ON midday_metrics_kb.id = user_data_kb.id
WHERE
 midday_metrics_kb.content LIKE '2025-10'
 AND midday_metrics_kb.churn_risk_score >= 0.70
 AND user_data_kb.org_is_active = 'true'


This is the fastest “save revenue” query—finance and Customer Service can prioritize outreach based on risk and product behavior in one view.


Surface customers who contribute meaningful recurring revenue but aren’t adopting the product.

--“High MRR, low usage” accounts (classic expansion + retention signal)
SELECT * FROM midday_metrics_kb
JOIN user_data_kb
ON midday_metrics_kb.id = user_data_kb.id
WHERE midday_metrics_kb.mrr >= '249'
 AND user_data_kb.active_minutes <= 20
 AND user_data_kb.sessions <= 2
 AND user_data_kb.subscription_status = 'active';


Low adoption is one of the strongest leading indicators of churn; catching it early protects ARR.


You can detect revenue leakage and billing failures without waiting for finance tooling or delayed reports.

--Accounts with payment issues + current subscription context
SELECT * FROM user_data_kb
WHERE
 invoice_status = 'failed'
 AND subscription_status = 'active'
 AND org_is_active = 'true'
 AND user_is_active = 'true';


Failed invoices are a direct threat to cash flow and can also signal account distress or impending churn.


 Find customers who have outgrown their current plan footprint.

--Seat overages: customers growing beyond plan assumptions
SELECT *
FROM user_data_kb
JOIN midday_metrics_kb
 ON user_data_kb.id = midday_metrics_kb.id
WHERE
 user_data_kb.subscription_status = 'active'
 AND user_data_kb.seats_purchased > user_data_kb.seats_included
 AND midday_metrics_kb.content LIKE '2025-12'


Seat overages are a clean expansion motion—great for upsell workflows and improving NRR.


Identify customers still paying but no longer engaged—often a precursor to cancellation at renewal time.

--“Silent churn” candidates: active subscription, but no recent logins
SELECT * FROM user_data_kb
JOIN midday_metrics_kb
 ON user_data_kb.id = midday_metrics_kb.id
WHERE
 user_data_kb.subscription_status = 'active'
 AND user_data_kb.last_login_at <= '2025-12-15'
 AND midday_metrics_kb.content LIKE '2025-12'


This is a proactive retention list for finance and customer service, especially ahead of renewals.


Flag accounts contributing recurring revenue but shrinking or at risk of contraction.

--MRR present but retention weak
SELECT *
FROM midday_metrics_kb
JOIN user_data_kb
ON midday_metrics_kb.id = user_data_kb.id
WHERE midday_metrics_kb.content = ('2025-01' and 2025)
 AND midday_metrics_kb.mrr >= '99'
 AND midday_metrics_kb.net_revenue_retention < '1.00'
 AND user_data_kb.org_is_active = 'true';


Contraction reduces ARR quietly—catching it early helps protect revenue.


Find cases where revenue retention looks good but the subscription shows cancellation signals.

--NRR strong but subscription status at risk
SELECT *
FROM midday_metrics_kb
JOIN user_data_kb
 ON midday_metrics_kb.id = user_data_kb.id
WHERE midday_metrics_kb.content = '2025-12'
 AND midday_metrics_kb.net_revenue_retention >= 1.05
 AND user_data_kb.subscription_status = 'canceled';


This helps detect “Net Retention Revenue(NRR) lag” (metrics still look fine, but renewal risk is real).


Find the accounts that could cause the biggest revenue loss if they churn.

--Revenue risk: high MRR + high churn risk
SELECT *
FROM midday_metrics_kb
JOIN user_data_kb
ON midday_metrics_kb.id = user_data_kb.id
WHERE midday_metrics_kb.content = '2026-01'
 AND midday_metrics_kb.mrr >= '249'
 AND midday_metrics_kb.churn_risk_score >= 0.70
 AND user_data_kb.org_is_active = 'true';


This allows finance and customer service teams prioritize saves by “revenue at risk,” not just customer count.


Find accounts expanding and engaging broadly across users.

--High NRR + high active_users (product-market fit signal)
SELECT *
FROM midday_metrics_kb
JOIN user_data_kb
ON midday_metrics_kb.id = user_data_kb.id
WHERE midday_metrics_kb.content = '2026-01'
 AND midday_metrics_kb.net_revenue_retention >= '1.10'
 AND midday_metrics_kb.active_users >= '10'
 AND user_data_kb.org_is_active = 'true';


This is a high-confidence “sticky + growing” segment, useful for forecasting and expansion playbooks.


Validate contraction risk using real usage behavior.

--NRR weak + low engagement (risk validation)
SELECT *
FROM midday_metrics_kb
JOIN user_data_kb
 ON midday_metrics_kb.id = user_data_kb.id
WHERE midday_metrics_kb.content = ('2025-01' and '2025-12')
 AND midday_metrics_kb.net_revenue_retention < 1.00
 AND user_data_kb.active_minutes <= 10
 AND user_data_kb.sessions <= 1
 AND user_data_kb.user_is_active = 'true';


Confirms whether retention issues are product adoption issues versus pricing/billing factors.


What This Means for Web Apps Like Midday.ai Using Supabase

Web apps like Midday.ai are evolving from static dashboards into systems that help teams reason about financial health. By pairing Supabase as the source of truth with MindsDB Knowledge Bases and Hybrid Search, these platforms can deliver real-time, financial insights that remain accurate and explainable. This represents a shift toward AI-native analytics that finance teams can trust and act on. MindsDB also offers a more natural-language querying approach with Agents, which provides conversational insights to your data.


At MindsDB, we believe in simplifying getting real-time answers. If your AI Analytics needs are more complex, we’re here to help. Contact our team that understands AI analytics demand precision and scale.


Conclusion: From Dashboards to Dialogue

The future of finance analytics isn't more charts or denser dashboards.


It’s dialogue.


A continuous conversation between the business, its data, and the people responsible for decisions. Supabase provides the foundation. MindsDB provides the intelligence. Knowledge Bases and Hybrid Search ensure that intelligence operates safely.


Together, they point toward a world where finance teams spend less time navigating tools and more time understanding what's really happening in their business.


And that's where meaningful decisions begin.

Start Building with MindsDB Today

Power your AI strategy with the leading AI data solution.

© 2026 All rights reserved by MindsDB.

Start Building with MindsDB Today

Power your AI strategy with the leading AI data solution.

© 2026 All rights reserved by MindsDB.

Start Building with MindsDB Today

Power your AI strategy with the leading AI data solution.

© 2026 All rights reserved by MindsDB.

Start Building with MindsDB Today

Power your AI strategy with the leading AI data solution.

© 2026 All rights reserved by MindsDB.