YOUR DATA. A CLEAR PATH FORWARD.

The next dataset.
Not the same
busywork.

Turn the steps between raw files and useful answers into a workflow you can see, check, and run again.

ioPipe brings data preparation, statistics, maps, and AI together on one visual desktop canvas.

Built for analysts and researchers · macOS download coming soon

THE WORK IS VISIBLE

Every connection is a step you can inspect.

ioPipe canvas showing sample rows in the court rulings pipeline, with a quarantine branch for extraction errors and SQLite, Parquet, and CSV outputs
IOPIPE CANVAS · ROW PREVIEWScourt_rulings.iopipe

SAVE THE METHOD, NOT JUST THE OUTPUT

A clean dataset is useful.
A repeatable path to it is better.

When the next survey wave lands or another batch of files arrives, the work shouldn’t start over. In ioPipe, your preparation, analysis, and exports stay connected in a saved pipeline.

HOW IT WORKS

Build it. Check it. Run it again.

Work visually, with the detail close at hand.

01 Connect the steps
Bring in your files, then connect nodes to clean, join, and analyze them. Branch the same data into a table, a chart, or several export formats.
02 See what changed
Inspect sample rows at each step before running the full dataset. Route extraction errors into a separate output so they’re available for review.
03 Keep what works
Save the whole graph as an .iopipe file. Reuse it with new inputs, share the method, or run it from the command line.

ONE CONNECTED WORKFLOW

From “what’s in these files?”
to “here’s what we found.”

Keep the route from source to result in view.

↳ Make messy data usable
Extract HTML tables, clean text, handle missing values, and join datasets. Read survey formats including SPSS, SAS, and Stata.
↗ Follow through to the answer
Score survey scales, compare groups, and fit regression models. Turn the results into charts or maps in the same graph.
✳ Give AI a defined job
Classify reviews or extract fields with a configured local or hosted model. Cache responses and replay them as you refine downstream steps.
⇄ Take the work with you
Export datasets to CSV, Parquet, SQLite, and more. Save charts as SVG, PNG, or PDF. Share the pipeline alongside the result.

Work with an AI assistant, too. Through MCP, a compatible assistant can inspect your pipeline, connect nodes, preview results, and start runs.

REAL WORKFLOWS, CONCRETE OUTPUTS

Start with a question. End with something useful.

01 / DATA EXTRACTION

Turn court pages into a dataset

Read scraped HTML, extract ruling tables, rename the columns, and filter by year. The same cleaned data goes to CSV, Parquet, and SQLite. Pages without a matching table go to a quarantine file.

The sample run exported seven rulings and flagged one page with no matching table.

Three rows from the CSV export
CaseDateOutcome
2019-442019-03-02Upheld
2019-452019-03-02Reversed
2024-022024-02-20Dismissed

02 / EXPERIMENT ANALYSIS

Find where a price-drop tag works

Aggregate weekly iced tea sales to the store level. Then use a two-way ANOVA to test whether the tag’s effect depends on shelf placement, and chart the six group means.

In the simulated data, end-cap displays averaged 69 units per week with a tag and 55 without. Eye-level displays averaged about 50 either way.

Grouped bars comparing weekly sales with and without a price-drop tag at three shelf placements
Interaction chart exported by ioPipe

03 / GEOSPATIAL ANALYSIS

Map where the 2024 polls missed

Aggregate archived 538 polls and county election returns to the state level. Join the results to Census state boundaries and map the gap between the final poll average and the result.

All ten states with at least ten late polls shifted toward Trump relative to their poll averages in this run.

US choropleth showing the difference between the 2024 election result and final state poll averages
Polling error map exported by ioPipe
More example projects
  • Brand tracking — combine survey waves, score scales, and export a codebook and SPSS file.
  • Satisfaction drivers — use factor analysis and regression to study satisfaction and score churn risk.
  • Campaign test — validate a send log, join CRM records, and compare email offers by segment.
  • App redesign — test how an app redesign affects spending and whether the indirect effects vary by age.
  • Customer reviews — extract review fields from HTML and compare human and model topic labels. AI steps require a configured model.
  • Product reviews — classify real reviews by sentiment using a local model adapter. This example requires local model setup.
  • Store catchment — find the nearest store, group customers by distance, and map areas with weak coverage.

UNDER THE HOOD

Simple to follow. Plenty to work with.

Explore the built-in tools for preparation, analysis, visualization, and export.

Explore the full node catalog and Python options

Built-in node catalog

Expand a category to see its nodes. Each entry shows the name from the app and the identifier used in .iopipe files. Run iopipe nodes <node-id> to see a node’s ports and parameters.

File discovery and input readers 5
  • Files source.files
  • Read CSV source.csv
  • Read SAS source.sas
  • Read SPSS source.sav
  • Read Stata source.dta
HTML parsing and extraction 3
  • Extract Fields html.extract_fields
  • Extract Table html.extract_table
  • Parse HTML html.parse
Column transformations 18
  • Automatic Recode var.autorecode
  • Clean Text var.clean_text
  • Compute Variable var.compute
  • Count Values within Cases var.count
  • Date & Time var.datetime
  • Dummy Coding var.dummy
  • Lag var.lag
  • Lookup / Map Values var.lookup
  • Pseudonymise var.pseudonymise
  • Recode var.recode
  • Rename table.rename
  • Replace Missing Values var.replace_missing
  • Reverse Score var.reverse
  • Scale Score var.scale_score
  • Select / Drop / Reorder table.select
  • Standardize var.standardize
  • String Functions var.strings
  • Visual Binning var.binning
