---
title: "Binding Data: Group By, Value, Aggregation & Bucketing"
description: "Point a widget at a feed and shape it with the Group by, Value, and Split into series channels, time bucketing, and aggregation, with no formulas for the everyday path."
section: "Dashboards"
canonical: "https://banksync.io/docs/dashboards/binding-data"
---

Binding is how you tell a widget what to show: which feed to read, what to put on each axis, and how to summarize the numbers. You do it in the inspector's **Data** tab with plain controls, and the chart updates as you go. No formulas are needed for the everyday path (the Shape data dialog later on does let you write column expressions if you want them).

The rich controls on this page (date bucketing, aggregate, Keep top N, Spending/Income/Net) appear for the common chart kinds that show their fields as labeled **chips**: line, area, bar, column, scatter, pie, donut, and the like, plus the KPI, table, and gauge widgets. A handful of less common kinds (radar, treemap, box plot, heatmap matrix, and a few others) show a simpler Data tab: one plain field picker per role (Category, Value, and so on), with no bucket or aggregate dials. If your widget shows simple field pickers instead of chips, that is expected for those kinds.

> **Want to follow along? Build monthly spending:** 'A concrete run-through, end to end: pick your Transactions feed as the source, set Group by to Date bucketed by Month, set Value to Amount, leave the aggregate on Sum, and set Show amount as to Spending. You now have a clean bar of monthly spend. Every step below explains one of those dials.'

