Özer Cem KELAHMETKELAHMET
Tabular foundation model · Benchmark stories

Blind sector identification: naming a dataset's industry from raw cells

How a tabular foundation model names the industry of an unseen table from cell values alone, with no headers, labels or metadata, and how I tested it.

Informational documentation. This section explains how a tabular foundation model of the Data Language Model class works: what goes in, what comes out, and how results are evaluated. It is based on the paper Data Language Models: A New Foundation Model Class for Tabular Data (arXiv:2605.06290). It is reference material, not a hosted service: hosts such as api.example.com, keys, and ids are placeholders.

Blind sector identification asks a model to name the industry of a dataset it has never seen, using only the raw cell values. There are no column names, no labels and no metadata. It is a new capability: no earlier tabular model performs it, and there is no published competitor to compare against.

This page explains the task, why a simple fingerprint of each column is not enough, how I built the head that does it, the eighteen ideas I tried, how the labels were audited, and what stayed open. Scores are left out on purpose. The model card carries them with their protocols. For all boards, see Benchmarks.

The short version

  • The test set is 504 real datasets with column names zeroed, no labels and no metadata.
  • Scoring is top-1 and top-5 against a uniform random baseline.
  • Ground-truth labels come from independent judges, never from the model itself.
  • The key signal is the joint pair correlation between columns, not a marginal fingerprint of each column.
  • The head is hierarchical: a coarse family first, then a specific sector inside it.
  • A delta was trained on the last blocks of the body using 1,401 tables that are excluded from the test set.
  • I tried eighteen other ideas, and two helped.
  • The remaining errors are sibling-sector confusions, and 24 datasets are ambiguous even for human labellers, so they are reported separately.

What the task is

You are handed a table with no description. Some columns hold numbers, some hold categories, some hold dates. The question is simple to state: what kind of business or field does this come from?

  • A table of tickets, resolution times and priority levels looks like customer support.
  • A table of dosages, lab values and visit dates looks like healthcare.
  • A table of orders, SKUs and shipping dates looks like retail or logistics.

A human expert reads the headers first. This task removes the headers and asks whether the pattern of the values is enough.

Why it is useful

The first question in the Solutions list is "what is this data?". An unlabelled dataset lands in your warehouse: inherited, third-party, undocumented. Before anyone can use it, a person has to work out what it is. A model that names the sector, with top candidates and a confidence for each, saves the first hours of that work.

  • Governance. Auditing every table for sector, personal data and quality.
  • Routing. Sending a table to the right team or the right downstream model.
  • Onboarding. Understanding a customer export on sight.
  • Triage. Ranking which inherited tables to look at first.

What the benchmark measures

The benchmark asks the model to name the sector of each of 504 real datasets from raw cell values alone.

Element Setting
Datasets 504 real datasets
Column names Zeroed
Labels None given to the model
Metadata None given to the model
Metrics Top-1 and top-5
Baseline Uniform random guess
Ground truth Labels from independent judges, never from the model

Top-1 and top-5

Top-1 asks whether the model's first answer is the correct sector. Top-5 asks whether the correct sector is among its five best guesses. Both are useful. Top-1 is the strict test. Top-5 matches how the feature is used in practice, where a short list with confidences is shown and a person picks.

The uniform random baseline

A uniform random guess picks a sector with equal chance for each. This is a deliberately low bar. It does not say a model is good. It says the model is not guessing. The scores sit well above it, and they are in the model card.

Why the ground truth comes from judges

If the model labelled its own test set, it could reach a high score by agreeing with itself. So the labels come from independent judges. I audited them too, which I describe below.

Why this is hard

Naming a sector from numbers is a harder problem than it first looks. Three things get in the way.

The sectors overlap

Real businesses cross lines. A payments company is both technology and finance. Neighbouring sectors share many columns: dates, amounts, identifiers, counts.

Tables are small and varied

A table can have a handful of columns or hundreds. It can have ten rows or a million. The model has to find a signal in whatever is there.

Names are gone

With no headers, the cheapest clue is removed. The model must rely on the shape of the values and on how columns relate. This is the same discipline as the Metadata independence board.

The first insight: pairs, not columns

My first approach used a marginal fingerprint of each column. A fingerprint is a summary of one column on its own: its range, its spread, its share of missing cells, how many distinct values it has.

