Warum Du Envestio etwas genauer anschauen solltest

Published May 15, 2019, 12:25 a.m. by finsteininvest

Erst vor kurzem bin ich auf die P2P Anlageform aufmerksam geworden. Ich habe ziemlich gestaunt, als ich gesehen habe, welche Renditen bei dieser Anlageform erzeilt werden können. Eine Seite habe ich immer und immer wieder angeschaut. Eine Rendite von 18% und mehr bewirbt Envestio.

Wer kann solche Zinsen verlangen? Welche Firma kann solche Zinsen zahlen und profitable bleiben?
(Bei Bridge Financing wohl aber üblich.)

An dieser Stelle kann ich veraten, dass dieser Review sich nicht zu den vielen anderen positiven im Netz gesellen wird. Möchtest Du also nicht desillusioniert werden: jetzt aufhören zu lesen.

Und noch ein wichtiger Hinweis: Ich gebe hier keinen Ratschlag, ob investiert werden soll oder nicht!

Aktuell (14.05.2019) existieren 52 aktive Projekte. 50% der Kredite liegen bei oder unter 200.000. Der durchschnittliche Kreditbetrag (pro Projekt!) beläuft sich auf € 242.307,69

        Exposure
count 52.00
mean 242307.69
std 191972.37
min 45000.00
25% 100000.00
50% 200000.00
75% 253750.00
max 950000.00

Diese verteilen sich auf 14 Kreditnehmer. Die meisten müssen mehr als ein Darlehen bedienen.

Kreditnehmer                                 Anzahl Kredite
"SRR" JSC, Reg. Nr. 40003953281, Latvia 10
SIA MERKURS-RIGANTE, Reg. Nr. 40003214339, Latvia 7
DAGRE Ltd., Reg. Nr. 11908777, Estonia 6
FLC POLAND SP ZOO, Reg. Nr. 5252561278, Poland 5
"Rietumu Energija" SIA, Reg. Nr. 40103646226, L... 4
"NDinamika" SIA, Reg. Nr. 40103651180, Latvia 4
SIA "Baltreit", Reg. Nr. 50003649181, Latvia 3
ALL RECYCLING SIA, Reg. Nr. 40003802301, Latvia 3
"Pallet Timber Company" SIA, Reg. Nr. 401035222... 3
"Senga" SIA, Reg. Nr. 49003001584, Latvia 2
"Rietumu Nafta" SIA, Reg. Nr. 41203010197, Latvia 2
SIA "Baltic Real Estate Holding", Reg. Nr. 5000... 1
Envestio SI OÜ, Reg. Nr. 14433607, Estonia 1
"European China International Group" SIA, Reg. ... 1

Die einzelnen Projekte auf der Seite von Envestio sind selten größer als € 260.000.

Aber hier die schonungslose Wahreheit: Einige Kreditnehmer haben ganz schöne Summen eingesammelt.

Kreditnehmer                                         Kreditsumme
SIA MERKURS-RIGANTE, Reg. Nr. 40003214339, Latvia € 1.830.000
SIA “Baltreit”, Reg. Nr. 50003649181, Latvia € 1.650.000
ALL RECYCLING SIA, Reg. Nr. 40003802301, Latvia € 1.500.000
“Rietumu Nafta” SIA, Reg. Nr. 41203010197, Latvia € 1.000.000
FLC POLAND SP ZOO, Reg. Nr. 5252561278, Poland € 950.000
“NDinamika” SIA, Reg. Nr. 40103651180, Latvia € 935.000
“Rietumu Energija” SIA, Reg. Nr. 40103646226, L... € 870.000
DAGRE Ltd., Reg. Nr. 11908777, Estonia € 800.000
“SRR” JSC, Reg. Nr. 40003953281, Latvia € 800.000
“Pallet Timber Company” SIA, Reg. Nr. 401035222... € 765.000
SIA “Baltic Real Estate Holding”, Reg. Nr. 5000... € 500.000
“Senga” SIA, Reg. Nr. 49003001584, Latvia € 500.000
Envestio SI OÜ, Reg. Nr. 14433607, Estonia € 300.000
“European China International Group” SIA, Reg. ... € 200.000

Warum sind die beide letzten Aufstellungen relevant? Ein "blindes" investieren in jedes neues Projekt kann gefährlich sein. Unter Umständen vergibst du damit einem Schuldner mehrfach ein Kredit - und torpedierst damit das Prinzip der Diversifizierung. Ich vermute, dass ein Ausfall einer Tranche zum Ausfall aller Tranchen führt.

