Features

Every part of getting from a spreadsheet to a number you act on

Dashful covers the whole path, not the demo-friendly middle of it. Here is what is actually in the product.

Loading data

Excel and CSV up to a gigabyte

Files stream to disk and into Postgres in chunks, so a million rows load in seconds without anything holding the whole workbook in memory.

Identified by contents

What a file is comes from its first bytes, not its extension. A CSV named .xlsx loads; an HTML export is refused with an explanation rather than a stack trace.

Merged cells and title rows

A region merged down its rows belongs to each of them, and a merged title above your headings no longer outranks the real header row.

Connected sources

OneDrive, SharePoint, Google Drive, Box, Dropbox, watched folders, and five database and warehouse sources — on a manual, hourly or daily schedule.

Datasets

Proposed, then approved

The agent profiles your files and proposes a dataset with its grain, columns, measures and assumptions. Nothing is loaded until a person approves it.

Declared relationships

Facts at different grains stay separate datasets. You declare which columns are the same key, and a link is refused if the two columns share no values.

Named measures

Define a measure once on the dataset and every dashboard that uses it means the same thing by it.

Quality checks

Checks travel with the dataset and re-run on every change, so a broken file surfaces before a report does.

Dashboards

Deterministic specs

A dashboard is a declarative spec run by an engine. The model never writes your dashboard's SQL, so a number does not drift because a prompt did.

Cross-filtering across datasets

Click a bar and every linked widget follows, translating the filter through your declared keys even when the columns are named differently.

A read-only analyst

Ask any dashboard why a figure moved. It sees the widget results as filtered, can query only that dashboard's tables, and can change nothing.

Exports that carry the data

A widget, a dashboard or a full dataset leaves as CSV or Excel — charts export as the numbers behind them, with the page's filters applied.

Publishing and sharing

Publish to an address

A published report is a frozen layout over live data. Edits wait as unpublished changes until you publish again.

Per-report access

Grant every report, or one named report. A grant survives a rename, because reports are keyed by id and shown by title.

Scheduled delivery

Daily, weekly or monthly, in the sender's timezone, with each schedule's own filters. Send now shows exactly what recipients will get.

Your branding

Name, accent colour, logo and footer note, applied to the report list and to every published report.

Administration

Roles you can build

Owner, Administrator, Builder, Analyst and Viewer come seeded and editable, and custom roles are assembled from the same permission catalog.

Directory groups

Map a group from your identity provider onto a role. Group names match without case, and a distinguished name matches the plain group name.

Bring your own AI key

Anthropic, OpenAI or Google, with a model chosen per job. The key is validated before storage and kept in the vault.

Two kinds of no

"Your role doesn't include that" and "your plan's limit has been reached" are asked separately, so the reason someone sees is the true one.

See it against your own data

The fastest way to judge any of this is to upload one real file.