It worked up to a point. Then it stopped.

Where the fingerprint failed

The fingerprint could not separate neighbouring sectors such as developer tools and data analytics. Both have columns for timestamps, counts, identifiers and durations. Looked at one at a time, those columns are nearly the same.

An everyday analogy: two kitchens can stock the same ingredients, flour, eggs, sugar, butter. A list of ingredients does not tell you whether you are in a bakery or a diner. What tells you is how the ingredients are used together.

What did separate them

The joint relationship between pairs of columns did. How one column moves when another moves. Which categories appear together. Which numeric columns rise and fall as a pair.

Axial attention, the core mechanism of the model, already compares columns with each other, so this signal exists inside the body. The task was to feed it to the head. See Architecture for how rows and columns are attended to in turn.

Signal Separates neighbouring sectors?
Marginal fingerprint of each column No
Joint pair correlation between columns Yes

How I built it

Step one: a hierarchical head

I added a sector head that works in two stages.

  1. It decides a coarse family of sectors.
  2. It then decides the specific sector inside that family.

This mirrors how a person narrows down. First "is this about money, health or goods?" and then "which kind exactly?". It also makes the typical error milder, because a mistake inside the right family is closer to the truth than a mistake across families.

See Semantic sector heads for the general idea.

Step two: feed the head pair-level signal

The head is fed pair-level signal from the body, the part of the network that has compared columns with each other. Without it the head sees only the per-column summaries that failed.

Step three: train a delta on the last blocks

I trained a delta on the last blocks of the body. A delta is a small change added to existing weights, rather than a new model trained from scratch. It was trained on 1,401 tables, and those 1,401 tables are excluded from the test set.

  • The delta nudges the final layers toward sector-relevant structure.
  • The rest of the body stays as it was, so the other capabilities are not disturbed.
  • Excluding the tables from the test set keeps the evaluation clean.

Step four: freeze the test set

Once the setup was fixed I froze the test set. After that, no table moved in or out because of how it scored. This protects against the quiet habit of editing the test until it looks better.

What I tried that did not help

I tried eighteen other ideas, and two helped. Sixteen did not. The failures taught me as much as the successes.

Idea Outcome
Test-time augmentation, a favourite from vision Destroyed the signal in tables
Flat per-column fingerprints Could not separate neighbouring sectors
Many other variations Did not help

Why test-time augmentation fails on tables

In vision, you can flip, crop or rotate an image and average the predictions. The picture still shows the same object. In a table, the arrangement of values carries the meaning. Shuffling or perturbing cells breaks the very relations between columns that identify the sector. The augmented copies are no longer the same table, so averaging them averages noise.

The value of a long list of failures

Eighteen attempts is a lot of effort for two gains. But the list matters for a second reason: it is evidence about the ceiling.

How I confirmed the ceiling

Reaching a number is one thing. Knowing it is close to the best that can be done is another. I confirmed the ceiling four ways.

  1. The eighteen failed attempts. If many reasonable ideas stop helping, you are near a limit.
  2. The structure of the signal. The remaining errors are between sectors that really are alike.
  3. A three-judge audit of the labels. Three judges reviewed the labels, and the audit corrected three of them.
  4. The literature on semantic type detection. Related work on naming what a column contains points to a similar limit.

The three-judge audit

A label can be wrong. If a dataset was filed under the wrong sector, the model is marked wrong for being right. I had three judges review the labels, and the audit corrected three of them. Correcting labels is not tuning to the model, because the judges are independent of it.

Ambiguous datasets

Some datasets are ambiguous even for human labellers. There are 24 of them. I report them separately rather than hide them inside the main figure or count them against the model. A human shown the same table would also hesitate.

What the headline is

After a colleague objected that a perfect score on an easy subset proves nothing, I changed how I report.

  • The headline is the full 504 datasets. No easy subset, no filtering.
  • The clean subset is a sanity check only. It shows the model behaves well when the answer is clear.

The objection was fair. A perfect score on easy tables says only that easy tables are easy. The full set, with its hard and overlapping cases, is the honest measure.

