sql >> Databasteknik >  >> RDS >> Database

En datamodell för peer-to-peer-utlåningsplattform

Det finns många onlineportaler som gör det möjligt för investerare att låna ut pengar direkt till enskilda låntagare – utan att några banker agerar som mellanhänder. Vilken datamodell kan ligga bakom en sådan webbplats?

Låneplattformar online samlar låntagare och investerare och låter dem välja till vem de vill låna ut sina pengar (när det gäller investerare) och vem de vill låna pengar från (när det gäller låntagare). Vissa peer-to-peer-utlåningssajter tillåter också låntagare och investerare att göra sina egna affärer när det gäller utlåningsräntor (dvs. räntor) och lånets löptid.

Låt oss ta en snabb titt på hur dessa portaler fungerar och sedan gå vidare till en datamodell som kan stödja dem.

Hur fungerar peer-to-peer-utlåningsplattformar?

  • Låntagare tillhandahåller sitt önskade lånebelopp och relevant information som ålder, sysselsättning, nuvarande inkomst, aktuella lån, kreditvärdighet, genomsnittligt månatligt banksaldo, löneschema för de senaste sex månaderna, eventuella förfrågningar eller försummelser på deras konton under de senaste tolv månaderna månader, deras anledning till att låna, avsikt att betala, etc.
  • Investerare registrerar sig genom att fylla i relevanta uppgifter, inklusive det totala beloppet de vill investera. Observera att de måste följa KYC (Know Your Customer) och skatteregler. KYC är en process, som används i stor utsträckning av finansiella institutioner, som erhåller kort information om identiteten på en låntagare/kund.
  • Portalerna granskar låntagarnas profiler och tilldelar dem riskbetyg (A till F; A står för bästa betyg och F står för sämsta) baserat på deras nuvarande och senaste tidigare finansiella statistik och deras lånebehov.
  • Portaler kan också bestämma lånens löptid och räntor; dessa är främst baserade på kundernas riskbetyg.
  • Låntagares låneförfrågningar (låt oss kalla dem "lånebiljetter" från och med nu) listas (visas på portalen) först efter att genomgångsprocessen för den kunden är klar.
  • Registrerade investerare kan se listade lånebiljetter och deras tillhörande riskklassificeringar, lånekrav och annan relevant information. Dessa hjälper dem att fatta beslut om sina investeringar.
  • För att uppfylla en lånebiljett kan investerare bidra med valfritt belopp, från portalens lägsta (säg 50 USD) till det totala lånebeloppet.
  • När en lånebiljett är uppfylld måste investerarna som har bidragit till lånebiljetten frigöra pengar till låntagaren. Vanligtvis använder alla finansiella transaktioner på utlåningswebbplatsen spärrade konton.
  • När lånebeloppet har betalats ut återbetalar låntagarna beloppet i form av EMI:er (Equated Monthly Installments). EMI:er samlas in på spärrade konton och distribueras så småningom tillbaka till investerare baserat på deras andelar i lånekupongen.
  • EMI-betalningar inkluderar bidrag till både lånebeloppet och räntan. I de inledande stadierna utgör räntebetalningar huvuddelen av EMI.
  • Det finns två möjliga lånescenarier:låntagare betalar en del eller hela det utestående beloppet i förskott eller EMI-betalningen är försenad. Dessa förseningar kan vara allt från ett par dagar till ett par månader. Om betalningarna försenas, utsätts låntagare för ytterligare ränta och en straffavgift på uteblivna EMI:er.
  • Om låntagare betalar en del av ett utestående lånebelopp, fördelas det mellan investerare baserat på deras andelar i lånekupongen.

Datamodellen

Du kan se hela datamodellen nedan. Det kretsar huvudsakligen kring två enheter:investerarna som lånar ut pengar och låntagarna som begär det.




Avsnitt 1:Investerare

Online peer-to-peer (P2P) utlåningsplattformar tillåter människor att registrera sig som investerare genom att ange sina grundläggande uppgifter, inklusive betalningsmetoder och nominerade. Den fångar också alla transaktioner som de gör mot sitt depositionskonto med P2P-plattformen.

