> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tracebloc.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Tabular regression

> Dataset template for tabular regression: one CSV with features and a numeric target, the typed schema, the required label policy, ingest.yaml and the checks the data ingestor runs.

Predict a number from table columns. The dataset is a single CSV with a header row: feature columns plus one numeric target column. Because the target is a raw numeric value, the `label` must declare a **policy** that keeps raw targets inside your secure environment.

## Folder layout

```text theme={null}
/data/shared/house-prices/
└── houses.csv
```

* One CSV, UTF-8, comma-separated, with a header row.
* Feature columns are numeric or typed text; the target column holds a continuous number.

## Data CSV

```csv theme={null}
id,square_feet,bedrooms,age,price
1,1668.08,3,15,285.50
2,1701.78,4,12,320.75
3,1697.01,2,8,245.30
```

| Column                       | Meaning                                                                                                                      |
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| feature columns              | Declared in `schema` with their SQL type and stored.                                                                         |
| target column (`price` here) | Named by `label.column`; **not** declared in `schema`.                                                                       |
| `id`                         | Optional; cannot be declared in `schema` (reserved). Use `data_id: {strategy: column, column: id}` to keep it as the row id. |

## ingest.yaml

```yaml theme={null}
apiVersion: tracebloc.io/v1
kind: IngestConfig
category: tabular_regression
table: house_prices_train
intent: train
csv: /data/shared/house-prices/houses.csv
schema:
  square_feet: FLOAT
  bedrooms: INT
  age: INT
label:
  column: price
  policy: bucket
```

| Field                         | Required             | Meaning                                                                                                                                                                                                                                                                    |
| ----------------------------- | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `csv`                         | yes                  | Path to the data CSV.                                                                                                                                                                                                                                                      |
| `schema`                      | **yes**              | Column name to SQL type for the feature columns. Every schema column must exist in the CSV.                                                                                                                                                                                |
| `label`                       | **yes, object form** | `column` names the target; `policy` is required. `bucket` sends the platform one of 64 stable hash buckets per value instead of the raw number — the stored rows keep the raw target for training. `passthrough` sends raw values; use it only with a compliance sign-off. |
| `columns`                     | no                   | Per-column `unit` (for example `USD`) and `ordinal` facts.                                                                                                                                                                                                                 |
| `data_id`, `spec.csv_options` | no                   | See [the contract](/create-use-case/templates#the-ingestyaml-contract).                                                                                                                                                                                                    |

## What the ingestor checks

| Check      | Rejects                                                                                                                         |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------- |
| Data types | Duplicate header names; a schema column missing from the CSV; any value that does not fit its declared type; unknown SQL types. |

Plus the [checks every ingest runs](/create-use-case/templates#checks-every-ingest-runs). There is no label-diversity check: a continuous target has no classes.

## Sample dataset

The template ships a synthetic housing CSV with `id`, `square_feet` (`FLOAT`), `bedrooms` (`INT`), `age` (`INT`) and the target `price` — the rows shown above are its first rows. The `ingest.yaml` above ingests it as is; only `csv:` changes to wherever you staged the file.

## Next steps

* Stage the data and run the ingest: [Prepare Data](/create-use-case/prepare-dataset)
* Shared rules for every template: [Dataset templates](/create-use-case/templates)