What made the difference

  • Pair-level signal. Joint correlation between columns replaced the marginal fingerprint.
  • A hierarchical head. Coarse family first, specific sector second.
  • A delta on the last blocks. Trained on 1,401 tables excluded from the test set.
  • Discipline about the test set. Frozen, with independent judges and a label audit.
  • Honest reporting. The full 504 as the headline, ambiguous cases reported apart.

The result is a new capability with no earlier tabular model that performs it. Because there is no published competitor, the baseline is the uniform random guess, and the claim is bounded by that.

What stayed open

  • Sibling-sector confusions. The remaining errors are mostly sectors that sit next to each other, such as banking and insurance. They share many of the same kinds of columns.
  • Ambiguous datasets. 24 datasets are ambiguous even for human labellers. They are reported separately.
  • No external yardstick. With no published competitor, I cannot place the result on someone else's board.
  • Real tables are messy. A table with unusual formats or very few columns gives less to work with, and confidence will be lower.

Banking and insurance, as an example

Both sectors deal in customers, accounts, dates, amounts and risk. A table of policies and premiums and a table of loans and rates share a lot of structure. A model that puts one in the other's place is making a reasonable mistake, and the hierarchical head keeps it within the right family.

Protocol

  • 504 real datasets, column names zeroed, no labels, no metadata.
  • Top-1 and top-5, against a uniform random baseline.
  • Labels from independent judges, audited by three judges, with three labels corrected.
  • A delta trained on 1,401 tables excluded from the test set.
  • The test set frozen before the final measurement.
  • One sealed configuration, with no per-dataset tuning.
  • A contamination check against the training corpus, using an identifier blocklist and a distributional near-duplicate check.

See Evaluation for what a score claims and what it does not.

How the output looks

The sector comes back as part of the same bundle as every other output. It returns a top guess and a short list with a confidence on each. See Capabilities for the full set of outputs.

json
{
  "sector": {
    "top": "retail",
    "candidates": [
      { "sector": "retail", "confidence": 0.62 },
      { "sector": "logistics", "confidence": 0.21 },
      { "sector": "manufacturing", "confidence": 0.08 }
    ]
  }
}

The values above are invented to show the shape. They are not results. The point is the structure: a ranked list, with a confidence on each entry, so a person can see how close the second choice was.

Reading the confidences

  • A large gap between the first and second choices means the model is sure.
  • A small gap means sibling sectors, and a person should look.
  • A flat list means the table gives little to go on.

Where it fits in a workflow

The sector is the first answer in a longer chain. Once the model knows what a table is, the next questions follow.

  1. What does each column contain?
  2. Where does personal data sit?
  3. How do this table and another relate? See Entity and schema matching.
  4. What can the data predict? See Row-level prediction.

For the product view, see Solutions and Capabilities.

Why joint structure is a general lesson

The pair-level finding is not limited to sector. It is a statement about tables in general.

  • A column is defined less by its own values than by its relations to others.
  • A model that reads relations can name a column's role without a header.
  • The same joint structure helps matching, imputation and anomaly scoring.

See Cell encoding and Pre-training for how the self-supervised objective teaches the model about columns that go together.

The semantic head returns both a sector for the table and a role for each column, such as email, phone, name, date, address, identifier, measure, category, currency or geo. These two outputs support each other. Knowing the roles of the columns narrows the sector, and knowing the sector narrows the roles.

Lessons I took from this board

  • Look at the signal before adding machinery. The fix was a different signal, not a bigger network.
  • Test ideas from other fields before trusting them. Test-time augmentation helps vision and hurts tables.
  • Count your failures. Eighteen tries and two wins is a result.
  • Audit the labels. A wrong label is an error in the ruler.
  • Report the hard cases next to the easy ones.
  • Freeze the test set.

Relation to the first model

The paper that defines the Data Language Model category, described on the Research page, reported that the first model could name the industry sector of an unseen dataset from raw cell values alone. That was a first sign of the capability. This board is the careful follow-up: 504 real datasets, zeroed names, independent labels, and a frozen test set.

The work in order

