WaterfallBridge analyzes your spreadsheet automatically. To do this reliably, it needs the data in a flat, one-dimensional table — the same format used by databases, pivot tables, and BI tools. Think of it as "one column = one field, one row = one record."
Each column must contain one type of data only. Values of the same field should run vertically down the rows, not horizontally across columns. This is the "tidy data" layout that databases and analysis tools expect.
| Product | Jan | Feb | Mar |
|---|---|---|---|
| Widget A | 100 | 120 | 90 |
| Widget B | 200 | 180 | 210 |
Months are spread across columns. Each column mixes "month" and "revenue" concepts, making automated parsing impossible.
| Month | Product | Revenue |
|---|---|---|
| Jan | Widget A | 100 |
| Feb | Widget A | 120 |
| Mar | Widget A | 90 |
| Jan | Widget B | 200 |
| Feb | Widget B | 180 |
| Mar | Widget B | 210 |
One column per field, one row per record. Every cell in a column is the same data type.
Merged cells look tidy to humans but break machine reading. When cells are merged, many rows lose their value and the program cannot determine which data belongs to which record. Every cell must hold its own value.
| Region | Product | Revenue |
|---|---|---|
| East | Widget A | 500 |
| Widget B | 300 | |
| Widget C | 450 |
"East" spans three rows. The program sees only one value for the first row; the other two rows appear blank.
| Region | Product | Revenue |
|---|---|---|
| East | Widget A | 500 |
| East | Widget B | 300 |
| East | Widget C | 450 |
Each row explicitly states its Region. No ambiguity, and the program reads every record correctly.
= and point to the cell above → press Ctrl+D to fill down.
You can use formulas within a row to derive new columns (e.g. =D3*E3 for Quantity × Price).
However, do not reference other rows or other sheets.
Only the basic operators + − * / ( ) are supported.
| B | C | D (Revenue) | |
|---|---|---|---|
| Row 3 | Widget A | 100 | =C3+C4 |
| Row 4 | Widget B | 200 | =Sheet2!D4 |
=C3+C4 references another row; =Sheet2!D4 references another sheet. Both will cause errors.
| B (Qty) | C (Price) | D (Revenue) | |
|---|---|---|---|
| Row 3 | 50 | 10 | =B3*C3 |
| Row 4 | 80 | 12 | =B4*C4 |
Each formula only references cells in its own row and uses basic arithmetic. This is safe and reliable.
+ - * / ( ) — no SUM(), no VLOOKUP(), no named ranges, no cross-sheet references.
Do not place comments, totals, notes, or any other content in columns or rows that are outside the main data table. The program scans every non-empty cell; stray data will be misinterpreted as part of the dataset.
| Month | Product | Revenue | ← Note |
|---|---|---|---|
| Jan | Widget A | 100 | top seller! |
| Feb | Widget A | 120 | |
| Grand Total | 220 | ||
Column D contains a personal note; the last row is a manual total. Both confuse the parser.
| Month | Product | Revenue |
|---|---|---|
| Jan | Widget A | 100 |
| Feb | Widget A | 120 |
Only the defined columns and data rows remain. No extra text, no summary rows.
Every value in a column should be the same type — all numbers, all text, or all dates. Mixing types (e.g. numbers and text in the same column) can lead to misclassification or calculation errors.
| Month | Product | Revenue |
|---|---|---|
| Jan | Widget A | 100 |
| Feb | Widget A | N/A |
| Mar | Widget A | see note |
"N/A" and "see note" are text in a numeric column. The program cannot calculate with these values.
| Month | Product | Revenue |
|---|---|---|
| Jan | Widget A | 100 |
| Feb | Widget A | 0 |
| Mar | Widget A | 90 |
Use 0 for zero revenue, or leave the cell empty. Never substitute text for a numeric value.
0 (for numeric fields). Avoid placeholders like "N/A", "TBD", or "-".
WaterfallBridge expects the data to begin in a specific layout: Row 1 for Data Types, Row 2 for Field Names, and Row 3 onward for data records. Do not insert blank rows, title rows, or instructions above the table.
| Sales Report Q1 2025 | ||
| (all figures in USD) | ||
| Month | Product | Revenue |
|---|---|---|
| Jan | Widget A | 100 |
Two extra rows above the actual header shift the data layout and confuse the program.
| Row 1 (Type) | Dimension | Dimension | SumY |
|---|---|---|---|
| Row 2 (Name) | Month | Product | Revenue |
| Row 3+ (Data) | Jan | Widget A | 100 |
Row 1 = data types, Row 2 = field names, Row 3 onward = data. No extra titles or blank rows.
+ - * / ( ).