[**@s4ai/core Documentation v0.3.23**](../../../../README.md)

***

[@s4ai/core Documentation](../../../../modules.md) / [@s4ai/core/business](../README.md) / ChurnPredictor

# Class: ChurnPredictor

Defined in: business/churn-predictor.js:8

## Constructors

### Constructor

> **new ChurnPredictor**(): `ChurnPredictor`

Defined in: business/churn-predictor.js:9

#### Returns

`ChurnPredictor`

## Properties

### highRiskThreshold

> **highRiskThreshold**: `number`

Defined in: business/churn-predictor.js:10

## Methods

### calculateRiskScore()

> **calculateRiskScore**(`__namedParameters`): `number`

Defined in: business/churn-predictor.js:70

#### Parameters

##### \_\_namedParameters

###### failedChargeRate

`any`

###### subscriptionStatus

`any`

###### usageCount

`any`

###### usageDaysAgo

`any`

#### Returns

`number`

***

### getLatestUsage()

> **getLatestUsage**(`userId`): `Promise`\<\{ `last_usage`: `any`; `usage_count`: `number`; \}\>

Defined in: business/churn-predictor.js:13

#### Parameters

##### userId

`any`

#### Returns

`Promise`\<\{ `last_usage`: `any`; `usage_count`: `number`; \}\>

***

### getPaymentHealth()

> **getPaymentHealth**(`userId`): `Promise`\<\{ `failed_charges`: `number`; `total_charges`: `number`; \}\>

Defined in: business/churn-predictor.js:49

#### Parameters

##### userId

`any`

#### Returns

`Promise`\<\{ `failed_charges`: `number`; `total_charges`: `number`; \}\>

***

### getSubscriptionStatus()

> **getSubscriptionStatus**(`userId`): `Promise`\<`any`\>

Defined in: business/churn-predictor.js:32

#### Parameters

##### userId

`any`

#### Returns

`Promise`\<`any`\>

***

### predict()

> **predict**(`userId`): `Promise`\<\{ `failed_charge_rate`: `number`; `risk_level`: `string`; `risk_score`: `number`; `subscription_status`: `any`; `usage_count_30d`: `any`; `usage_days_ago`: `number` \| `null`; `user_id`: `any`; \}\>

Defined in: business/churn-predictor.js:86

#### Parameters

##### userId

`any`

#### Returns

`Promise`\<\{ `failed_charge_rate`: `number`; `risk_level`: `string`; `risk_score`: `number`; `subscription_status`: `any`; `usage_count_30d`: `any`; `usage_days_ago`: `number` \| `null`; `user_id`: `any`; \}\>

***

### recordRisk()

> **recordRisk**(`userId`, `riskScore`, `riskLevel`): `Promise`\<`void`\>

Defined in: business/churn-predictor.js:123

#### Parameters

##### userId

`any`

##### riskScore

`any`

##### riskLevel

`any`

#### Returns

`Promise`\<`void`\>