investor tabellen lagrar investerarnas grundläggande detaljer. De flesta av kolumnerna i denna tabell är självförklarande förutom:

  • id – En unik identifierare som ges till varje enskild investerare.
  • tax_id – Investerarens statliga skatte-ID (eller, i USA, deras personnummer (SSN)). Den här kolumnen hjälper plattformen att följa skattereglerna.
  • kyc_complete – KYC-processen utförs för att fånga investerarnas fullständiga detaljer. Den här kolumnen innehåller ett Y eller ett N, beroende på om processen är klar för den investeraren.
  • escrow_account_number – Varje investerare tilldelas ett unikt depositionskonto. Alla finansiella transaktioner mellan investerare och låntagare sker via detta depositionskonto.
  • fund_committed – Det belopp som investeraren har åtagit sig för investeringar (hittills).

nominee Tabellen innehåller information om investerarnas nominerade. Alla investerare kan registrera nominerade i sin profil. Nominerade är personer som investeraren känner – troligen deras familjemedlemmar eller vänner – som har rätt att få utbetalningar om investeraren dör. Alla kolumner i denna tabell är självförklarande.

account_statement Tabellen lagrar information om alla transaktioner som utförs av investerare. En transaktion kan vara antingen en insättning eller ett uttag. När en investerare sätter in pengar på sitt depositionskonto är detta en "insättningstransaktion". En "uttag"-transaktion inträffar när en investerare tar ut en del av eller alla pengarna på sitt depositionskonto. I båda fallen, closing_balance uppdateras därefter.

payment_method Tabellen innehåller information om de betalningsmetoder som används för att lägga till pengar på deras depositionskonto. Investerare kan lägga till flera bankkonton för att sätta in eller ta ut sina pengar. Kolumnerna i denna tabell är självförklarande.

Avsnitt 2:Låntagare

Detta ämnesområde förklarar hur vi samlar in och underhåller låntagares uppgifter; det upplyser oss också om processerna som är involverade i verifiering av låntagare, eller förståelse för deras förmåga och vilja att betala tillbaka.

Processen börjar med att registrera låntagare på sajten. Vi kommer att samla in information om deras utbildning, yrke, ekonomiska status och lånebehov. Portaler fångar vanligtvis utbildningsdetaljer eftersom de spelar en nyckelroll i investerarnas beslutsprocess, särskilt när låntagare inte har fördelaktiga anställningsdetaljer. Finansiell information inkluderar deras månadsinkomst, eventuella utestående skulder, kontoutdrag för de senaste sex månaderna, eventuella nyligen studsade checkar och om de har någon regelbunden inkomst.

När denna verifieringsprocess är klar tilldelas låntagare en riskklassificering. Deras lånebehov (d.v.s. lånebiljetter) görs tillgängliga på portalen för allmänheten. Vid varje given tidpunkt kan investerare se alla öppna lånebiljetter, det vill säga de som ännu inte är 100 % finansierade.

borrower Tabellen innehåller låntagarnas profildetaljer, som fångas upp i registreringsprocessen. Kolumnerna i denna tabell är självförklarande, förutom följande:

  • kyc_complete – Innehåller ett Y eller ett N, beroende på om KYC-processen är klar för denna låntagare.
  • highest_qualification – Den högsta utbildningskvalifikationen för denna låntagare; t.ex. grundexamen, forskarexamen, etc.
  • passout_year – Året då låntagaren avslutade sin högsta kvalifikation.
  • university_name – Det universitet där låntagaren fick sin högsta examen.

employment_detail tabellen lagrar anställningsuppgifter för låntagare. Kolumnerna i denna tabell är självförklarande.

När portalen har verifierat låntagarnas grundläggande detaljer skapar den lånebiljetter för deras behov och fångar deras tillgångar och skulder. Information om tillgångar och skulder görs tillgängliga för investerare som referens. Investerare kan behöva hänvisa till dessa uppgifter för att avgöra låntagarnas förmåga att återbetala.

