{"slug": "i-built-an-ai-assistant-for-my-dads-wholesale-business", "title": "I Built an AI Assistant for My Dad’s Wholesale Business", "summary": "A developer built Collection Radar, a local AI tool that ingests a wholesale business's existing Excel invoice spreadsheet and converts it into a prioritized collections list. The tool uses TabPFN, a tabular-data model, to estimate each outstanding invoice's probability of late payment and multiplies that probability by the invoice amount to rank invoices by potential cash exposure, running entirely locally so sensitive financial and customer data never leaves the machine. The developer plans to benchmark TabPFN against XGBoost on ROC-AUC, F1, accuracy and runtime in a future version.", "body_md": "*My submission for the Hacktoberfest Weekend Challenge — Build for a Friend.*\n\nI didn't have to think very hard about who I wanted to build for.\n\n**My dad.**\n\nHe runs a wholesale business, and like many small business owners, a lot of his work happens inside Excel.\n\nInvoices. Customers. Payment history. Outstanding amounts.\n\nThe data is there.\n\nBut there's one question that still requires a lot of manual work:\n\n**“Who should I call first?”**\n\nThat's the problem I decided to solve this weekend.\n\nThis wasn't a problem I discovered while brainstorming a hackathon idea.\n\nI'd seen it at home.\n\nMy dad would go through his spreadsheet, look at outstanding invoices, remember which customers usually paid late, check how much they owed, and then decide who needed a follow-up.\n\nNone of this is particularly complicated individually.\n\nBut when you're dealing with a lot of customers and invoices, it becomes repetitive.\n\nAnd the frustrating part is that **the information needed to make the decision already exists in the spreadsheet.**\n\nI kept thinking:\n\n*Could we just make the computer do the first pass?*\n\nNot make the decision for him.\n\nJust help him decide where to start.\n\nSo I built **Collection Radar**.\n\nCollection Radar is a local AI tool that takes an existing wholesale invoice spreadsheet and turns it into a collection priority list.\n\nThe workflow is intentionally simple:\n\n**Upload Excel → Learn from history → Predict risk → Prioritize invoices**\n\nFor historical invoices, the model can learn from information such as:\n\nThen, for current outstanding invoices, it estimates the likelihood of late payment.\n\nThe result is grouped into:\n\n🔴 **High Risk**\n\n🟠 **Medium Risk**\n\n🟢 **Low Risk**\n\nBut I didn't want to stop at a probability score.\n\nImagine the model gives me:\n\n**Invoice A:** 80% chance of being late\n\n**Invoice B:** 65% chance of being late\n\nAt first glance, Invoice A seems like the obvious one to call.\n\nBut what if:\n\nThe business impact is very different.\n\nSo Collection Radar also calculates **potential cash exposure**:\n\n```\nPotential Exposure\n= Late Payment Probability × Invoice Amount\n```\n\nNow the system isn't simply asking:\n\n“Which invoice is risky?”\n\nIt's asking:\n\n**“Which risky invoice could have the biggest impact on cash flow?”**\n\nThat's much closer to the decision my dad actually needs to make.\n\nThis project gave me an excuse to experiment with **TabPFN**, a model designed specifically for tabular data.\n\nAnd this problem is almost entirely tabular.\n\nThere's no need to build a complicated chatbot around the data.\n\nThe input is structured:\n\n```\nCustomer\nInvoice Amount\nPayment History\nCredit Period\nOutstanding Amount\n...\n```\n\nAnd the thing we're trying to predict is also straightforward:\n\n```\nPaid Late = Yes / No\n```\n\nTabPFN learns patterns from the historical data and uses them to score current invoices.\n\nOne thing I deliberately **didn't** want to do was claim that TabPFN is automatically better than every other model.\n\nThat's something I want to measure.\n\nFor the next version, I'll benchmark **TabPFN vs XGBoost** using the same dataset and compare metrics such as ROC-AUC, F1, accuracy and runtime.\n\nIf XGBoost performs better, that's the result.\n\nThe point is to build something useful, not force the technology to win.\n\nThis is probably the most important product decision I made.\n\nWe're dealing with real business information.\n\nInvoices contain financial data, customer information, payment behaviour and other details that shouldn't casually be sent to external services.\n\nSo I wanted Collection Radar to run **locally**.\n\nThe idea is:\n\nThe invoice data doesn't need to be sent to a cloud AI service for inference.\n\nFor a small business, I think that matters.\n\nYou shouldn't need an enterprise infrastructure team just to experiment with AI on your own spreadsheet.\n\nThat's why the UI is deliberately simple.\n\nUpload the spreadsheet.\n\nMap the columns.\n\nRun the model.\n\nGet the priority list.\n\nThe technology is behind the scenes.\n\nThe output should be understandable in a few seconds.\n\nThe current version is intentionally small:\n\n```\n                 Excel / CSV\n                     │\n                     ▼\n              Data Preparation\n                     │\n                     ▼\n              Local TabPFN\n                     │\n                     ▼\n              Risk Probability\n                     │\n                     ▼\n          Cash Exposure Calculation\n                     │\n                     ▼\n            Collection Priority\n```\n\nThe application is built with:\n\nI've also kept the UI and ML logic reasonably separated so the interface can evolve without having to rebuild the model pipeline.\n\nThe biggest lesson from this project wasn't actually about machine learning.\n\nIt was about **starting with a person instead of starting with technology.**\n\nBefore this challenge, I would often approach projects by asking:\n\n“What can I build with this new AI tool?”\n\nThis time I started with:\n\n**“What does someone I care about struggle with?”**\n\nThat led me somewhere much more interesting.\n\nMy dad didn't ask for TabPFN.\n\nHe didn't ask for an AI assistant.\n\nHe didn't ask for a risk model.\n\nHe had a spreadsheet and a repetitive problem.\n\n**I chose the technology after understanding the problem.**\n\nThat changed the way I built the project.\n\nThe most personal part of this project is also the simplest.\n\nI'd known about this problem for a while.\n\nI'd watched my dad work with spreadsheets and manually decide which customers needed attention.\n\nAt some point I thought:\n\n*There has to be a better way to do this.*\n\nAnd then, like a lot of side-project ideas, it stayed in my head.\n\nUntil this challenge.\n\nThe **Build for a Friend** theme gave me the push to finally turn that idea into something real.\n\nIt's still a prototype.\n\nIt's not going to magically solve collections tomorrow.\n\nBut now I can actually put it in front of my dad and ask:\n\n**“Would this make your work easier?”**\n\nAnd I think that's a much better test than asking whether a demo looks impressive.\n\nThis is V1.\n\nThere are a few things I want to add next.\n\nCompare:\n\n**TabPFN vs XGBoost**\n\non the same historical data.\n\nI'll measure:\n\nEventually I'd like to add:\n\nAnd eventually, instead of only showing invoice-level risk, I'd like to show something like:\n\n```\nCustomer F\n\nOutstanding: ₹4.8L\nInvoices: 7\nAverage Payment: 47 days\nLate Payments: 5/9\n\nCurrent Risk: 🔴 HIGH\n```\n\nThat starts turning Collection Radar from a prediction tool into an actual **collection assistant**.\n\nThe project is open source.\n\n**GitHub:**\n\n`https://github.com/aryan7412/invoice-py.git`\n\nI'd genuinely love feedback from people who run small businesses or work with accounts receivable:\n\n**What would you want an AI assistant to tell you when you open your invoice spreadsheet?**\n\nBecause that's ultimately what I'm trying to build.\n\nNot an AI demo.\n\nNot another dashboard.\n\nJust something that can look at a messy spreadsheet and say:\n\nBuilt for my dad. ❤️", "url": "https://wpnews.pro/news/i-built-an-ai-assistant-for-my-dads-wholesale-business", "canonical_source": "https://dev.to/aryan_74_e992d1695f646ff3/i-built-an-ai-assistant-for-my-dads-wholesale-business-481g", "published_at": "2026-10-05 05:34:52+00:00", "updated_at": "2026-10-05 05:43:02.327966+00:00", "lang": "en", "topics": ["machine-learning", "ai-tools", "ai-products", "artificial-intelligence"], "entities": ["TabPFN", "XGBoost", "Collection Radar", "Excel"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/i-built-an-ai-assistant-for-my-dads-wholesale-business", "markdown": "https://wpnews.pro/news/i-built-an-ai-assistant-for-my-dads-wholesale-business.md", "text": "https://wpnews.pro/news/i-built-an-ai-assistant-for-my-dads-wholesale-business.txt", "jsonld": "https://wpnews.pro/news/i-built-an-ai-assistant-for-my-dads-wholesale-business.jsonld"}}