KiwiScience logo
KiwiScience Kiwistat User Guide

Kiwistat User Guide

KiwiScience · statistics & graphing — how to use the application

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.

TabWhat it holds
Data tabsYour 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 tabsThe 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 tabsEvery 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:

RuleSubstitutesWhen to use
½ × detection limit (default)LOD ⁄ 2General-purpose compromise; the usual teaching default.
The detection limitLODConservative upper bound (may overstate low concentrations).
Zero0Optimistic lower bound; only if a true zero is plausible.
Excluded— (treated as missing)When you want to ignore non-detects entirely.
Substitution is fine when non-detects are a small fraction of the data. If more than about 20% of a column is censored, any single-value substitution biases the mean and SD — report the detection frequency and, for serious work, consider methods designed for censored data (e.g. Kaplan–Meier or regression on order statistics). Always state which rule you used.

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 include SUM, AVERAGE, MIN, MAX, COUNT, MEDIAN, STDEV, GEOMEAN, LOG10, LN, SQRT, EXP, ABS, ROUND, IF, AND, OR and more. A computed column updates whenever its inputs change; !M marks rows with missing inputs and !E marks 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:

DatasetGood for practising
River chemistryBoxplots, one-way ANOVA with the Levene check, log-for-statistics, correlation/PCA — and it contains real <LOD censored values.
Invertebrate countsSkewed 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 timeThe same plants measured on four occasions, in wide format — repeated measures ANOVA, sphericity corrections and the Time × Treatment interaction.
Algal growth vs phosphorusA 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 × lightA 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.

FormatWhat 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.

The Word report describes and displays what you ran, but you are responsible for the science: check that the chosen test suited the data, that assumptions held, and that the interpretation is sound before using any of the generated text.

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:

Statistical analyses were performed in Kiwistat (KiwiScience, https://www.kiwiscience.com), a browser-based statistics application in which all statistical procedures — including one-way, two-way and randomised-complete-block ANOVA, Welch's ANOVA, the Brown–Forsythe Levene test, post-hoc multiple comparisons (Tukey HSD, Games–Howell, Dunnett and others), Kruskal–Wallis and Mann–Whitney U tests, Shapiro–Wilk normality tests, least-squares linear regression and curve fitting, Pearson and Spearman correlation, principal components analysis, and power analysis (noncentral-F method) — are implemented as native JavaScript routines within the application and validated against R/SciPy reference values. No external statistical libraries are used; the JavaScript libraries SheetJS (xlsx), JSZip and docx.js are employed solely for data file import/export and report generation.

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?

  1. Enter data: column Catchment (text: A…C) and Nitrate (numeric), 18 rows. Set the unit to mg/L in the Column pane.
  2. 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.
  3. Run the ANOVA: Tests → One-way ANOVA; response = Nitrate, factor = Catchment, post-hoc = Tukey's HSD, Levene's test ticked. Press Run Test.
  4. 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.)
  5. Interpret: F2,15, p < 0.001; letters show C = “a”, B = “b”, A = “b” → catchment C is significantly higher; A and B are indistinguishable.
  6. Figure: open the graph tab, edit the title, set the y-label to “Nitrate (mg/L, log₁₀)”, adjust colours and size, Save as SVG.
  7. 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.

↑ Back to top