En lånebiljett skapas för varje lånebehov. Denna information lagras i loan_ticket tabell. Kolumnerna är:

  • id – Ett unikt nummer som ges till varje lånebiljett.
  • borrower_id – En refererad kolumn från låntagartabellen.
  • loan_amount – Önskat lånebelopp.
  • loan_tenure_in_months – Antalet månader under vilka lånet kommer att återbetalas.
  • interest_rate – Räntan för det lånet.
  • risk_rating – En riskklassificering tilldelas varje låntagare. Det beror på deras tillgångar, skulder och andra ekonomiska detaljer.
  • reason_for_loan – Varför låntagaren behöver detta lån. Anledningen till ett lån är en nyckelfaktor för vissa investerare. Vissa investerare föredrar till exempel att investera av utbildningsskäl eller skuldkonsolidering, men de kan hålla sig borta från lån som finansierar en semester.
  • ability_to_repay – Portalen fångar upp punktpunkter som hänvisar till låntagarens förmåga att betala tillbaka ett lån. Dessa punktpunkter beaktas av investerare under deras beslutsprocess.
  • risk_factors – Den här kolumnen lagrar information som samlats in av portalen med hänvisning till riskerna med att investera i detta lån.

Riskvärderingar beräknas genom en algoritm som baseras på uppgifterna som lämnats av låntagaren. En plattformsanställd granskar varje låntagares profil, validerar deras finansiella detaljer (inklusive deras kreditvärdighet) och kan manipulera riskbetyg, lånebelopp (t.ex. genom att sänka beloppet om det behövs) och lånets löptid under behandlingen av låneansökan.

borrower_liability Tabellen innehåller information om låntagares utestående lån. Kolumnerna i denna tabell är:

  • id – Tabellens primärnyckel.
  • loan_ticket_id – Refererar till loan_ticket tabell.
  • liability_cost – Det utestående lånebeloppet.
  • liability_type – Typen av ansvar, t.ex. bostadslån, billån, privatlån etc.
  • liability_start_date – Datum då lånet togs.
  • liability_end_date – Datum då lånet kommer att betalas av till fullo.

borrower_asset Tabellen lagrar information om låntagares tillgångar och investeringar. Dessa tillgångar kan vara fasta inlåning, fastigheter och investeringar (eget kapital/skulder) som låntagare äger helt eller delvis. Det är egentligen ingen säkerhet för lånet, men det kan likvideras vid behov. Att tillhandahålla tillgångsinformation gör dessutom en låntagares profil starkare. Kolumnerna i denna tabell är:

  • id – Tabellens primärnyckel.
  • loan_ticket_id – Refererar till tabellen lånebiljett.
  • asset_type – Typen av tillgång, t.ex. fastigheter, fast inlåning, fonder, aktier etc.
  • asset_value – Tillgångens nuvarande marknadsvärde.
  • ownership_percentage – Låntagarens andel av ägandet. Vissa tillgångar köps i samarbete med en annan person.
  • possession_since – Det datum då låntagaren förvärvade denna tillgång.

Avsnitt 3:Uppfyllelse och återbetalning av lån

Detta ämnesområde innehåller detaljerna om låneförslag, uppfyllelse och återbetalning.

investor_proposal Tabellen lagrar data kopplade till investerares förslag på lånebiljetter. Efter att lånebiljetter har lagts ut på portalen kan investerare lämna in sina förslag på dem. De flesta av kolumnerna i denna tabell är självförklarande, förutom:

  • proposal_amount – Det belopp som investeraren vill låna ut. Investerare kan föreslå belopp upp till 100 % av lånebiljetten.
  • proposal_date – Datum då förslaget lämnades in.
  • cancel_date – Investerare kan avbryta förslag som inte har omvandlats till utbetalningsförfrågningar. Den här kolumnen innehåller datumet (om något) då förslaget avbröts.
  • last_update_date – Investerare kan också ändra beloppet på ett förslag, men bara innan det omvandlas till en utbetalningsbegäran. Den här kolumnen innehåller datumet för den senaste förslagsuppdateringen.

Låt oss nu gå vidare till loan_ticket_fulfilment tabell. När en lånebiljett är helt finansierad skapas förfrågningar om uppfyllelse för att uppfylla lånebiljetten. Dessa uppfyllelseförfrågningar är också kända som utbetalningsförfrågningar, det vill säga att investerarna ska frigöra medlen till låntagarens konto. (Obs:Den här tabellen innehåller även EMI och information före stängning, som vi kommer att diskutera separat.) Kolumnerna i denna tabell är:

  • id – Ett unikt nummer som tilldelas varje fullgörandeförfrågan. Om det finns 10 investerare som bidrar till en lånebiljett, skulle det finnas 10 poster i den här tabellen som hänvisar till den lånebiljetten.
  • investor_proposal_id – ID för varje investerare som har bidragit till lånekupongen; detta refererar också till det belopp som investeraren behöver frigöra.
  • release_date_from_investor – Datumet då investeraren frigjorde medel till depositionskontot.
  • disburse_date_to_borrower – Datumet då beloppet krediteras låntagarens konto. Vanligtvis sker båda dessa transaktioner på samma dag eller med ett mellanrum på en arbetsdag.
  • last_update_date – Den här kolumnen uppdateras när en post uppdateras.

