31
Neo Technology, Inc Confidential The 5 Graphs of Finance Philip Rathle Sr. Director of Products @prathle [email protected]

The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Embed Size (px)

Citation preview

Page 1: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

The 5 Graphs of Finance

Philip RathleSr. Director of Products

@prathle [email protected]

Page 2: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

The “4 Giants”

Ref: http://www.gartner.com/id=2081316

Page 3: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

Consumer Web Giants Depends on Five GraphsGartner’s “5 Graphs”

Social Graph

Ref: http://www.gartner.com/id=2081316

Interest Graph

Payment Graph

Intent Graph

Mobile Graph

Page 4: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

• Payment Graph(e.g. Fraud Detection, Credit Risk Analysis, Chargebacks...)

• Customer Graph(org drillthru, product recommendations, mobile payments, etc.)

• Entitlement Graph(identity & access management, authorization)

• Asset Graph(portfolio analytics, risk management, market & sentiment analysis, compliance)

• Master Data Graph(enterprise collaboration, corporate hierarchy, data governance)

5 Graphs of Finance

Finance

Page 5: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

#1: Payment Graph

Page 6: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

Page 7: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

The Payment Graph Depends on the Customer Graph (#2)#1: Payment Graph Example

Page 8: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

Capturing B2B & B2C Transactions#1: Payment Graph Example

Page 9: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

#1: Payment Graph Example

Page 10: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

Streamlined Management of Chargebacks#1: Payment Graph Example

Page 11: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

#2: Customer Graph

Page 12: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

Page 13: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

The Corporate Hierarchy is Really a Graph#2: Customer Graph

Page 14: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

Cleansing & Matching for 360 degree master view#2: Customer Graph

Page 15: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

Bank Fraud Example: Ring of False Identities#2: Customer Graph

Page 16: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

Bank Fraud Example: Combinatorial Multiplying of False Persona#2: Customer Graph

3 phony addresses + 3 phony phone #s = 9 phony customers.... and so on

Page 17: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

#3: Entitlement Graph

Page 18: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

http://blogs.gartner.com/ian-glazer/2013/02/08/killing-iam-in-order-to-save-it/

Page 19: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

Background

• Top investment bank: over $1T in total assets

• Using a relational database coupled with Gemfire for managing employee permissions to research resources (documents and application services)

Business problem• When a new investment manager was onboarded,

permissions were manually provisioned via a complex manual process. Traders lost an average of 5 days of trading, waiting for the permissions to be granted

• Competitor had implemented a project to accelerate the onboarding process. Needed to respond quickly.

• High stakes: Regulations leave no room for error.

• High complexity: Granular permissions mean each trader needed access to hundreds of resources.

Solution & Benefits• Organizational model, groups, and entitlements stored

in Neo4j

• Very happy with the performance of the solution, and the productivity advantage of a domain fit

• Graph visualization makes it easier for the business to provision permissions themselves

• Moving to Neo4j meant “fewer compromises” than a relational data store

Industry: Financial ServicesUse case: Entitlements/IAMLondon

Large Investment

Bank

Page 20: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

#4: Asset Graph

Page 21: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

IT Asset ManagementPortfolio Analytics

Risk Analysis

#4: Asset Graph Examples

Page 22: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

#5: Master Data Graph

Page 23: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

Background

Business problem Solution & Benefits

• German mid-size Insurance company

• Founded in 1858, over 500 employees

• Field sales unit needed easy access to policies and customer data, in an increasing variety of ways

• Needed to support a growing business

• Existing IBM DB2 system not able to meet performance requirements as the system scaled

• 24/7 available system for sales unit outside the company needed

• Enable field sales unit to flexibly search for insurance policies and associated personal data

• Raising the bar with respect to insurance industry practices

• Suppor the business as it scales, with a high level of performance

• Easy port of existing metadata into Neo4j

Industry: InsuranceUse case: Master Data Management

Page 24: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

IntercontinentalExchange

Social network for brokers

Page 25: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

Technology for Managing Graphs

Page 26: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

Use SQL to Find all Dependencies(up to 3 levels down)

(SELECT T.directReportees AS directReportees, sum(T.count) AS countFROM (SELECT manager.pid AS directReportees, 0 AS count FROM person_reportee manager WHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName")UNION SELECT manager.pid AS directReportees, count(manager.directly_manages) AS countFROM person_reportee managerWHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName")GROUP BY directReporteesUNIONSELECT manager.pid AS directReportees, count(reportee.directly_manages) AS countFROM person_reportee managerJOIN person_reportee reporteeON manager.directly_manages = reportee.pidWHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName")GROUP BY directReporteesUNIONSELECT manager.pid AS directReportees, count(L2Reportees.directly_manages) AS countFROM person_reportee managerJOIN person_reportee L1ReporteesON manager.directly_manages = L1Reportees.pidJOIN person_reportee L2ReporteesON L1Reportees.directly_manages = L2Reportees.pidWHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName")GROUP BY directReportees) AS TGROUP BY directReportees)UNION(SELECT T.directReportees AS directReportees, sum(T.count) AS countFROM (SELECT manager.directly_manages AS directReportees, 0 AS countFROM person_reportee managerWHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName")UNIONSELECT reportee.pid AS directReportees, count(reportee.directly_manages) AS countFROM person_reportee managerJOIN person_reportee reporteeON manager.directly_manages = reportee.pidWHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName")GROUP BY directReporteesUNION

(continued from previous page...)SELECT depth1Reportees.pid AS directReportees,count(depth2Reportees.directly_manages) AS countFROM person_reportee managerJOIN person_reportee L1ReporteesON manager.directly_manages = L1Reportees.pidJOIN person_reportee L2ReporteesON L1Reportees.directly_manages = L2Reportees.pidWHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName")GROUP BY directReportees) AS TGROUP BY directReportees)UNION(SELECT T.directReportees AS directReportees, sum(T.count) AS count FROM( SELECT reportee.directly_manages AS directReportees, 0 AS countFROM person_reportee managerJOIN person_reportee reporteeON manager.directly_manages = reportee.pidWHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName")GROUP BY directReporteesUNIONSELECT L2Reportees.pid AS directReportees, count(L2Reportees.directly_manages) AScountFROM person_reportee managerJOIN person_reportee L1ReporteesON manager.directly_manages = L1Reportees.pidJOIN person_reportee L2ReporteesON L1Reportees.directly_manages = L2Reportees.pidWHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName")GROUP BY directReportees) AS TGROUP BY directReportees)UNION(SELECT L2Reportees.directly_manages AS directReportees, 0 AS countFROM person_reportee managerJOIN person_reportee L1ReporteesON manager.directly_manages = L1Reportees.pidJOIN person_reportee L2ReporteesON L1Reportees.directly_manages = L2Reportees.pidWHERE manager.pid = (SELECT id FROM person WHERE name = "fName lName"))