Row operations 7
  • Add Row Number table.row_number
  • Explode table.explode
  • Identify Duplicate Cases table.duplicates
  • Limit / Range table.limit
  • Sample table.sample
  • Select Cases table.filter
  • Sort Cases table.sort
Joins, aggregation, and reshaping 7
  • Aggregate table.aggregate
  • Join table.join
  • Merge: Add Cases merge.add_cases
  • Merge: Add Variables merge.add_variables
  • Restructure: Cases to Variables restructure.cases_to_vars
  • Restructure: Variables to Cases restructure.vars_to_cases
  • SQL table.sql
Labels, weights, and validation 7
  • Apply Labels meta.apply_labels
  • Define Missing Values meta.missing
  • Split File meta.split
  • Validate Data meta.validate
  • Value Labels meta.value_labels
  • Variable Properties meta.properties
  • Weight Cases meta.weight
Data profiling and summaries 7
  • Crosstabs stats.crosstabs
  • Data Profile stats.profile
  • Descriptives stats.descriptives
  • Explore / Quantiles stats.explore
  • Frequencies stats.frequencies
  • Means by Group stats.means
  • Missing Value Patterns stats.missing_patterns
File, database, and report outputs 10
  • Codebook sink.codebook
  • Export Chart sink.chart
  • Results Table sink.results_table
  • Save Model sink.model
  • Write CSV sink.csv
  • Write JSONL sink.jsonl
  • Write Parquet sink.parquet
  • Write SPSS sink.sav
  • Write SQLite sink.sqlite
  • Write Stata sink.dta
Statistical tests and models 12
  • ANOVA stats.anova
  • Chi-square stats.chisquare
  • Correlation Matrix stats.correlation
  • Linear Regression stats.linear
  • Logistic Regression stats.logistic
  • Mediation & Moderation (PROCESS) stats.mediation
  • Multiple Comparisons stats.p_adjust
  • Nonparametric Tests stats.nonparametric
  • PCA / Factor Analysis stats.factor
  • Predict stats.predict
  • Reliability stats.reliability
  • t-tests stats.ttest
Charts and result tables 12
  • Bar Chart chart.bar
  • Box Plot chart.box
  • Chart Style chart.style
  • Coefficient Plot chart.coefficients
  • Heatmap chart.heatmap
  • Histogram chart.histogram
  • Line / Time Series chart.line
  • Map chart.map
  • Model Diagnostics chart.diagnostics
  • Q-Q Plot chart.qq
  • Scatter chart.scatter
  • Small Multiples chart.grid
Geospatial processing and maps 34
  • Aggregate & Suppress geo.aggregate_suppress
  • Aggregate to Areas geo.aggregate_areas
  • Areal Interpolation geo.areal_interpolation
  • Buffer geo.buffer
  • Clip geo.clip
  • Dissolve geo.dissolve
  • Distance geo.distance
  • Explode Multi-part geo.explode
  • Gazetteer Match geo.gazetteer_match
  • Geocode geo.geocode
  • Geomask geo.geomask
  • Geometry to Columns geo.geometry_to_columns
  • Grid / Tessellate geo.grid
  • H3 Index geo.h3
  • Make Points geo.make_points
  • Measure geo.measure
  • Moran's I geo.morans_i
  • Nearest Neighbour geo.nearest
  • Parse Geometry geo.parse_geometry
  • Read GeoJSON geo.read_geojson
  • Read GeoPackage geo.read_geopackage
  • Read GeoParquet geo.read_geoparquet
  • Read Shapefile geo.read_shapefile
  • Reproject geo.reproject
  • Simplify geo.simplify
  • Spatial Filter geo.spatial_filter
  • Spatial Join geo.spatial_join
  • Spatial Lag geo.spatial_lag
  • Spatial Weights geo.spatial_weights
  • Validate & Repair Geometry geo.validate
  • Write GeoJSON geo.write_geojson
  • Write GeoPackage geo.write_geopackage
  • Write GeoParquet geo.write_geoparquet
  • Write Shapefile geo.write_shapefile
AI models and coding agreement 5
  • Agreement stats.agreement
  • Embed llm.embed
  • LLM Classify llm.classify
  • LLM Extract llm.extract
  • LLM Prompt llm.prompt
Reusable graph inputs and outputs 2
  • Library Input graph.input
  • Library Output graph.output

Optional Python sidecar

Use Python reference implementations for Descriptives, Means, Frequencies, and Crosstabs during full runs. Enable it in the desktop app under Settings → Python sidecar and turn it on from the toolbar, or point the command line at your configured sidecar with iopipe run FILE.iopipe --sidecar verify.

Previews use the built-in implementation. During a full run, ioPipe falls back to the built-in node when the Python implementation declines a configuration. The node’s run statistics show which implementation ran.

BUILD ON YOUR OWN WORK

Make the next run
the easy part.

ioPipe for macOS is on its way. Explore a sample workflow while the public download is being prepared.

Explore the examples macOS download coming soon