loan_ticket_fulfillment Tabellen innehåller också information om varje investerares andel i utbetalningar före EMI och EMI. När låntagare endast har tillgång till en del av sitt lånebelopp, är de skyldiga att betala ränta endast på det utbetalda beloppet (tills hela lånebeloppet är tillgängligt). Denna ränta kallas pre-EMI interest (PEMI) och betalas månadsvis tills den slutliga utbetalningen görs, varefter EMI:erna börjar.

  • pre_emi_due_date – Datumet då pre-emi förfaller. Vanligtvis är det den sista dagen i månaden då lånet uppfylldes.
  • pre_emi_amount – Det beräknade beloppet av pre-emi.
  • emi_amount – Det belopp som låntagaren betalar i månatlig avbetalning.
  • emi_start_date – Datumet då EMI startar. Vanligtvis är det den första dagen i nästa månad (t.ex. ett lån är uppfyllt den 13 januari och EMI startar den 1 februari).
  • emi_end_date – Datumet då låntagaren är planerad att betala den senaste EMI. Detta är en beräknad kolumn som uppdateras när lånet är uppfyllt. Om ett lån har en löptid på 12 månader och EMI:s startdatum är 1 februari 2019, betalas den sista EMI den 1 januari 2020.
  • number_of_total_emi – Antalet EMI som ska betalas i detta lån.

Låntagare kan stänga (betala av) sina lån i förtid genom att betala det utestående kapitalbeloppet som helhet. I banktermer är detta känt som "förstängning" av ett lån. En låntagare kan i förväg stänga lånet för en eller flera långivare åt gången genom att betala långivarens andel av det utestående kapitalbeloppet. Jag har lagt till två kolumner i tabellen för att hantera det här fallet:

  • pre_closure_flag – Den här kolumnen anger om lånet är förstängt. Som standard förblir denna kolumn tom.
  • pre_closure_date – Det datum då lånet är förstängt. För ett pågående lån förblir denna kolumn tom.

loan_repayment_schedule Tabellen innehåller information om återbetalningar av lån. Så snart ett lån har betalats ut, infogas poster i denna tabell för varje EMI-betalningsplan. Om det till exempel finns 10 investerare som investerat i en lånebiljett, skulle det finnas 10 poster i loan_ticket_fulfillment tabell. Om löptiden för det lånet är 12 månader, loan_repayment_schedule Tabellen kommer att innehålla 120 poster (10 poster x 12 månader).

Innan vi fortsätter, ta en titt på ett exempel på återbetalningsschema:

Flera kolumner i loan_repayment_schedule Tabellen är beloppskolumner, skapade för att lagra det förfallna beloppet och de belopp som betalats till olika EMI-komponenter. Några av de andra kolumnerna är:

  • id – Ett unikt nummer som tilldelas varje betalning.
  • loan_ticket_fulfillment_id – Den här kolumnen innehåller information om investeraren, lånebiljetten och låntagaren.
  • is_emi_payment_defaulted – Om EMI inte betalas inom förfallodagen uppdateras denna kolumn med "Y". Som standard förblir denna kolumn tom.
  • is_emi_payment_advanced – Om en eller flera framtida EMI redan har betalats, uppdateras den här kolumnen till "Y" mot alla dessa poster.

Vad tycker du om datamodellen för låneplattformen?

Tycker du att det är komplicerat att låta låntagare och investerare göra sina egna låneaffärer? Vilka förändringar behöver denna datamodell om vi skulle tillåta dem att förhandla om utlåningsräntor och löptid?

Låt oss veta dina åsikter i kommentarsfältet.


  1. Hur man dockar/avdockar frågefönster och andra flikar i SQL Server Management Studio (SSMS) - SQL Server/TSQL självstudie del 21

  2. Hur TRIM() fungerar i MariaDB

  3. Vilken är standardordningen för en lista som returneras från ett Django-filteranrop?

  4. Bättre ALTER än DROP