Und jetzt zu meiner Kritik:

Wir müssen uns darauf verlassen:


"We offer to our investors only premium level investment opportunities, which were extensively studied and checked by our expert team, and most comfortable virtual working environment." (Zitat Homepage Envestio)


Schauen wir uns mal den "Zahlplan" des größten Schuldners an: "SIA MERKURS-RIGANTE": 7 Tranchen mit einem Gesamtvolumen von € 1.830.000. Wenn ich das richtig sehe, dann ist dies der Kreditnehmer der Früchte verkauft UND ein Kraftwerk baut. (Warum löscht Envestio die Projektbeschreibung, wenn ein es voll finanziert ist?)

Kreditnehmer                                       Start       Ende          Kreditsumme
SIA MERKURS-RIGANTE, Reg. Nr. 40003214339, Latvia 2018-11-14 2019-05-14 € 70.000
SIA MERKURS-RIGANTE, Reg. Nr. 40003214339, Latvia 2018-11-30 2019-05-30 € 100.000
SIA MERKURS-RIGANTE, Reg. Nr. 40003214339, Latvia 2019-01-07 2019-07-07 € 100.000
SIA MERKURS-RIGANTE, Reg. Nr. 40003214339, Latvia 2019-02-11 2020-01-11 € 950.000
SIA MERKURS-RIGANTE, Reg. Nr. 40003214339, Latvia 2019-03-01 2019-09-01 € 245.000
SIA MERKURS-RIGANTE, Reg. Nr. 40003214339, Latvia 2019-03-14 2019-09-14 € 215.000
SIA MERKURS-RIGANTE, Reg. Nr. 40003214339, Latvia 2019-03-29 2019-09-29 € 150.000

2019 und 2020 hat "SIA MERKURS-RIGANTE" ziemlich heftige Rückzahlungen. Heftig deswegen, weil so wie ich das sehe die Kredite bei Envestio in der Regel als Bullet vergeben werden. Bedeutet regelmäßige Zinszahlung mit endfälliger Tilgung.

Wer ist denn eigentlich "SIA MERKURS-RIGANTE"? Ich habe keine Ahnung, wer Lursoft ist, aber sie geben eine Rating zu der Firma aus. Es lohnt sich die Seite in Ruhe anzuschauen. "SIA MERKURS-RIGANTE" wird mit 2.5 bewertet. Das ist genau die Mitte zwischen Bad und Good. Ich habe leider keine Ahnung, wie ich diese Zahl in eine Ausfallwahrscheinlichkeit ableite.

So, an dieser Stelle höre ich auf.

Was ist mein Fazit? Die Renditen sind einfach zu schön. Daher werde ich Speilgeld investieren, immer mit der Vorstellung, dass alles verschwinden kann.

Nachfolgend der (kommentierte) Code den ich benutzt habe, um die Daten zu erhalten und die Analysen zu machen.

Das erste Programm lädt die Daten von der Envestio Homepage herunter:

'''
get_projects.py

Programm, um Daten von der Envestio Homepage herunterzuladen.

Mai 2019 / Wichtig, denn dieser Code ist ein "Hack".
Sollte sich in Zukunft die Struktur der Homepage aendern,
wird dieser Code nicht mehr funktionieren.
'''

# Zuerst werden benötigte Bibliotheken geladen.
import requests
from bs4 import BeautifulSoup
import re
import pandas as pd
import pickle

# Homepage laden
url = "https://envestio.com/en/projects/"
r = requests.get(url)

# Homepage interpretieren und alle Projekte identifizieren
# Wir brauchen die links zu den Projektdetailseiten
soup = BeautifulSoup(r.text, "html.parser")
projects = soup.find_all("div", "item")
targets = []
for project in projects:
try:
linkloc = project.find("div", "link")
link = linkloc.find("a", "link--blue")
targets.append(link['href'])
except:
continue

# Leere Dataframe Tabelle anlegen
df = pd.DataFrame(columns=['Loan ID', 'Borrower','Project Start Date','Loan Period', 'Funding Target'])

