# US 12,008,659 B1 · Efficient and accurate matching of expenses to software in a SaaS management platform

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,008,659 B1
- Document ID: US12008659B1
- Status: Granted
- Kind: B1
- Application number: 18/162,673
- Filed: 2023-01-31
- Granted: 2024-06-11
- Earliest claimed: 2023-01-31
- Assignees: Productiv, Inc.
- Applicants: Productiv, Inc.
- Inventors: Ashish Aggarwal; Shantanu Kumar; Gaurav Sood; Sharan Jhangiani
- Web page: https://patentgrep.com/patent/US12008659B1

## CPC

- G06Q 40/12: Accounting
- G06Q 10/105: Human resources
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

A non-transitory computer-readable medium having program instructions for a method implemented in a Software as a Service (SaaS) management platform (SMP) is provided, including: receiving a plurality of expense records for a customer organization, wherein each one of the plurality of expense records identifies a user, a vendor, and an amount spent; using a first machine learning model to analyze the plurality of expense records and determine which ones of the expense records represent software purchases; using a second machine learning model to analyze the expense records that are determined to represent software purchases, and identify software titles that the software purchases are for; surfacing the expense records that represent software purchases, in association with their respective identified software titles, through a user interface of the SMP for the customer organization.

## Claims

### Claim 1

A non-transitory computer-readable medium having program instructions embodied thereon that, when executed by at least one server computer, cause said at least one server computer to perform a method implemented in a Software as a Service (SaaS) management platform (SMP), said method including the following operations:
receiving a plurality of expense records for a customer organization, wherein each one of the plurality of expense records identifies a user, a vendor, and an amount spent;
accessing an application programming interface (API) of a human resources (HR) SaaS application to obtain HR data of the users respectively identified by the plurality of expense records, the HR data identifying roles of the users;
using a first machine learning model to analyze the plurality of expense records and determine which ones of the expense records represent software purchases;
using a second machine learning model to analyze the expense records that are determined to represent software purchases, and identify software titles that the software purchases are for;
wherein using the first or the second machine learning model is configured to analyze, for a given user identified by a given expense record, the role identified by the HR data of the given user; and
surfacing the expense records that represent software purchases, in association with their respective identified software titles, through a user interface of the SMP for the customer organization;
applying a third machine learning model to the roles of the users identified by the HR data to predict normalized job functions based on the roles of the users;
wherein analyzing the roles of the users by the first machine learning model includes analyzing the normalized job functions in order to determine the expense records representing software purchases;
wherein analyzing the roles of the users by the second machine learning model includes analyzing the normalized job functions in order to identify the software titles that the software purchases are for.

### Claim 2 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the HR data of the user identified by the given expense record includes one or more of a team, or a location of the user.

### Claim 3 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the method further includes:
accessing application engagement data of the users respectively identified by the plurality of expense records;
wherein using the first or the second machine learning model is configured to analyze, for a given expense record, the application engagement data of the user identified by the given expense record.

### Claim 4 (depends on 3)

The non-transitory computer-readable medium of claim 3, wherein the application engagement data of the user identified by the given expense record identifies one or more applications that the user has interacted with.

### Claim 5 (depends on 3)

The non-transitory computer-readable medium of claim 3, wherein accessing the application engagement data of the users includes accessing an API of a single sign on (SSO) service or a cloud access security broker (CASB).

### Claim 6 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein receiving the expense records includes accessing an API of an expense management SaaS application.

### Claim 7 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the first or the second machine learning model is defined by a neural network classifier trained using labeled training data.

### Claim 8 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein using the second machine learning model is configured to access an application catalog service that maintains a directory of software applications.

### Claim 9 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein surfacing the expense records that represent software purchases through the user interface of the SMP includes, for a given software title, listing data from the expense records that represent software purchases for the given software title.

### Claim 10 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein surfacing the expense records that represent software purchases through the user interface of the SMP includes, for a given software title, adding the amounts spent, of expense records representing software purchases of the given software title, to a total spend for the software title that is displayed in the user interface.

### Claim 11

A non-transitory computer-readable medium having program instructions embodied thereon that, when executed by at least one server computer, cause said at least one server computer to perform a method implemented in a Software as a Service (SaaS) management platform (SMP), said method including the following operations:
receiving a plurality of expense records for a customer organization, wherein each one of the plurality of expense records identifies a user, a vendor, and an amount spent;
accessing an application programming interface (API) of a human resources (HR) SaaS application to obtain HR data of the users respectively identified by the plurality of expense records, the HR data identifying roles of the users;
using a first machine learning model to analyze the plurality of expense records and determine which ones of the expense records represent software purchases;
using a second machine learning model to analyze the expense records that are determined to represent software purchases, and for each expense record representing a software purchase, either identify a software title that the software purchase is for, or determining that a software title cannot be identified that the software purchase is for;
wherein using the first or the second machine learning model is configured to analyze, for a given user identified by a given expense record, the role identified by the HR data of the given user; and
surfacing the expense records that represent software purchases through a user interface of the SMP for the customer organization;
applying a third machine learning model to the roles of the users identified by the HR data to predict normalized job functions based on the roles of the users;
wherein analyzing the roles of the users by the first machine learning model includes analyzing the normalized job functions in order to determine the expense records representing software purchases;
wherein analyzing the roles of the users by the second machine learning model includes analyzing the normalized job functions in order to either identify, or determine cannot be identified, the software title that the software purchase is for.

### Claim 12 (depends on 11)

The non-transitory computer-readable medium of claim 11, wherein the HR data of the user identified by the given expense record includes one or more of a team, or a location of the user.

### Claim 13 (depends on 11)

The non-transitory computer-readable medium of claim 11, wherein the method further includes:
accessing application engagement data of the users respectively identified by the plurality of expense records;
wherein using the first or the second machine learning model is configured to analyze, for a given expense record, the application engagement data of the user identified by the given expense record.

### Claim 14 (depends on 13)

The non-transitory computer-readable medium of claim 13, wherein the application engagement data of the user identified by the given expense record identifies one or more applications that the user has interacted with.

### Claim 15 (depends on 11)

The non-transitory computer-readable medium of claim 11, wherein receiving the expense records includes accessing an API of an expense management SaaS application.

### Claim 16 (depends on 11)

The non-transitory computer-readable medium of claim 11, wherein the first or the second machine learning model is defined by a neural network classifier trained using labeled training data.

### Claim 17 (depends on 11)

The non-transitory computer-readable medium of claim 11, wherein using the second machine learning model is configured to access an application catalog service that maintains a directory of software applications.

### Claim 18 (depends on 1)

The non-transitory computer-readable medium of claim 1, wherein the third machine learning model is trained on data identifying roles and job functions across a plurality of customers of the SMP.

### Claim 19 (depends on 11)

The non-transitory computer-readable medium of claim 11, wherein the third machine learning model is trained on data identifying roles and job functions across a plurality of customers of the SMP.
