Patent-pending · Source-available engine

Statistics on your data —
without moving it.

AirStat turns the data already in your cloud storage into compact, queryable AirTrees — then answers percentile, distribution and heatmap questions in milliseconds. Nothing to deploy. Your data never leaves your account.

Try it GitHub Azure
request latency {{ hn }}
{{ hbig }}
{{ hsmall }}
Drag to query the AirTree — the raw data is never rescanned.
{{ s.big }}
{{ s.label }}
Three names, one idea
{{ nm.name }}
{{ nm.tag }}
{{ nm.desc }}

The flow a user experiences

{{ st.no }}
{{ st.title }}
{{ st.body }}
It reads your data for a single request and writes results back to your own account — it doesn't keep a copy.
What you can ask
{{ c.t }}
{{ c.d }}
Inputs: Parquet · CSV · raw binary numeric data — in your cloud storage.
Get started

Summarize once. Query forever.

Run the source-available engine yourself, get the hosted service on the Azure Marketplace, or have us walk you through it on your own data.

AirTree · source-available
Run the engine yourself
The histogram engine is published openly, source-available for non-commercial use. Build it, then generate and query AirTrees from C++ or Python — on your own machine, today.
Try it on GitHub
AirStat · live on Azure
Get it hosted on Azure
The fully-hosted service — point at a file in your own cloud storage and query in place. Live now on the Azure Marketplace, with more clouds to follow.
Try it on Azure
Talk to us
See it on your data
Prefer a guided walkthrough? We'll run AirStat against a file in your own storage and show you setup, signing and a live query.
How AirTree works

A number is already an address. AirTree just files it.

Each value's leading digits are the broad region, its trailing digits the exact street. AirTree files every value into a tree, keeping only the addresses that actually have residents — and counting them as it goes, in a single pass.

Filing values into the tree
now filing {{ treeCurrent }}
{{ row.label }}
{{ cell.n }}
Only the highlighted path is stored. Values sharing leading digits — like the cluster around 68xx — collapse onto the same branches, so common regions cost almost nothing.
{{ treeFiled }}
values filed
{{ treeOccupied }}
occupied addresses
busiest addresses
{{ t.addr }} ×{{ t.c }}
Read a few levels for a coarse view of the data's shape; more levels for a fine view. Built in one pass.
{{ p.t }}
{{ p.d }}
1.3–2.0 GB/s per core
Ingest throughput, measured across real public datasets. AirTree fingerprints in a single pass over the data, so building scales linearly as you add cores.
What makes it different
{{ d.a }}
{{ d.b }}
Use cases

One compact structure. Many shapes of question.

Each card below is a real public dataset summarized into a tiny AirTree, then queried live in your browser — every chart is drawn live from the AirTree. Drag the band or hover a cell to query.

{{ card.cat }}
{{ card.title }}
{{ card.source }} ↗
original
airtree
{{ card.note }}
{{ card.raw }}
{{ card.at }}
{{ card.ratio }}
{{ card.caption }}
$ {{ card.query }}
→ {{ card.result }}
{{ card.xlabel }}drag to select
{{ card.sub }}
{{ card.count }} {{ card.noun }} · exact
{{ card.tag }}
{{ card.cat }}
{{ card.title }}
{{ card.source }} ↗
original
airtree
{{ card.note }}
{{ card.raw }}
{{ card.at }}
{{ card.ratio }}
{{ card.caption }}
$ {{ card.query }}
→ {{ card.result }}
{{ card.xlabel }} × {{ card.ylabel }}exact counts
count · log scale 1
{{ tk.label }}
{{ card.peakFmt }}
{{ card.info }}
{{ u.t }}
{{ u.d }}
Security & trust

Your data stays yours. Every answer is verifiable.

{{ s.t }}
{{ s.d }}
FAQ

Questions, answered.

{{ f.a }}
Still curious how it fits your data?
Blog

How we build, in the open.

The AirMettle engineering blog — where the team writes about the ideas we're inventing, the systems we ship, and the real-world problems they solve. AirTree and AirStat are part of the story, not all of it.

{{ b.t }}
{{ b.d }}

Read the engineering blog.

Deep-dives, research notes and benchmarks from the AirMettle team.

Read the blog
{{ ctaTag }}
{{ ctaTitle }}
{{ ctaBody }}
{{ ctaFoot }}
{{ ctaThanksTitle }}
{{ ctaThanksBody }}