Alex Readman - Data Analyst | ContraWork by Alex Readman
Alex Readman

Alex Readman

AI-assisted Python scripts for one-off spreadsheet data jobs

New to Contra

Alex is building their profile!

Cover image for I built this because "we
I built this because "we have too much stock and we keep running out" is one complaint containing two different problems, with two different remedies, and paying for the wrong one is what happens when nobody checks. So it checks. On this year of movements the fill rate across every current line was 100% — not one unit of demand went unsupplied. The availability half of the complaint isn't supported. The cash half is: 35% of stock value sits in the five slowest lines, which took 241 units of demand between them all year, and one control module holds 23% of the entire stock value against 55 units. I've left that finding as it came out rather than adjusting the scenario until both halves were true. An analysis that only ever confirms what it was told isn't worth commissioning. 15 SKUs and 3,663 movements, generated, generator published alongside.
1
22
Cover image for I built this because revenue
I built this because revenue growth is the number that gets reported and the one number that cannot tell you whether a business is getting stronger. A company that loses a third of its customers and replaces them looks identical, on a sales report, to one that keeps all of them. So this splits revenue into the only three things it can be — customers who were here last year and still are, customers who have gone, and customers who are new. On this ledger revenue grew 21% while 35% of the customer base left, taking £321,727 with them. New business covered it 1.2 times, which is the same sentence as: a third of this year's revenue stands on customers who weren't there a year ago. Two years of invoices, generated, with the generator published alongside so every figure reproduces.
1
26
Cover image for I built this to show
I built this to show what happens when you actually check where the cash is going, rather than assuming. "Profitable on paper, short of cash" is a question every business asks, and almost everyone answers it the same way — chase the late payers. On this ledger that turned out to be worth £746 a year. The money was somewhere nobody was looking: £19,710 short-paid on invoices that then closed, and £9,741 never collected at all. It also tests something the sales side usually assumes: whether granting longer payment terms changes when a customer pays. It doesn't. Customers on 30-day terms paid in 32 days; customers on 60-day terms paid in 28. Both ledgers are generated and the generator is published with them, so every figure reproduces from scratch.
1
28
Cover image for I built this to show
I built this to show what a margin analysis actually produces. "Sales are up and profit isn't" is the most common version of the question, and the answer is usually counterintuitive — so it's a better demonstration than something where the finding is obvious. On this order book the leak turned out to be at the top, not the bottom: orders over £2,500 are 75% of revenue at the worst margin on the book, while orders under £250 beat the book average. The order book is generated and the generator is published with it, so every figure reproduces from scratch. That's deliberate. An analysis of a real company's numbers can't be checked by anyone reading it.
1
31