Page 27: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

Using CypherMATCH  (fund)-­‐[:INCLUDES*0..n]-­‐>(sub),            (sub)-­‐[:INCLUDES*1..n]-­‐>(asset)WHERE  fund.ticker  =  “TRLGX”RETURN  sub.ticker  AS  Asset_Group,  count(asset)  AS  TotalORDER  BY  Total  DESC

Use Cypher to Find all Dependencies(up to n levels down)

For a given fund, returns all assets thatare made up of other assets,

ordered by the total # of included assets

Page 28: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

RDBMS vs. Native Graph Database

Connected Data & Query Performance

Connectedness of Data Set

Resp

onse

Tim

e

RDBMSDegree: < 3Size: Thousands

# Hops: < 3Neo4j

Degree: Thousands+Size: Billions+

# Hops: Tens to Hundreds

1000x faster

Page 29: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

Top Reasons for Choosing Neo4j

1. Problems with JOIN performance

2. Domain fit for graph

3. Open-ended business requirements necessitating fast, iterative development

4. Evolving and/or non-uniform data, avoiding sparse tables and frequent schema chances

Page 30: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

Who’s Using Graph Databases Today?

Finance

Finance

Accenture

Page 31: The Five Graphs of Finance - Philip Rathle and Emil Eifrem @ GraphConnect NY 2013

Neo Technology, Inc Confidential

Thanks!

Stay Connected