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

***

[@s4ai/core Documentation](../../../modules.md) / [autonomous/acquisition-funnel](../README.md) / AcquisitionFunnel

# Class: AcquisitionFunnel

Defined in: autonomous/acquisition-funnel.js:6

Acquisition Funnel Lifecycle Tracking
Monitors lead progression: capture → qualified → trial → paid

## Constructors

### Constructor

> **new AcquisitionFunnel**(`config?`): `AcquisitionFunnel`

Defined in: autonomous/acquisition-funnel.js:7

#### Parameters

##### config?

#### Returns

`AcquisitionFunnel`

## Properties

### config

> **config**: `object`

Defined in: autonomous/acquisition-funnel.js:8

#### qualificationThreshold

> **qualificationThreshold**: `any`

#### stages

> **stages**: `any`

#### trialDuration

> **trialDuration**: `any`

***

### leads

> **leads**: `Map`\<`any`, `any`\>

Defined in: autonomous/acquisition-funnel.js:22

***

### state

> **state**: `object`

Defined in: autonomous/acquisition-funnel.js:15

#### avgTimeInStage

> **avgTimeInStage**: `object` = `{}`

#### dropoffRate

> **dropoffRate**: `number` = `0`

#### funnelMetrics

> **funnelMetrics**: `object` = `{}`

#### stageTransitions

> **stageTransitions**: `object` = `{}`

## Methods

### calculateFunnelMetrics()

> **calculateFunnelMetrics**(): `object`

Defined in: autonomous/acquisition-funnel.js:173

Calculate funnel metrics at each stage

#### Returns

`object`

##### conversionRate

> **conversionRate**: `string`

##### qualificationRate

> **qualificationRate**: `string`

##### stageBreakdown

> **stageBreakdown**: `object` = `metrics`

###### stageBreakdown.captured

> **captured**: `number` = `0`

###### stageBreakdown.converted

> **converted**: `number` = `0`

###### stageBreakdown.qualified

> **qualified**: `number` = `0`

###### stageBreakdown.trial

> **trial**: `number` = `0`

##### totalLeads

> **totalLeads**: `number` = `total`

##### transitions

> **transitions**: `object`

***

### generateRecommendations()

> **generateRecommendations**(`metrics`, `bottlenecks`): `string`[]

Defined in: autonomous/acquisition-funnel.js:248

Generate recommendations based on funnel health

#### Parameters

##### metrics

`any`

##### bottlenecks

`any`

#### Returns

`string`[]

***

### getLeadsByStage()

> **getLeadsByStage**(`stage`): `any`[]

Defined in: autonomous/acquisition-funnel.js:269

Get lead at specific stage

#### Parameters

##### stage

`any`

#### Returns

`any`[]

***

### getReport()

> **getReport**(): `object`

Defined in: autonomous/acquisition-funnel.js:233

Get funnel report

#### Returns

`object`

##### bottlenecks

> **bottlenecks**: `object`[]

##### metrics

> **metrics**: `object`

###### metrics.conversionRate

> **conversionRate**: `string`

###### metrics.qualificationRate

> **qualificationRate**: `string`

###### metrics.stageBreakdown

> **stageBreakdown**: `object` = `metrics`

###### metrics.stageBreakdown.captured

> **captured**: `number` = `0`

###### metrics.stageBreakdown.converted

> **converted**: `number` = `0`

###### metrics.stageBreakdown.qualified

> **qualified**: `number` = `0`

###### metrics.stageBreakdown.trial

> **trial**: `number` = `0`

###### metrics.totalLeads

> **totalLeads**: `number` = `total`

###### metrics.transitions

> **transitions**: `object`

##### recommendations

> **recommendations**: `string`[]

##### timestamp

> **timestamp**: `string`

***

### getState()

> **getState**(): `object`

Defined in: autonomous/acquisition-funnel.js:282

Get funnel state

#### Returns

`object`

##### funnelMetrics

> **funnelMetrics**: `object`

##### metrics

> **metrics**: `object`

###### metrics.conversionRate

> **conversionRate**: `string`

###### metrics.qualificationRate

> **qualificationRate**: `string`

###### metrics.stageBreakdown

> **stageBreakdown**: `object` = `metrics`

###### metrics.stageBreakdown.captured

> **captured**: `number` = `0`

###### metrics.stageBreakdown.converted

> **converted**: `number` = `0`

###### metrics.stageBreakdown.qualified

> **qualified**: `number` = `0`

###### metrics.stageBreakdown.trial

> **trial**: `number` = `0`

###### metrics.totalLeads

> **totalLeads**: `number` = `total`

###### metrics.transitions

> **transitions**: `object`

##### stageTransitions

> **stageTransitions**: `object`

##### totalLeads

> **totalLeads**: `number`

***

### identifyBottlenecks()

> **identifyBottlenecks**(): `object`[]

Defined in: autonomous/acquisition-funnel.js:204

Identify bottlenecks in funnel

#### Returns

`object`[]

***

### processFunnel()

> **processFunnel**(`leadQueue?`): `Promise`\<\{ `avgQuality`: `number`; `conversionRate`: `number`; `conversions`: `number`; `dropoffRate`: `number`; `processed`: `number`; `qualifiedLeads`: `number`; `topChannel`: `string`; \} \| \{ `avgQuality`: `number`; `conversionRate`: `number`; `conversions`: `number`; `dropoffRate?`: `undefined`; `processed`: `number`; `qualifiedLeads`: `number`; `topChannel?`: `undefined`; \}\>

Defined in: autonomous/acquisition-funnel.js:28

Process leads through funnel stages

#### Parameters

##### leadQueue?

`any`[] = `[]`

#### Returns

`Promise`\<\{ `avgQuality`: `number`; `conversionRate`: `number`; `conversions`: `number`; `dropoffRate`: `number`; `processed`: `number`; `qualifiedLeads`: `number`; `topChannel`: `string`; \} \| \{ `avgQuality`: `number`; `conversionRate`: `number`; `conversions`: `number`; `dropoffRate?`: `undefined`; `processed`: `number`; `qualifiedLeads`: `number`; `topChannel?`: `undefined`; \}\>

***

### recordTransition()

> **recordTransition**(`fromStage`, `toStage`): `void`

Defined in: autonomous/acquisition-funnel.js:165

Record stage transition for analytics

#### Parameters

##### fromStage

`any`

##### toStage

`any`

#### Returns

`void`

***

### scoreLeadQuality()

> **scoreLeadQuality**(`lead`): `Promise`\<`number`\>

Defined in: autonomous/acquisition-funnel.js:109

Score lead quality based on multiple factors

#### Parameters

##### lead

`any`

#### Returns

`Promise`\<`number`\>

***

### trackLeadProgression()

> **trackLeadProgression**(`leadId`, `stage`, `metadata?`): `Promise`\<\{ `error?`: `undefined`; `lead`: `any`; `success`: `boolean`; \} \| \{ `error`: `any`; `lead?`: `undefined`; `success`: `boolean`; \}\>

Defined in: autonomous/acquisition-funnel.js:143

Track lead through conversion funnel

#### Parameters

##### leadId

`any`

##### stage

`any`

##### metadata?

#### Returns

`Promise`\<\{ `error?`: `undefined`; `lead`: `any`; `success`: `boolean`; \} \| \{ `error`: `any`; `lead?`: `undefined`; `success`: `boolean`; \}\>