for target in targets:
# Projektdetailseite laden
r = requests.get(target)
soup = BeautifulSoup(r.text, "html.parser")
# Tabelle mit den Projektdetails identifizieren
infos = soup.find("table", {"id": "project_loan_info"})
# Die Loan ID befindet sich im Table Header
loan_info = infos.find_all("th")
loan_id = loan_info[1].text
# Fortschritt ausgeben
print(loan_id)
# Alle weiteren Daten befinden sich in Tabellenzellen
datalist = infos.find_all("td")
# Variablen inizialisieren.
listindex = 0
done = 0
loan_id = ''
borrower = ''
psd = ''
ft = ''
lp = ''
# Jetzt durch die Tabellenzellen gehen.
# done wird immer um 1 erhoeht, wenn eine Angabe gefunden wurde.
for data in datalist:
if 'Project start date' in data.text:
# Angabe gefunden. Wert befindet sich in der Zelle "rechts" von dieser.
psd = datalist[listindex+1].text
done += 1
if 'Borrower' in data.text:
borrower = datalist[listindex+1].text
done += 1
if 'Funding Target' in data.text:
ft = datalist[listindex+1].text
done += 1
if 'Loan Period' == data.text:
lp = datalist[listindex+1].text
done += 1
if done == 4:
# Ok alle Angaben extrahiert.
# Ab damit in die Dataframe
done = 0
df = df.append({'Loan ID': loan_id, 'Borrower': borrower, 'Project Start Date': psd, 'Loan Period': lp, 'Funding Target': ft}, ignore_index=True)
listindex += 1

# Die Dataframe wird zur weiteren verwendung gespeichert.
# Die Homepage wird hierdurch nicht ueber Gebuehr strapaziert.
pickle.dump( df, open( "envestio_projects.p", "wb" ) )

Das zweite Programm macht die Analysen:

'''
analyze_projects.py

Programm um Kreditdaten von Envestio zu analysieren.
Es benutzt die Datei envestio_projects.p die von
dem Programm get_projects.py erstellt wurde.

Mai 2019 / Wichtig, denn dieser Code ist ein "Hack".
Sollte sich in Zukunft die Struktur der Homepage aendern,
wird dieser Code nicht mehr funktionieren.
'''

import pickle
import pandas as pandas
import datetime
import time
from dateutil.relativedelta import *

def reformat_date(datum):
# Datum wird in JJJJ-MM-TT umgewandelt.
teile = datum.split('.')
reformat = f"{teile[2]}-{teile[1]}-{teile[0]}"
return(reformat)

def end_date(start, duration):
# Diese Funktion errechnet das Enddatum des Kredits
startdate = datetime.datetime.strptime(str(start),'%Y-%m-%d')
dauerzahl, dauertext = duration.split()
enddate = startdate + relativedelta(months=int(dauerzahl))
#print(enddate.strftime('%Y-%m-%d'))
return(enddate.strftime('%Y-%m-%d'))

def reformat_target(euro_str):
# Daten werden gesaeubert, um Berechnungen durchfuehren zu koennen.
euro_str = euro_str.replace('€','')
euro_str = euro_str.replace(' ','')
return(int(euro_str))

# Projektdaten laden (erstellt von get_projects.py)
df= pickle.load( open( "envestio_projects.p", "rb" ) )

# Daten umwandeln, saeubern
df['Start Date'] = df['Project Start Date'].apply(reformat_date)
df['End Date'] = df.apply(lambda x: end_date(x['Start Date'], x['Loan Period']), axis=1)
df['Exposure'] = df['Funding Target'].apply(reformat_target)

# Wir wollen nur aktuelle Projekte analysieren.
# Das sind Projekt, die in der Zukunft auslaufen.
heute = datetime.datetime.now()
heute_str = heute.strftime('%Y-%m-%d')
df = df[df['End Date'] >= heute_str]

# Die einzelnen nachfolgenden Abschnitte müssen je nach Zweck
# auskommentiert werden.

# Wie viele Projekte gibt es,
# wie sieht die Struktur aus?
#print(df.describe())

# Wie viele Projekte je Kreditnehmer?
#print(df.groupby(['Borrower']).count())

# Gesamtkredit je Kreditnehmer ausrechnen
#print(df[['Borrower','Start Date','End Date','Exposure']])
#df_sum = df.groupby('Borrower').sum()
#print(df_sum.sort_values(['Exposure'],ascending=False))

# Projekte je Kreditnehmer und Startdatum
#df.sort_values(by=['Borrower','Start Date'], inplace = True)
# In dem contains die Nummer des Kreditnehmers ersetzen.
#df = df[df['Borrower'].str.contains('Reg. Nr. 40003214339')]
#print(df[['Borrower','Start Date','End Date','Funding Target']].to_string())

"Lupe" Icon made from Icon Fonts is licensed by CC BY 3.0