[![Binding data to a widget through the inspector: selecting a chart, choosing a live Chase source, widening the window to a year, then grouping by month and summing amounts as spending so the chart re-aggregates live.](https://cdn.banksync.io/videos/bind-widget-data.poster.3db2e380aaeb1b50.png)](https://cdn.banksync.io/videos/bind-widget-data.194d7d3a37e1a26c.mp4)

[Watch: Binding data to a widget through the inspector: selecting a chart, choosing a live Chase source, widening the window to a year, then grouping by month and summing amounts as spending so the chart re-aggregates live.](https://cdn.banksync.io/videos/bind-widget-data.194d7d3a37e1a26c.mp4)

## Choose a data source

Each widget reads from one source. In the Data tab, pick the feed (or live bank source) the widget should chart. If you bound the wrong one, switch it here and your channel choices carry over where they still make sense: a field the new source also has (like Date or Amount) stays put, but any field the new source does not have is dropped, so a chip can come up empty after a switch. If that happens, just pick a replacement field from the now-empty chip.

![The widget inspector's Data tab showing the source picker, a list of feeds and live bank sources the widget can read from, with one source selected.](https://cdn.banksync.io/screenshots/dashboards/source-picker.bd30131c70192f79.png "Pick the feed or bank source the widget charts.")

## The channels

A chart maps fields from your data onto visual roles. Each role is a labeled **chip** in the Data tab; tap a chip to pick its field and adjust how it behaves. Read each chip as the plain question it answers:

- **Group by** — "What goes along the bottom?" The category or time field on the x-axis: merchant, category, or
  date.
- **Value** — "What number am I measuring up the side?" The measure on the y-axis: amount, count, or balance.
- **Split into series** — "Do I want one line per group?" An optional second category that splits one line or bar into
  several, one per value.

Those are the three roles you will reach for on almost every chart. (Some kinds expose a Color chip too, which works like a second Group by.)

![The inspector Data tab Fields panel for a cartesian chart, with a Group by dimension chip (Merchant) stacked above a Value measure chip (Amount, summarized as sum, labeled spending).](https://cdn.banksync.io/screenshots/dashboards/data-channels.4455be55fad0722f.png "The Fields panel: a Group by chip stacked above a Value chip.")

![The Value channel chip in the inspector, summing Amount, labeled as spending, showing the chip's plain-English 'sum · spending' summary.](https://cdn.banksync.io/screenshots/dashboards/channel-measure.3101a680a16513f1.png "The Value channel chip, summing Amount as spending.")

> **Charting two numbers at once (combo charts):** 'There is no separate "Second value" chip. To put a second measure on a chart (for example bars for spend plus a line for count), you add it through the chart\\'s own settings: bar-plus-line combos and a second y-axis are configured on the chart kind, not by a third channel. Start with one Value, then reach for the combo or secondary-axis option once the basics read right.'

## Bucketing dates

When you Group by a date, you rarely want one point per day forever. Tap the date chip to open its **Bucket by** control and group dates into readable periods:

| Bucket                              | Shows                                     |
| ----------------------------------- | ----------------------------------------- |
| Day / Week / Month / Quarter / Year | One point per calendar period.            |
| Exact                               | Every individual timestamp, no bucketing. |

Pick the period that tells the story (monthly for a yearly trend, daily for a single month). You never write a date formula; the chart re-buckets instantly.

### Cyclical buckets

Below the calendar periods, a **Cyclical** section folds every date into a repeating cycle, which is exactly what you want for "when do I spend?" questions rather than "how much over time?":

| Cyclical bucket | Answers                                                                                      |
| --------------- | -------------------------------------------------------------------------------------------- |
| Hour of day     | Which hours see the most activity (0 to 23).                                                 |
| Day of week     | Which weekday you spend or earn the most.                                                    |
| Month of year   | Seasonality across the calendar (every January grouped together, every February, and so on). |

For example, Group by Date set to **Day of week** turns a year of transactions into a seven-bar chart of spend by weekday.

The Bucket by control is a segmented set of the calendar periods (Day through Year, plus Exact), with the Cyclical options (Hour of day, Day of week, Month of year) tucked into a section below it, so the whole choice lives on one popover off the date chip.

![The time channel chip in the inspector with its bucket set to Month, showing the chip's 'Group by · Date · by month' summary.](https://cdn.banksync.io/screenshots/dashboards/channel-time.a4e14eddc913c603.png "A date field bucketed by month.")

## Aggregating the value

When several rows fall into the same group (all of January's transactions, say), BankSync combines them. The Value chip's **Aggregate** control chooses how. Sum, Average, and Count sit right on the control; the rest live under the Advanced section of the same chip:

| Aggregate          | Combines rows by                                                                        |
| ------------------ | --------------------------------------------------------------------------------------- |
| Sum                | Adding them up (total spend).                                                           |
| Average            | Their mean.                                                                             |
| Count              | How many there are.                                                                     |
| Last               | The latest value in each period (the right choice for balances; see the callout below). |
| First              | The earliest value in each period.                                                      |
| None               | One mark per row, no combining at all.                                                  |
| Min / Max / Median | The smallest, largest, or middle value.                                                 |

On the Value chip's popover, Sum, Average, and Count sit on a segmented control at the top, the Show amount as option follows directly beneath, and the remaining aggregates (Last, First, None, Min, Max, Median) live under the chip's Advanced section.

> **Sum is not always right:** Sum is correct for flows like spending or fees, but wrong for balances. Adding Monday's balance to Tuesday's is meaningless, so BankSync defaults balance-like measures to the Last value in each period instead of summing (that is the Last aggregate in the table above, selected for you). Check the aggregate matches what the number means before trusting a total.

## Spending, income, or net

This is the control a finance reader reaches for most. When the Value chip is bound to a **signed spending field** (the kind where money out is negative, like the Transactions feed's Amount), a **Show amount as** option appears on the chip and flips the sign so the chart reads naturally:

- **Spending**: money out, shown as a positive number.
- **Income**: money in only.
- **Net**: income minus spending (the signed total).

You pick the meaning; BankSync handles the math.

> **Don't see Show amount as?:** 'It only shows for signed spending columns. A plain balance, an income-only column, or an amount where money out is already positive will not offer it, because the sign-flip would not mean anything for those. If the option is missing, your column simply does not need it.'

## Keep the top few categories

A category with hundreds of values makes an unreadable chart. On a Group by chip, **Keep top** limits it to the largest few; a "Group the rest as Other" switch rolls everything else into a single "Other" slice. So a pie of 387 merchants becomes a clean top-10-plus-Other. (This control appears on category chips, not on date or measure chips.)

Both controls sit on the Group by chip's popover: a Keep top stepper for the count and, directly under it, the "Group the rest as Other" switch.

## Advanced: running totals and shares

Open the **Advanced** section on the Value chip to restate the number without changing the underlying data. The **Show as** control here offers:

- **None**: the value as-is.
- **% of total**: each value as a share of the whole.
- **Cumulative**: a running total across the groups.

Advanced also holds **Number format** (currency, percent, or plain, with decimal control) and, for less common aggregates, an "Aggregate (other)" picker with Min, Max, Median, Last, and First.

> **Two controls named alike:** '"Show amount as" (Spending / Income / Net, on the main chip) and the Advanced "Show as" (None / % of total / Cumulative) are two separate controls. The first decides which direction of money you are counting; the second restates that number as a share or a running total. You can use both at once.'

> **If a number looks doubled:** 'If a Value chip shows an amber warning that reads "Already aggregated in Shape data," it means the field was already summarized once in the Shape data step (a query-level total) and the chart is summing it a second time. The chip offers a one-tap Set to None to stop the second pass, so the chart shows the already-summarized number as-is. Trust the warning: it is there to stop a wrong total.'

![A Value channel chip in the inspector showing the 'Already aggregated in Shape data' double-count warning, with a one-tap Set to None action to reset the aggregate.](https://cdn.banksync.io/screenshots/dashboards/channel-double-count.71adf98f21f41873.png "The double-count warning offers a one-tap Set to None fix.")

## Joining feeds and shaping data

The channels cover the common case of one feed. When you need more, open **Shape data** from the Data tab. That dialog is a multi-step pipeline, kept out of the everyday channel controls so the simple path stays simple. Each step does one thing:

- **Filter**: drop rows before charting (for example, only this year).
- **Summarize**: group and total rows at the data level (this is the step that, if you then also aggregate on the chart, triggers the double-count warning above).
- **Sort** and **Limit**: order the rows and keep the first few.
- **Compute**: derive a new column with an expression. This is the one place the everyday "no formulas" rule does not apply.
- **Join**: combine two feeds into one source.

![The Shape data pipeline editor as an ordered list of collapsed step cards (Filter, Compute, Summarize, Sort, Limit), each showing a one-line summary of a realistic finance transform.](https://cdn.banksync.io/screenshots/dashboards/shape-pipeline.3ac844d827b8862c.png "The Shape data pipeline: each step does one thing, top to bottom.")

## Binding into a table

A Table widget binds fields as **columns** rather than axes, but the idea is the same: you choose which fields appear and how each one reads. Beyond plain text and numbers, a column can render as currency, a status pill, a progress bar, a tiny sparkline, a heat-shaded cell, a duration, a rating, a chip list, a link, and more. So your Amount column can show as money, and a category column can show as colored pills. The per-column formatting lives in the table widget's own controls; see the [KPI, table and gauge guide](/docs/dashboards/kpi-table-gauge) for how to set each column's display.

## Related guides

- [The chart kind catalog](/docs/dashboards/chart-kinds): pick the kind that fits your binding.
- [Filters & cross-filtering](/docs/dashboards/filters-and-cross-filtering): let viewers narrow every widget at once.
- [KPI, table & gauge widgets](/docs/dashboards/kpi-table-gauge): binding specifics for the non-chart kinds.

[Add dashboard filters](/docs/dashboards/filters-and-cross-filtering)