Step What I did Why
1 Collected 504 real datasets and zeroed the column names Remove the cheapest clue
2 Took labels from independent judges The model must not grade itself
3 Tried a marginal fingerprint of each column The simplest signal first
4 Found it could not separate neighbouring sectors Developer tools versus data analytics
5 Switched to joint pair correlation between columns The signal that did separate them
6 Added a hierarchical head Coarse family, then specific sector
7 Trained a delta on the last blocks, using 1,401 tables Teach the body what matters for sector
8 Tried eighteen other ideas Two helped, sixteen did not
9 Audited the labels with three judges Three labels were corrected
10 Froze the test set No later edits
11 Reported the full 504 as the headline An easy subset proves little

Fact sheet

Item Value
Task Name the sector of a dataset
Input Raw cell values only
Datasets 504 real datasets
Column names Zeroed
Labels given to the model None
Metadata given to the model None
Metrics Top-1 and top-5
Baseline Uniform random guess
Label source Independent judges
Label audit Three judges, three labels corrected
Training tables for the delta 1,401, excluded from the test set
Ideas tried besides the head Eighteen
Ideas that helped Two
Ambiguous datasets 24, reported separately
Published competitor None

Three kinds of signal

The task is easier to follow if you separate the kinds of signal a table offers.

Per-column signal

  • The range of a numeric column.
  • The spread and the shape of its distribution.
  • The number of distinct values.
  • The share of missing cells.

This is the marginal fingerprint. It is cheap and it is useful, but it is not enough by itself.

Pair signal

  • How two numeric columns rise and fall together.
  • Which categories co-occur with which values.
  • Whether one column looks like a function of another.

This is the joint structure that separated the neighbouring sectors.

Whole-table signal

  • The number of rows and columns.
  • The mix of types.
  • The overall pattern of missing cells.

A Perceiver-style block gives the model a view of the whole table through a fixed number of latents. See Architecture.

Common misreadings

"It reads the industry from words in the data"

No. Column names are zeroed, and the test is about raw cell values. Where a table contains text, the content is part of the values, but the benchmark does not depend on headers.

"A high top-5 means the model is unsure"

Top-5 matches how the output is used: a short list with confidences. A strong top-5 together with a lower top-1 usually means sibling sectors sit next to each other in the list.

"The 24 ambiguous datasets were removed to improve the score"

They were not removed. They are reported separately, so the main figure is not flattered by dropping them and not punished for something a human would also find hard.

"Correcting three labels is tuning the test set"

The corrections came from a three-judge audit by judges independent of the model. A wrong label is an error in the ruler, and fixing the ruler is not the same as fitting to the model.

"No competitor means no bar"

There is a bar: the uniform random baseline, and the check from the audit and the literature on semantic type detection. What is missing is a third-party board, and I say so.

Questions to ask about any sector claim

  • Are the column names visible to the model?
  • Who produced the labels, and were they independent of the model?
  • Was the label set audited?
  • Is the headline the full set, or an easy subset?
  • Are ambiguous cases hidden, or reported?
  • Which tables trained the sector head, and are they kept out of the test set?
  • Was the test set frozen before the final number?
  • Is the baseline stated?

Do and do not

Do:

  • Look at the top-5 list and its confidences, not only the first guess.
  • Treat a small gap between the first and second choices as a prompt to look.
  • Use the sector as a first routing step, not a final verdict.

Do not:

  • Treat the sector as a legal or regulatory classification.
  • Assume sibling sectors will always be separated.
  • Read a high confidence as certainty. See Limitations.

What the sector head shares with the rest of the model

  • It sits on the same shared representation as every other head.
  • It is trained with a delta, so other capabilities are not disturbed.
  • It ships in the same merged checkpoint. See One checkpoint.
  • It is checked for contamination like every other board. See Pre-training.

Quick answers

  • Does it need headers? No.
  • Does it need labels? No.
  • Does it need metadata? No.
  • Is there a competitor? Not a published one.
  • Is it always right? No, sibling sectors are the main source of error.
  • Where are the scores? In the model card, with their protocols.

The result in six lines

  • Names zeroed: the task is still possible.
  • Marginal fingerprints: not enough.
  • Pair correlation: the signal that works.
  • Hierarchical head: keeps errors in the right family.
  • Eighteen ideas: two helped.
  • Test set: frozen, with audited labels.

A walk through one table

The table below is invented. It shows how the reasoning goes, not a real result.

