Skip to content
Superset + AI · Explainer

Semantic profiling: how the AI learns what your columns mean

Before you ask your first question, every column is profiled for its type, role, units and relationships. Here is what that means and how to help it along.

For the complete AI-readable content index, see /llms.txt.

DashboardGPT TeamUpdated 3 min read
On this page
  1. Why profiling comes first
  2. What gets detected
  3. An example profile
  4. How to help the profiler
  5. What profiling does not do
  6. FAQ

Key takeaways

  • Semantic profiling tells the AI what each column means, not just what type it is.
  • It detects five things: data type, role, units, value patterns and relationships.
  • Good profiles are the main reason simple questions get correct answers.
  • You can help with clear names, one row per record and consistent formats.

Why profiling comes first

A database knows that a column holds numbers. It does not know that the numbers are US dollars that should be summed, or customer IDs that should be counted, or ratings that should be averaged. An AI that writes queries needs to know the difference.

Semantic profiling fills that gap. When you upload a file or connect a source in DashboardGPT, each column is analysed and described before any question is asked. Every later answer depends on that description.

What gets detected

1. Data type

The storage type: number, text, date, date-time or true/false. Profiling also catches common problems, such as dates stored as text ("2026-08-14") or numbers stored with symbols ("$1,250.00").

2. Role

How the column should be used in analysis:

RoleMeaningExample columnsTypical use
TimeWhen something happenedorder_date, created_atTrends, windows, grains
MeasureA quantity to aggregateorder_value_usd, seatsSum, average, min, max
CategoryA label to group byregion, plan, channelBreakdowns and filters
IdentifierA key for a recordorder_id, customer_idCount distinct, joins
TextFree textnotes, descriptionSearch, rarely aggregated

Role is the most important detection. Summing an identifier or grouping by a free-text field produces confident nonsense.

3. Units

Currency, percentage, duration, count. Units decide how numbers are formatted ($4.8M, 27%, 3.2 days) and whether they can be added together. Percentages, for example, should usually be averaged with care, not summed.

4. Value patterns

The shape of the values: how many distinct values a category has, the range of a measure, how many values are missing, and whether codes like 1, 2, 3 stand for labels.

These patterns shape answers. A category with 8 values makes a good breakdown; one with 40,000 values does not.

5. Relationships

Which columns link tables together, such as orders.customer_id to customers.id, and what one row represents in each table (one order, one line item, one subscription change). Knowing the grain prevents the most common analysis error: totals inflated by joins.

An example profile

For an orders file, a profile might look like this:

ColumnTypeRoleUnitNotes
order_idtextidentifierUnique per row
order_datedatetimePrimary time column
customer_idtextidentifierRepeats: 1 to 40 orders per customer
regiontextcategory5 values
channeltextcategory7 values
order_value_usdnumbermeasureUSDSum for revenue
discount_usdnumbermeasureUSD0 for most rows
statustextcategorydelivered, returned, cancelled

With this profile, "Revenue by channel last quarter" becomes a sum of order_value_usd, grouped by channel, filtered on order_date. No guessing needed.

How to help the profiler

  • Use descriptive names: order_value_usd, not val or amt2.
  • Include units in names when it helps: _usd, _pct, _days.
  • Keep one row per record and remove subtotal rows.
  • Use one date format throughout, ideally YYYY-MM-DD.
  • Store numbers as numbers, without currency symbols or thousands separators.
  • Replace codes with labels where you can: cancelled instead of 3.
  • Check the profile after upload and correct any column that was read wrongly.

What profiling does not do

Profiling describes what the data is. It does not decide your business definitions. Whether "active customer" means "ordered in the last 90 days" or "has an open subscription" is a decision your team makes. State it in the question, and the query will follow it.

Frequently asked questions

An automatic description of each column's meaning: its type, role, units, value patterns and relationships, used by the AI to write correct queries.

No. DashboardGPT profiles columns automatically when you upload a file or connect a source. You can review and correct it.

So it sums measures, counts identifiers and groups by categories. Mixing these up is the most common cause of wrong answers.

It analyses the columns to describe them, such as types, ranges and distinct values, so questions can be answered correctly.

Yes. Unclear names make it harder to detect roles and match words in your question to columns. Descriptive names help a lot.

Ask your data a question.

Open the playground and ask about revenue, churn or campaign spend. Charts, metrics and written insights appear on an infinite canvas.

  • No account, no install
  • Free plan with CSV and Excel uploads
  • Bring your own AI key