Manideep GNS

Case study, January to October 2026

Atlance. The software our finance runs on.

I run finance at UrbanPiper across four countries. In January 2026 I started building the software it runs on, by directing Claude Code in plain English. This is what it does, how it was built, and what I got wrong.

15 → 7
days to close the month, and real time next
7
tools retired, and a twenty-one-sheet workbook
30+
teammates use it
4,300
changes since 18 January 2026

The problem

Month-end numbers took fifteen days. I was asked to just automate the report. But the report was never the slow part. The month's expenses were not in one place: the ledger held about 60 to 70 percent of the month, and the rest sat in ten other kinds of places.

You can't automate a report on data that doesn't exist yet. So the real job was to get every source into one place first.

Read the memo I wrote in January

The decision: connect the tools, don't replace them

Finance already runs on good tools. Zoho Books holds the ledger in every country. Salesforce holds the contracts. Stripe takes card payments. Ramp and Pazy handle spend and payables. Replacing them would have meant years of migration and a new set of risks.

So Atlance doesn't replace them. Every source syncs into one database, and the screens, AI agents and reports sit on top. When Atlance changes something, it writes back to the tool that owns it.

ATLANCE
The sheet on its way: one source, syncedSeven trays, one per source; one stack, the databaseAtlance as a machine. Each tray is a tool finance already runs on. The carriage takes a sheet from each and lays it on one stack, the database every screen, agent and report reads from. Before, the ledger alone held about 60 to 70 percent of the month.
Atlance's lineage screen: 39 sources on the left, one warehouse database in the middle, and the screens that read from it on the right
The real thing. Sources on the left, one database in the middle, the screens that read from it on the right. Row counts blurred.

What it does

Atlance's home screen: a greeting, system status, and live modules for cash flow, people, variance, billing in four regions, approvals and receivables
The front door. Every module is live, grouped by the job it does.
Operate

Billing, collections and approvals run the same way in India, the UK, the Middle East and the US. One rule beats four exceptions: fewer special cases means fewer things that fail quietly.

Analyse

Plan against actuals for all four regions on one screen. Cash, people and cloud cost, read live every morning. Prepaid expenses spread across the right months on their own.

Report

Monthly memos drafted from the numbers, and answers to finance questions in Slack.

How it was built

I don't write code. I describe what I need in plain English. Claude Code builds it, and I review every change before it ships. Every change also goes through tests and checks. Routine work runs on smaller models in parallel, and small typed judgements, such as "is this email a dispute?", come from TypeSafe.

The second change I ever made, minutes after the first, was "add password protection". Controls before features. That is the auditor in me, and it set the tone for everything after.

The loop behind every change.

In numbers: 215 days of building, a longest streak of 61 days, and 1,340 features against 1,328 fixes. For every new thing, almost exactly one fix.

What I got wrong

The January memo planned one tracker for all ten places the data gets stuck. It never shipped that way.

By March the question had moved. It was no longer "how fast can we produce the actuals?" It was "how fast can we explain them against the plan?" Building plan against actuals forced several of the ten cases to be fixed upstream, as a side effect. Others were solved inside other tools. Two still have no early warning.

A faster close stops mattering once the question becomes how fast you can explain the numbers.

Where it stands

The month now closes in about a week, down from fifteen days. The next step is real time: numbers that are current every minute, not once a month after the close.