text
col_a: integers 1 to 40, right-skewed
col_b: dates, one per day, no gaps
col_c: 6 categories, one dominant
col_d: decimals, long right tail, rises with col_a
col_e: identifier, all unique
  1. Per column, nothing is decisive. Many sectors have a date, a count and an identifier.
  2. Between columns, one pattern stands out: the decimal rises with the count, and the dominant category predicts the tail.
  3. That pairing resembles orders, where quantity drives value and one product type dominates.
  4. The coarse family narrows to commerce and goods. The specific head then ranks retail first and logistics second.

The model does not write out these steps. They describe what the pair-level signal makes available.

What a reader can take away

  • You can name a table's industry without its headers.
  • The signal that makes this possible lives between columns.
  • A frozen test set and independent labels make the number mean something.
  • Failures and ambiguity are reported, not hidden.
  • Metadata independence for the name-blind design.
  • Entity and schema matching for another use of column relations.
  • Pre-training for how the model learns table structure.
  • Capabilities for the sector output and the column profile.

Terms used on this page

  • Sector. The industry a table belongs to, such as retail or hospital operations.
  • Marginal fingerprint. A summary of one column taken on its own.
  • Joint pair correlation. How two columns move together.
  • Hierarchical head. A head that picks a coarse family first and a specific class second.
  • Delta. A small trained change applied to existing weights.
  • Top-1 and top-5. Whether the right answer is the first guess or among the first five.
  • Test-time augmentation. Averaging predictions over modified copies of the input.
  • Frozen test set. A test set that no longer changes.

Frequently asked questions

What is blind sector identification?

It is the task of naming the industry of an unseen dataset from raw cell values only. The input has no column names, no labels and no metadata. The model returns a top guess and a short list, each with a confidence.

How many datasets does the benchmark use?

It uses 504 real datasets with column names zeroed. They are scored with top-1 and top-5 against a uniform random baseline, and the labels come from independent judges, never from the model.

Is there a published competitor?

No. No earlier tabular model performs this task, so there is no board to compare against. That is why the baseline is a uniform random guess and why I describe it as a new capability, not as a win over rivals.

Why can a model tell the sector without column names?

Because the values and the relations between columns carry the signal. A marginal fingerprint of each column was not enough, but the joint pair correlation between columns separated even neighbouring sectors. The model reads those relations through its attention over columns.

What was the most important design choice?

Using pair-level signal and a hierarchical head. The head picks a coarse family and then a specific sector, and it is fed relations between pairs of columns from the body. A delta on the last blocks of the body, trained on 1,401 tables excluded from the test set, completed the setup.

Why did test-time augmentation not work?

In tables, the arrangement of values is the meaning. Perturbing cells breaks the relations between columns that identify the sector, so the augmented copies are not the same table. Averaging them destroyed the signal.

How do you know the result is near the ceiling?

I confirmed it four ways: eighteen other ideas of which only two helped, the structure of the signal, a three-judge audit of the labels that corrected three of them, and the literature on semantic type detection. Together they point to a limit set by sectors that really are alike.

What are the 24 ambiguous datasets?

They are datasets that even human labellers find ambiguous. I report them separately instead of counting them for or against the model, so the main figure is not distorted in either direction.

Why is the headline the full 504 datasets?

A colleague objected that a perfect score on an easy subset proves nothing. I agreed. The headline is the full set with its hard cases, and the clean subset is only a sanity check.

Where does the model still go wrong?

On sibling sectors such as banking and insurance, whose tables share many kinds of columns. A hierarchical head keeps most errors inside the right family, and the confidence list shows when the second choice is close.

Summary

Blind sector identification names the industry of an unseen table from raw cell values alone. The test uses 504 real datasets with zeroed column names, scored top-1 and top-5 against a random baseline, with labels from independent judges. No earlier tabular model performs the task, so there is no published competitor.

The turning point was a change of signal: the joint pair correlation between columns separated neighbouring sectors where a per-column fingerprint could not. A hierarchical head, a delta on the last blocks trained on 1,401 tables kept out of the test set, a frozen test set and an audit of the labels did the rest. Eighteen other ideas were tried and two helped. What stayed open is the confusion between sibling sectors and 24 ambiguous datasets. Read next: Metadata independence, Architecture, Capabilities and Limitations.

Type to search.
    ↑↓ navigate↵ open