Tables · stored in BankSync

A spreadsheet without the spreadsheet.

Keep your bank data in BankSync, in a grid you can edit. Pick a table as your destination and the columns arrive typed and mapped, with no account to connect and no file to lay out first. Then link rows to another table, roll them up, write a formula, and chart the result or read it over the API.

One click to a table, then edit it like a sheet.

the shortest path

Somewhere for your data to land, on day one.

Every other destination asks you to bring something first: an account to authorise, a sheet to create, a database with the right properties. A table is already there. Pick it, sync, and you are looking at your transactions in a grid. Sheets, Notion, Airtable and Excel keep working exactly as before, and one feed can write to both.

a grid you can work in

Editable, typed, and yours to shape

Everything happens inline. Nothing to install, no schema screen to visit first.

Columns that already fit

Pick a table destination and the columns arrive typed, formatted and mapped.

Edit any cell inline

Fix a category or a merchant name where you see it, not in a rule.

Types that hold

Numbers refuse letters, dates stay dates, currency formats on the spot.

Your own columns

Text, select, status, rating, user, auto number and more, beside the synced fields.

Files on a row

Up to ten per cell, in the order you set, each one retried on its own if it fails.

Sort, filter, restore

Per-column filters, sorting, a CSV export, and a trash that restores for 30 days.

rows that know about other rows

Link a row, then let it do the maths

A relation points rows at rows. Lookup, rollup, count and formula read across it.

Link rows to rows

A transaction to a vendor, an invoice to a client, a row to another row in the same table.

Lookup

Show a field from the rows a link points at, without copying it.

Rollup

31 summaries across linked rows — sum, median, earliest, percent checked, count per option.

Count, with a condition

Open invoices, not just invoices. Any lookup or rollup can carry the same condition.

Formulas

94 functions over this row and the rows it links to. Any rollup opens as one.

Computed, and still sortable

Results are stored on the row, so you sort, filter and chart them like a typed column.

Every limit is a refusal, not a quiet truncation: ten files a cell, a hundred links a cell, five hops of calculation. A value waiting to be recalculated says so rather than showing you a blank. The function list and the rollup list are in the docs.

three quick steps

From connected account to a table you can edit

  1. 1

    Pick BankSync Table

    One click in the destinations tab. No account to connect, no file to prepare.

    BankSync TablesTransactionsBalancesHoldings
  2. 2

    Sync, then edit

    Rows land on your schedule. Fix a cell, add a column, attach a file.

    SortFilterAttach filesExport CSVTrash & restore
  3. 3

    Link it, then calculate

    Point rows at another table, then look a field up, roll it up, or write a formula.

    RelationLookupRollupCountFormula
  4. 4

    Chart it, ask it, or call it

    The same rows — computed columns included — feed dashboards, Ask Penny, the REST API and MCP.

    DashboardsAsk PennyREST APIMCP
what people keep in them

One primitive, plenty of jobs

A table is a destination, a source, and an API resource at the same time.

Your own chart of accounts

Keep categories in a table and point the AI categorizer at it.

Vendors, with their totals

One vendor row per supplier, linked transactions, spend rolled up beside the name.

A source for dashboards

Any table is a widget source, computed columns included.

A register that stays current

Holdings, loans or balances kept in one table across feeds.

Storage for your own app

Read and write rows over the REST API instead of running a database.

Something to ask Penny about

She reads your tables and answers with a chart inline.

storing is a choice

Stored because you asked for it

BankSync passes data through by default. Rows sit inside our boundary only for the feeds you point at a table, they are never used to train models, and deleting the table or the workspace removes them along with anything attached.

good questions

Frequently asked questions

What are BankSync Tables?

A BankSync Table is a stored dataset inside your workspace, shown as a grid you can edit. You can send a bank or document feed into one as its destination, import a CSV, or build a table by hand. Rows in one table can link to rows in another, and lookup, rollup, count and formula columns calculate across those links. The same rows then power dashboard widgets, Ask Penny answers, and the REST API and MCP server.

How is a table different from syncing to Google Sheets or Notion?

There is nothing to connect and nothing to prepare. A table is created for you with the right columns for the data type you are syncing, and the field mapping is already done, so there is no OAuth step, no third-party account and no empty spreadsheet to lay out first. Sheets, Notion, Airtable and Excel still work exactly as before, and you can send the same feed to both.

Can I edit synced rows, and will my edits survive the next sync?

Yes, every cell is editable. Columns you add yourself are never touched by a sync. For columns the feed owns, the most recent write wins, and Memory re-applies the corrections it has learned from you (a category or a cleaned-up merchant name) on the following sync, so a fix you make once keeps holding.

Can I build a table that has nothing to do with a bank feed?

Yes. Create a free-form table, choose your own columns, and add rows by hand or by importing a CSV. A common use is a categories table or chart of accounts that the AI categorizer and lookup enrichments read from, so your own list drives how transactions are categorised.

Can rows in one table link to rows in another?

Yes. A relation column links a row to rows in another table, or to other rows in the same table. A link can be one row or any number up to a hundred, and you choose whether the other table shows the link back. Once rows are linked, a lookup column shows a field from the linked rows, a rollup summarises one, and a count counts them — each optionally restricted by a condition, so "open invoices" is as easy as "invoices".

Can I write formulas?

Yes. A formula column calculates from the row it is on and from the rows its relations point at, using 94 functions across control, text, number, date and list categories. The editor gives you a searchable palette of fields and functions and previews the result against real rows before you save. Every lookup, rollup and count can be opened as the formula it lowers to, and taken over by hand. today() is recalculated once a day; there is no now(), because a to-the-second clock would leave every row using it permanently out of date.

Are calculated columns live, and what happens when something breaks?

Calculated results are stored on the row, so you can sort by them, filter on them, group by them, chart them and read them over the API exactly like a column you typed. They are read-only, and while a recalculation is outstanding the cell says "Recalculating" rather than going blank. Errors are printed in spreadsheet form — #DIV/0!, #REF!, #TYPE!, #DEPTH! — and #REF! clears itself when you restore whatever was trashed. Deleting a field that a calculation reads is refused until you have seen what depends on it.

Where is the data stored, and is it used to train AI models?

Rows in a table are stored inside the BankSync boundary rather than passed through to an outside tool, which is why storing is an explicit per-feed choice rather than the default. The data is never used to train models. Deleting a table, a workspace or your account removes the stored rows and any attached files.

Who in my workspace can see a table?

Tables follow your workspace roles: the people you have already invited see them according to the permissions they hold. There are no per-table share links and no per-table permissions, and no public forms.

Can I import a CSV, or attach files to a row?

Yes to both. CSV import reads your header row, proposes column types for you to confirm, and re-importing the same file into a table whose key fields you have set updates the matching rows instead of duplicating them. An attachment cell holds up to ten files, up to 25 MB each, in an order you set, so a receipt or a contract can live next to the transaction it belongs to.

How many tables and rows do I get?

Every plan includes tables, starting at one table with 5,000 stored rows on Free and rising with each tier up to 100 tables and 2 million rows on Business. Enterprise is unlimited. See the pricing page for the table, row and attachment storage limits per plan.

Can I read and write a table from my own code or an AI agent?

Yes. Tables are a first-class resource on the REST API with full read and write access under scoped API keys, and the same operations are exposed to agents through the MCP server. That makes a table a small hosted datastore for a script or an app without running a database of your own.

come on in

Connect a bank, get a table

Nothing to set up, nothing to sign into twice. Your transactions land in a grid you can edit, chart and query.