Kiwistat is a spreadsheet-style statistics and graphing tool that runs entirely in your browser. This guide covers the application: the interface, entering and importing data, the side panes, graphs, and saving. The statistics themselves — choosing a test, its assumptions, and how to interpret and report the output — have their own guide: the Statistics Guide.
1A tour of the interface
The Workbook list in the sidebar groups everything by data tab: each data tab has the results tabs derived from it nested beneath it, so it is always clear which analysis came from which data. On a narrow screen the sidebar tucks away behind the ☰ menu button.
| Tab | What it holds |
|---|---|
| Data tabs | Your spreadsheets. Use + data tab at the foot of the list to add another (e.g. one per experiment), double-click a tab to rename it, × to close it (this also closes its results tabs). |
| Results tabs | The numeric output of each analysis, including assumption checks and recommendations, nested under the data tab the test was run on. Every run opens its own new tab, named after the test, so earlier results are never overwritten — re-run a test after changing a setting and compare the tabs side by side. (There is no need to add results tabs by hand — they appear when you run a test.) A PCA adds two tabs: the scores plot and a separate loadings plot. |
| Graph tabs | Every results tab is joined to a small chart-icon button beside it. Click it for the figure belonging to those results, with a full options panel. |
To the right of the data grid sits the side panel with three views: Column (properties and statistics of the selected column), Sheet (show/hide columns, sorting), and Tests (choose and run a statistical test). Drag the divider next to the panel to resize it.
Small ? buttons throughout the app open short context help, each linking to the relevant section of this guide or the Statistics Guide. Your work is automatically backed up in the browser and reloaded when you return. Undo/Redo (Ctrl/Cmd+Z) covers almost everything, including closing tabs.
2Working with data
Arrange data with one row per observation and one column per variable — the layout every statistics package expects. For example, 6 nitrate measurements at each of 3 sites is 18 rows with columns Site (text) and Nitrate (numeric) — not three columns of six numbers.
Column types
Every column is automatically detected as numeric (measurements) or text (grouping factors like site, species, treatment). The badge under the column name shows the type — click it to override. A column is treated as numeric when at least half of its filled cells are numbers.
Yellow cells and missing values
- Yellow cells are text in a numeric column — a typo, or entries like “n.d.” or “<0.05”. They are kept so you can see them, but ignored by every statistic. Use Clean column in the Column pane to blank them all at once.
- Empty cells are missing values. They are simply left out of calculations — you do not need a placeholder code.
Editing the grid
- Click a cell and type; Tab/Enter and the arrow keys move between cells.
- Select cells as in Excel: drag across cells or hold Shift and use the arrow keys for a block; Cmd/Ctrl+click to add individual cells; click the top-left corner square (or Cmd/Ctrl+A) to select the whole table. Then Ctrl/Cmd+C/X/V copies, cuts or pastes (works to and from Excel, Numbers and Google Sheets).
- A whole-table copy includes the header row — paste it into a new data tab and it loads complete with headers (pasting it into a sheet that already holds data asks before replacing).
- Pasting a column straight out of Excel: if you copy a column together with its heading and paste it onto the first data row, the heading goes into the column header where it belongs and the numbers start at row 1. Kiwistat only does this when the top cell is text and the values below it are numbers — a column of group labels (Site, Species…) is left alone as data. Undo restores the old header if you didn't want it.
- Right-click a cell to insert or delete rows and columns, or to shift a single cell: Delete cell (shift up) removes it and pulls the rest of that column up; Insert cell (shift down) opens a gap and pushes the rest down (the table grows so nothing drops off the bottom). Only that column moves — the neighbouring columns stay where they are, which is exactly what you want when one value was typed into the wrong row. Select a block first and the menu offers to shift all of the selected cells at once.
- Click a column letter (A, B, C…) to inspect that column in the Column pane.
3Detection limits (censored values)
Environmental chemistry is full of results reported as “below the detection limit”. Type them exactly as the lab reports them — for example <0.05 or <0.002. Kiwistat recognises these as censored values, shows them in blue italics, and keeps them as information rather than discarding them.
By default each censored value is replaced by half the detection limit in calculations — the most common simple convention. Select the column and use the Below-detection values count as… menu in the Column pane to choose the rule per column:
| Rule | Substitutes | When to use |
|---|---|---|
| ½ × detection limit (default) | LOD ⁄ 2 | General-purpose compromise; the usual teaching default. |
| The detection limit | LOD | Conservative upper bound (may overstate low concentrations). |
| Zero | 0 | Optimistic lower bound; only if a true zero is plausible. |
| Excluded | — (treated as missing) | When you want to ignore non-detects entirely. |
4Importing files
The Import menu on the Data tab accepts .csv, .txt, .xlsx, .xls and Apple .numbers files. Every import opens an alignment preview where you can:
- Pick which worksheet to load (multi-sheet workbooks);
- Click the row number that holds your column labels — rows above it are skipped (useful when files start with notes or instrument headers);
- Tick Swap rows ↔ columns when the labels run down the side instead of across the top;
- Choose No label row to auto-name columns Col1, Col2, …;
- Load into a new data tab (keeps your current data) or replace the current tab.
You can also paste data directly: open Paste data from spreadsheet above the grid, paste a block with its header row on top, and press Load Pasted Data. The box is emptied and folded away once the data is in the grid, so there is never a stale second copy of your data sitting above the table.
5The Column & Sheet panes
- Name and Unit
- Used in test output and as default axis labels — set them early and your graphs label themselves.
- Use log₁₀ values for statistics
- When ticked, every statistical test reads log₁₀ of this column's values, without changing the data you see. This is the standard remedy for right-skewed measurements (concentrations, counts, biomass), which are very common in environmental data. Zero and negative values cannot be logged and are left out while the option is on. Test output and axis labels switch to “log₁₀(name)” automatically. (Why transform? See the statistics primer.)
- Apply formula
- Computes an empty column from other columns row-by-row, using column letters:
=(D-C)*A/B,=SUM(A:D)*0.01,=IF(B>10, 1, 0). Available functions includeSUM,AVERAGE,MIN,MAX,COUNT,MEDIAN,STDEV,GEOMEAN,LOG10,LN,SQRT,EXP,ABS,ROUND,IF,AND,ORand more. A computed column updates whenever its inputs change;!Mmarks rows with missing inputs and!Emarks maths errors. - Cumulative total
- A running sum of another column (e.g. cumulative rainfall).
- Clean column
- Blanks all non-numeric cells and error markers; freezes a computed column to plain values.
- Statistics & mini Q-Q plot
- The pane shows n, mean, geometric mean, median and spread, plus a small normal Q-Q plot: if the points follow the dashed line, the column is roughly normally distributed.
In-grid cell formulas are also supported: type =A1*B1 style formulas directly into cells, using arrow keys or clicks to point at cells while typing.
The Sheet pane
The Sheet view of the side panel manages the sheet as a whole: untick a column to hide it from the grid (it stays in the data and remains available to tests), and sort rows by up to four columns — empty cells always sort last. Columns that are cumulative totals can't be used as sort keys because they depend on row order.
6Example datasets & guided tour
New to the program, or to a particular test? Use the Examples ▾ button on the data toolbar to load a ready-made dataset into a fresh tab. Each one opens with a short note suggesting what to try:
| Dataset | Good for practising |
|---|---|
| River chemistry | Boxplots, one-way ANOVA with the Levene check, log-for-statistics, correlation/PCA — and it contains real <LOD censored values. |
| Invertebrate counts | Skewed counts with zeros: normality checking, then Kruskal–Wallis and Mann–Whitney. |
| Wheat yield trial (RCBD) | A blocked field experiment — blocked ANOVA vs a naïve one-way ANOVA. |
| Seedling height over time | The same plants measured on four occasions, in wide format — repeated measures ANOVA, sphericity corrections and the Time × Treatment interaction. |
| Algal growth vs phosphorus | A dose–response relationship: linear regression, curve fitting, and power analysis. |
| Soil elements (7 locations) | 20 elements (mg/kg) in topsoil from seven land uses: PCA, correlation matrices, ANOVA of single elements, boxplots. |
| Lettuce growth: fertiliser × light | A 3 × 2 factorial experiment with a strong interaction — made for two-way ANOVA. |
Nothing you do to an example affects your own data — it lands in its own tab, which you can close when done.
7Graphs
Every analysis with a figure gets a graph tab. Two ways to customise:
- Click any text on the graph — the title, axis labels, tick labels, group names, legend entries — and type. Edits persist through option changes.
- The options panel: graph width and height, fonts and sizes, text/axis colour, primary and secondary colours (plus per-bar colours), background, grid lines, log-scaled axes, axis limits, axis crossing points, marker size, line width, bar width, error bars on/off, legend on/off. Bar charts can show mean ± SE or geometric mean with SE range, and can overlay the raw data points; regression plots offer confidence and prediction bands.
Save as SVG exports a vector file (crisp at any size, editable in Inkscape/Illustrator — the right choice for theses and papers; background is transparent). Save as PNG exports a high-resolution image for slides.
8Saving, opening and exporting
Everything lives in the File menu in the header: Open… and Save / Export…, which opens a dialog where you choose the format.
| Format | What you get |
|---|---|
| Excel workbook (.xlsx) | Every data tab as a worksheet, a Results sheet (including a native, editable Excel chart), and the complete Kiwistat project embedded — Open… restores all tabs, results and graphs exactly. After the first save, Kiwistat autosaves to the same file. |
| Apple Numbers (.numbers) | A Numbers file with your data tabs and results text — for sharing with Numbers users. (Charts and the restorable project state are only in the .xlsx save.) |
| Word report (.docx) | A document that walks through every results tab: an auto-written methods sentence describing the test you ran, the results tables, and the figure. It's a first draft to edit into your thesis or manuscript — not a finished chapter. |
| Open… | Reopens a Kiwistat .xlsx project, or imports any plain Excel/Numbers file through the alignment preview. |
Kiwistat also keeps an automatic backup in your browser, restored silently when you come back.
9Describing Kiwistat in publications
Journals increasingly ask exactly what software performed the statistics. Kiwistat does not call any third-party statistical library: every test is computed by statistical routines written natively in JavaScript inside the application itself (for example, Shapiro–Wilk uses Royston's approximation, and studentized-range and Dunnett p-values are obtained by direct numerical integration), and these routines are validated against R and SciPy reference values. The only external JavaScript libraries used are for file handling — SheetJS (xlsx) for Excel/Numbers import and export, JSZip for workbook packaging, and docx.js for Word report export; figures are drawn as native SVG. The following paragraph can be pasted into a methods section:
Trim the list of tests to the ones you actually used, and add your access date or the site version if your journal asks for one. Guidance on what to report for each test is in the Statistics Guide under Reading & reporting results.
10Worked example
Does stream nitrate differ among three catchments (A, B, C), 6 samples each?
- Enter data: column Catchment (text: A…C) and Nitrate (numeric), 18 rows. Set the unit to mg/L in the Column pane.
- Check normality: Tests → Normality & Transformation; variable = Nitrate, group by = Catchment, transformation = log₁₀. Suppose the raw data are right-skewed and log fixes it → tick Use log₁₀ values for statistics on Nitrate.
- Run the ANOVA: Tests → One-way ANOVA; response = Nitrate, factor = Catchment, post-hoc = Tukey's HSD, Levene's test ticked. Press Run Test.
- Check assumptions in the output: Levene p = 0.51 → variances fine. (Had it failed: use the reported Welch's ANOVA and switch the post-hoc to Games-Howell — see Levene's test & unequal variances.)
- Interpret: F2,15, p < 0.001; letters show C = “a”, B = “b”, A = “b” → catchment C is significantly higher; A and B are indistinguishable.
- Figure: open the graph tab, edit the title, set the y-label to “Nitrate (mg/L, log₁₀)”, adjust colours and size, Save as SVG.
- File → Save / Export… the project as .xlsx.
11FAQ & troubleshooting
- A cell has turned yellow.
- It holds text inside a numeric column. It is ignored by statistics; fix the value or use Clean column.
- My numeric column shows the “text” badge.
- More than half its filled cells aren't numbers (check decimal commas, units typed into cells, thousands separators). Fix the cells or click the badge to force numeric.
- “Need at least 2 groups for ANOVA.”
- The factor column has fewer than two distinct non-empty values — or you picked the wrong column as factor.
- “No within-group replication.”
- Every group has only one observation. Check that the factor is a grouping variable, not a continuous measurement (which would make every value its own “group”).
- The log option warns about zeros/negatives.
- Those rows are excluded from statistics while the option is on. For counts with zeros, a √ transform (via a formula column,
=SQRT(A)) may suit better, or switch to a non-parametric test. - My data still aren't normal after transforming.
- Use a non-parametric test: Kruskal–Wallis for 3+ groups or Mann–Whitney U for 2. They work on ranks and assume nothing about the distribution.
- “Mann–Whitney U needs exactly 2 groups.”
- Your factor has more (or fewer) than two levels. Use Kruskal–Wallis for 3+ groups, or hide/remove the extra groups first.
- “Not enough data for a blocked ANOVA.”
- RCBD expects each treatment once in each block. Check for missing cells, duplicate treatment×block combinations, or a mis-assigned block column.
- A cell is blue and italic.
- It's a censored value like
<0.05(below a detection limit). It's kept and substituted per the Column pane's detection-limit rule — not an error. - The power analysis says I need a huge sample.
- The effect you asked to detect is small relative to the noise. That's a real finding — either the effect isn't worth chasing, or you need to reduce variability (blocking, better technique) rather than just adding replicates. See Power analysis.
- My regression R² is high but the residual plot curves.
- A line isn't the right model even though it fits “well”. Try curve fitting or transform a variable — the diagnostic plots, not R², tell you whether a straight line is appropriate.
- The Word report says there are no results.
- Run at least one test first. The report includes every results tab that contains a completed analysis.
- My imported file loaded sideways / with the wrong header row.
- Re-import and use the alignment preview: click the correct label row, or tick Swap rows ↔ columns.
- I overwrote something.
- Ctrl/Cmd+Z. Undo history covers data edits, tab operations and graph options.
- Where did my graph go?
- Every results tab has a graph button joined to it in the Workbook list; make sure the matching one is selected. Normality output only shows a graph when a group has ≥ 3 values.
Kiwistat · KiwiScience — this guide is reachable from Help → User guide in the app and from the “?” help buttons throughout. The tests themselves are covered in the Statistics Guide.
