From 35 minutes to 2: solving a real customer problem in an afternoon

Blog post #101

Client paperwork simplified into a spreadsheet beside a timer and an eagle paperweight.

AI-generated illustration.


Today I sat down with a friend who runs a small accounting firm. Every client he has needs a documented customer due diligence check under the Swedish anti-money laundering act: who owns the company, who sits on the board, whether anyone is a politically exposed person or on a sanctions list, and a risk class with a written justification. The county administrative board can ask to see it at any time.

He does this by hand, client by client. It takes him about 35 minutes each.

Half an hour after we started talking, he was filling in his first client in a prototype, and it took about two minutes. Two hours after that, the prototype had become a desktop app called Oern, with its own icon, a licence server and a yearly subscription through Stripe. The next morning it went live: you can read about it, download it and buy it at aelg.se/oern.

That’s the fastest I’ve ever gone from someone’s real problem to something that solves it.


The problem

  • No official form. I assumed there was a government form to fill in. There isn’t. The law says what has to be documented, and every firm builds its own template. That turned out to be good news: there was nothing to copy, so we could design it around how he actually works.
  • Most of the work is looking things up. Company name, address, legal form, industry code, status. All of it is in Bolagsverket’s register, and he was typing it in by hand.
  • The rest is things only he knows. He has known most of his clients for years. The slow part wasn’t judgement, it was paperwork around the judgement.

What shipped

  • Org number in, company out. Type the organisation number and Oern fills in the company from Bolagsverket’s and SCB’s free open data. 1.9 million organisations, refreshed every week on a small server in Stockholm.
  • Sanctions check while you type. Every person is checked against the EU’s consolidated sanctions list. The list is downloaded to the computer, so client names never leave it.
  • A risk class with the justification written for you. Oern suggests a risk class from industry, ownership, PEP status and cash handling, and drafts the reasoning in plain Swedish. If you set a lower risk than it suggests, it asks you to explain why. That reasoning is exactly what the authorities most often find missing.
  • One Excel sheet per client. No new system to log in to. The sheet goes in the client’s folder next to everything else. Next year he opens last year’s sheet, Oern refreshes the company data and shows what has changed, and he starts from there.
  • A product, not just a tool. A 14-day trial, licence keys that renew with a yearly subscription of 99 kronor, Stripe checkout and a customer portal for receipts and cancelling. Same setup as Dockcam, my first product.

What’s working

  • The time. From 35 minutes to about 2 per client. For a firm with dozens of small clients, that’s days of work every year.
  • Defaults that match reality. The first version asked for everything. He went through it and said: this is always a driving licence checked in person, this is always “no cash”, this is always “approved”. Each of those became a one-click button or a default, and the form got shorter every time.
  • Privacy by design. The only thing that leaves the computer is the organisation number. Everything about the people stays in the firm’s own Excel files, where they already keep their client records.

What’s unclear or broken

  • The board and the owners aren’t automatic. Bolagsverket’s free data has no people in it. That’s in their paid services. For now you type them once per client, and next year they’re already there.
  • Sole traders aren’t in the open register. Their organisation number is a personal ID number, so you fill in the company details yourself.
  • The installer isn’t code-signed yet. Windows shows a SmartScreen warning the first time, and you have to click “Run anyway”. The product page, the download and the Stripe checkout are live.

Decisions made

  • Keep the client data off our servers. Storing it in the cloud would make Aelg a data processor for every firm that uses it, with agreements, security requirements and five-year retention rules to handle. For a 99 kronor product, the simplest answer is that the data stays where it already lives.
  • A new name. It started as Kundkoll. There are a lot of those. It’s now Oern, the Swedish word for eagle spelled the way Aelg spells elk.

It’s a good feeling. Not a demo, not a toy: a real person with a real, boring, recurring problem, and an afternoon later the problem is mostly gone. That’s what I want to spend my time on.

— Stefan