Show HN: Credit reports about German companies
55 points| gab_ | 1 year ago |bonscore.org
In addition to my studies in computer science, I have been working on a side project. I obtain data from the Unternehmensregister, a register where every German limited company is required to publish their financial statements. These statements are published as HTML files and are completely unstructured. While financial statements often look similar, companies are not required to follow a specific structure, which often leads to inconsistently formatted statements.
The use of the Unternehmensregister is completely free, so you can check out some examples.
I wrote code that converts the unstructured financial statements into structured data using the ChatGPT API. This works well. Of course, there are some problems that have not yet been solved, but data extraction works well for the majority of companies.
I than coded a Random Forest algorithm to estimate the probability of default for a company based on its financial statement from the Unternehmensregister. I built a website to present the structured data along with the scores. Essentially, I create a credit reports for companies.
Currently, there are four companies in Germany that also create credit reports (Schufa, Creditreform, Crif, and Creditsafe). Other companies resell the data from these four providers. I provide the same services as these companies, but without including personal information such as directors or investors. The market for this service is quite large; for example, Creditreform sold over 26 million credit reports about companies in 2020.
My probability of default prediction performs quite well, achieving an AUC score of 0.87 on my test data. An AUC of 0.87 means that there is an 87% chance that the model ranks a randomly selected company that defaults higher than a randomly selected company that does not default. Additionally, there are many more companies to crawl for my database.
Currently, I am focusing on companies that are required to publish their profit and loss statements. For testing purposes, there are currently 2,000 companies available on my website.
At the moment, the website is only available in German, but you can use Google Translate, which works ok for my website.
Thank you very much for your feedback!
WhatsName|1 year ago
Unless of course if you plan on never ever growing it into a business, then you might get away with Njalla and cloudflare as invisibility cloak...
leobg|1 year ago
gab_|1 year ago
gab_|1 year ago
PeterStuer|1 year ago
Has that changed?
gab_|1 year ago
drchaos|1 year ago
1. add a message box stating that it is experimental and has only a very small set of companies right now
2. add an option to get notified when you have a more complete dataset (just use a Google form to collect email addresses)
Reason: Searched for my company, no result, ok, we're too small. Searched for some DAX companies, no results either => site looks broken.
Additional ideas:
* Add information from insolvenzbekanntmachungen.de, it's a major PITA to find someone there * Provide a (paid) API so it can be integrated into shop systems etc.
A Creditreform membership is quite expensive, probably worth it for larger shops, but for small enterprise your solution might come in handy.
gab_|1 year ago
costco|1 year ago
gab_|1 year ago
davedx|1 year ago
I’m also curious how you back tested to get the final scoring.
gab_|1 year ago
The data is very imbalanced; there are very few insolvent companies compared to solvent ones. Therefore, I work with synthetic data in my training dataset. To get the final score, I need to scale the predictions to achieve a heavily right-skewed distribution.
Currently, I am using the method Platt scaling.
riedel|1 year ago
gab_|1 year ago