I've never written a line of code. I'm going to have a one-click close in six months.
Maybe less. OK, maybe less than six months, maybe more than one click (3-5 would still be OK).
I started using Claude Code about a month ago. Here’s what I’ve built so far: a commission calculator, one-click revenue recognition, one-click COGS recognition, an inventory module that tracks lots in and out across over 200 SKUs and accounts for COGS on a FIFO basis, a consolidated financials dashboard that pulls together multiple QuickBooks instances and produces a consolidated P&L, balance sheet, and cash flow statement, and a full metrics dashboard pulled directly from HubSpot - ARR waterfall, NDR cohorts, bookings segmented by industry, by lead source, by everything. I’m working on a full financial modeling system connected to all of these data sources - likely to have this ready in the next week or two.
None of this existed a month ago. I built all of it. I’ve never written a line of code in my life.
This is the first post in a series about how I’m building this. I’m starting with revenue recognition because I’m proud of it. Not just because it works - because it’s audit-ready.
The process before
Every month we would get a download from Tabs, our billing system. 20,000 rows. Product line items, customers, revenue amounts, months, discount percentages. I’d take that file, add three columns, add some formulas, expand the formulas, pivot everything. From that pivot I’d build a summary journal entry. Post it. Then I’d pull a HubSpot export of all closed line items and compare it against the Tabs revenue report.
The whole thing took me four hours a month. Sometimes more. And I’d always delay it because I didn’t want to do it. The close was always pending on me. I also didn’t want to hand it off - there were so many steps, and it’s really easy to screw up. So every month I’d just grind through it myself
So, I explained the problem to Claude Code. The function, the methodology, how I get to the recognized revenue amount, how I calculate the discount amount. I showed it the spreadsheet I used last month. I pointed it to the folder and the file and said: I want to build a function where I can do this with one click. But I want it to be audit-ready. I want a download every month - a revenue summary, the journal entry, and a deferred revenue waterfall. I want a way to tie this out for an audit.
Highly, highly important when you work in Claude Code: have it work in plan mode first. It will give you this structure of what it’s going to build. If you don’t do this, you will get garbage. You need to read that plan, think about it, analyze what it’s actually doing, think about if the steps make sense, and then tell it to go build when you agree with the plan.
It will start building. You say yes a bunch of times. Sometimes you have to add comments, sometimes you have to answer questions. Most of the time it asks yes or no questions. If you’re a non-engineer like me and you don’t know what it’s asking - just say yes.
I got an output. It worked. And then I did something I wasn’t sure was going to work.
I told it: you’re connected to my QuickBooks. (I’ll cover how to connect Claude Code to QuickBooks in a separate post - that connection is its own story, and it’s the unlock that made all of this possible.) Can you check my past revenue recognition and see if this methodology would get us to the same answer for the last 12 months?
It started working. Just working on its own for about 45 minutes. Reviewing journal entries, finding them, processing them, comparing them. Then it gave me a table.
January - model says this, QuickBooks says this. February - model says this, QuickBooks says this. All the way down. Then it got to June and there was a discrepancy. OK - model must not be working, let’s figure out why.
I said: can you figure out why those numbers don’t match? I pointed it to the June spreadsheet. It found the source of the discrepancy. The actual row. The actual customer. And the model was right. The books were wrong. We had to post a correction.
Because it was connected to QuickBooks, I said: can you create the journal entry to post the correction? It did. My books were closed so it posted it to the current month. It asked me for permission. I said yes. I checked the post. It was accurate.
Then I said: okay, run this for this past month, show me the output, and when I say okay - post the journal entry.
It did.
The output
I said: can you give me an Excel download - revenue recognition output, summary, journal entry?
It did.
I said: can you give me a deferred revenue waterfall?
Five minutes later, there’s a waterfall. Not exactly right - I wanted it to show both past and future, but only 12 months out. We have 10-year contracts, I don’t need to see it through 2036. Just through end of 2026.
Fixed.
Then I said: can you match the deferred revenue total for each month against QuickBooks and show me any discrepancies?
There were discrepancies. Again, the model was right. It figured out what caused them. It found the exact journal entry that was the root of the problem.
I said: holy shit, my mind is blown. I think the world has changed forever.
This isn’t just automation. The Excel output isn’t cosmetic - it’s what takes it from “okay I built this with Claude, cool” to “I can trust this output because I have validation.” Every month I have a document that shows exactly how we got to the number, traceable back to the closed-won deal in Hubspot and the signed contract associated. That’s what you’d hand to an auditor.
The model also caught errors in my books that I didn’t know were there. Twice. It found them, traced them to the source, and fixed them.
The process that used to take me four hours, the one I’d delay every month because I didn’t want to do it, is now one click and a few confirmations.
Next post: how I connected Claude Code to QuickBooks. That’s the foundation. Without it, none of this works.



Won't be too long before every tech entrepreneur can generate production systems and apps without the need for multiple techies….