Data, AI and the product around them.

We build data platforms, reports, AI agents and the web apps on top of them for operations and product teams in the US and India. Before you read about any of that, ask a question of 4.3 million public taxi trips.

Ask the data

Pick a question or type one. Every answer comes with its chart and the steps that produced it, because that is how every report we build should behave.

Between 5 and 8 pm. The 6 pm hour had 40,765 pickups across the Midtown zones, about 22 times the 4 am hour.

The chart draws with JavaScript. The 6 pm hour had 40,765 Midtown pickups; the 4 am hour had 1,803.

  1. Reading the June 2025 file: 4,322,960 rows.
  2. Dropping 275,815 rows with a negative fare, a drop-off before pickup or a pickup outside June.
  3. Joining 265 taxi zones on pickup location.
  4. Grouping pickups in the Midtown zones by hour.

Have a question about your own data? Send it with a row count and we reply with the chart.

Computed from the public NYC TLC file for June 2025 with DuckDB. The query is on the work page.

What we build

Six things, usually two or three at a time, always handed over running.

Data platforms

One place where the numbers agree, built to stay that way as the data grows. Bad rows are caught at the door and counted, and the bill stops when nothing is running.

Reports people trust

Reports that open in seconds and show the same number the finance team has. If a figure needs a footnote, the report carries it.

AI assistants and agents

Agents that do one defined job with a safety check in front, a person behind, and a record of every request. Tested against a written set of cases before they go live.

Workflows that run themselves

Scheduled jobs that check their own output and stop before they send a bad number. Quiet until something needs you.

Monitoring that reaches a person

An alert with a link to the failing run, not a red tile nobody looks at. Cost, usage and data quality on one page, and a runbook that says what to do at 3 am.

The product around it

Web apps with real sign-in, row-level permissions, deployment and documentation. The part most projects stop short of.

See what we build in detail

What 4.3 million rows say about yours

One vendor code carries 78% of the trips

Code 2 appears on 3,147,436 of the 4,047,145 rows left after the three checks in the demo above, 78%. The column does not name a taxi company. It names the company that built the meter. A chart titled revenue by vendor reads as market share, and it will be on the first page of the report unless someone reads the data dictionary first.

Have a column like this in your data? Send us the question and a row count.

The chart draws with JavaScript. Code 2: 3,147,436 of 4,047,145 clean rows.

Trips by vendor code across the 4,047,145 clean rows, June 2025. Codes 6 and 7 together are under 2%.

Sunday is not the busiest day

Count pickups by weekday and Sunday wins with 617,325. June 2025 had five Sundays and four Thursdays. Per day, Thursday leads at 150,281 and Sunday drops to 123,465, second from the bottom. The first chart was not wrong. It answered a question nobody asked.

Have a weekly chart you are not sure about? Send us the question and a row count.

The chart draws with JavaScript. Thursday: 150,281 pickups per day; Sunday: 123,465.

Pickups per day for each weekday, June 2025: the month's total for that weekday divided by how many of them June had.

The city has a nine-to-one day

The 6 pm hour saw 283,559 pickups across the city. The 5 am hour saw 32,028. Size anything on the daily average and it is wrong for most of the day. Your order queue, your support inbox and your cloud bill have the same shape.

Have a queue with a shape like this? Send us the question and a row count.

The chart draws with JavaScript. 283,559 pickups in the 6 pm hour against 32,028 at 5 am.

283,559pickups in the 6 pm hour
32,028pickups in the 5 am hour
9 to 1busiest hour against the quietest
Pickups by hour of day across all zones, June 2025.

More of these, with the query that produced them, are in the lakehouse walkthrough.

How we work

  1. Scoping call

    Thirty to forty-five minutes on what is slow, missing or risky. We ask more than we talk.

  2. Written quote

    One number for the whole scope, with what is in and what is out, before any work starts.

  3. Weekly demos

    Something running every week, in your environment, from the first week.

  4. Handover

    Documentation, a runbook, and a month of support after launch.

How an engagement runs, and the questions people ask

Why Octelion

  • We hand over running systems, not notebooks.
  • We put one number in writing for the whole scope before we start.
  • We show our work on public data so you can check it.
  • We build the safety and operations parts most prototypes skip.

One email is enough to start.

Tell us what is slow, missing or risky. We reply within one working day with questions, not a pitch.