What happens inside a growth decision
A growth decision is an automated, real-time process that determines the optimal next action for a customer, maximizing their long-term value.

Inside a growth decision, an event triggers an automated, real-time process: the customer's profile is updated, candidate actions are identified, and a constraint layer filters them. An arbitration engine then selects the highest value intervention, or inaction, based on predicted revenue contribution. Every step is logged for complete auditability.
What happens inside a growth decision
A growth decision is the atomic unit of agentic growth, an automated step determining the optimal interaction with a customer at a specific moment. It applies a methodical, data-driven approach to every individual engagement, aiming to maximize long-term long-term ARPU expansion. This is how Markin executes automated customer interactions in large B2C enterprises.
Example scenario: A customer browses an item
To illustrate the growth decision anatomy, consider a customer, 'Alice', browsing a specific product, 'Luxury Smartwatch X', on a retailer's website. This action is the initial signal that triggers the decision process.
The raw event arrives and what it is and is not evidence of
The first stage of any growth decision begins with a raw event. In Alice's case, this is a 'product view' event for 'Luxury Smartwatch X'. This event arrives at the Markin decisioning engine in real time, typically via an API or webhook.
- What it is evidence of: Alice expressed interest in Luxury Smartwatch X. She spent 45 seconds on the product page.
- What it is not evidence of: The event alone does not confirm purchase intent, pricing sensitivity, or whether she is merely comparison shopping. It provides a data point, not a conclusion.
Events are timestamped and contain metadata like device type, referrer, and session ID. This granular detail is crucial for subsequent stages.
The profile signals that get updated
Upon receiving the event, Markin immediately updates Alice's unified customer profile. This profile is a dynamic repository of all known information about Alice, structured for real-time querying. The 'product view' event enriches existing signals and potentially creates new ones:
- Behavioral signals: 'recently viewed products' (Luxury Smartwatch X added), 'product category interest' (Wearables, Luxury Goods updated). Provenance: Website interaction. Expiry: 24 hours for immediate recency, 7 days for broader interest.
- Engagement signals: 'session duration' (updated), 'pages viewed in session' (incremented). Provenance: Website interaction. Expiry: End of session.
- Propensity scores: The event might trigger a recalculation of propensity to buy 'Luxury Smartwatch X' or propensity to churn. Provenance: ML model inference. Expiry: 1 hour (for real-time scores) or 24 hours (for daily batch scores).
Each signal includes its provenance, identifying the source of the data, and an expiry. Signals from six minutes ago are weighted more heavily than signals from six weeks ago. This dynamic weighting prevents stale data from influencing current decisions.
The candidate actions considered for this person in this window
With Alice's updated profile, Markin identifies a set of candidate actions relevant to her current state. These are potential interventions designed to influence her behavior. For Alice browsing Luxury Smartwatch X, candidates might include:
- Offer a 10% discount on Luxury Smartwatch X: A direct incentive.
- Show a banner for related accessories: Cross-sell opportunity.
- Send an email with top reviews for Luxury Smartwatch X: Nurturing content.
- Display a social proof widget: '15 people viewed this in the last hour.'
- Do nothing: The explicit option to not intervene, preventing over-messaging. This is always a candidate action.
Each candidate action is linked to a specific revenue opportunity and driven by a Hypothesis, for example, 'Discounting high-value items increases conversion rates among high-intent browsers without significant margin erosion.'
The constraints applied before anything can run
Before any action can be executed, it must pass through a series of constraint layers. These rules protect customer experience, brand integrity, and profitability. If an action fails any constraint, it is removed from the candidate set.
Constraint layers table
| Constraint Layer | What it Blocks | Failure Mode if Missing |
|---|---|---|
| Eligibility | Offers to ineligible segments (e.g., existing subscribers for new-customer-only offers). | Wasted budget, customer frustration, legal compliance issues. |
| Contact Frequency | Too many messages within a period (e.g., >3 emails/day, >1 SMS/week). | Customer opt-outs, brand fatigue, reduced engagement rates. |
| Quiet Hours | Messages sent during off-hours (e.g., 9 PM to 8 AM local time). | Annoyance, negative customer experience, regulatory violations. |
| Margin Floor | Offers leading to negative profit margins on specific products/customers. | Unprofitable sales, erosion of enterprise value. |
| Offer Conflicts | Competing or stacked discounts (e.g., '10% off' and 'free shipping' on same item). | Reduced profitability, brand devaluation, customer confusion. |
| Regulatory & Consent | Actions violating GDPR, CCPA, or opt-in status. | Legal penalties, brand damage, loss of trust. |
| Randomized Holdout | Any action to a customer assigned to a control group for measurement. | Inability to measure incremental lift, misattributed ROI, suboptimal decisioning. |
For Alice, imagine the 10% discount is blocked by a 'Margin Floor' constraint because Smartwatch X is a newly launched, high-demand product. Also, a 'Contact Frequency' constraint might block an immediate email if she received one within the last hour. Critically, if Alice is in a holdout group for a particular Experiment, all actions related to that experiment are blocked. A decision with no holdout arm is not measurable and therefore not auditable, undermining the entire Markin platform's value proposition.
The arbitration itself
With the remaining eligible actions, the arbitration engine determines the single optimal action, or inaction. This is the core of the next best action decisioning process. Arbitration evaluates each remaining candidate based on its expected contribution against cost and potential substitution. It's not just about conversion, but incremental, profitable conversion.
Consider two remaining candidates for Alice:
- Candidate A: Show a banner for related accessories (e.g., watch straps, screen protectors).
- Candidate B: Send an email with top reviews for Luxury Smartwatch X.
The arbitration engine calculates an Expected Value (EV) for each. This EV considers:
- Predicted uplift: The estimated incremental revenue from this action.
- Cost: The cost of executing the action (e.g., email sending cost, opportunity cost of screen real estate).
- Substitution: The risk that the action only accelerates a purchase Alice would have made anyway, or shifts her purchase from a higher-margin item to a lower-margin one. This is key to true incremental value.
Worked arithmetic example with substitution
Let's assign hypothetical values:
- Luxury Smartwatch X price: $500
- Accessory price: $50 (average)
- Average gross margin: 25% for Smartwatch, 40% for Accessories
Candidate A: Show banner for related accessories
- Predicted incremental accessory conversion: 5%
- Predicted incremental revenue from accessories: 5% * $50 = $2.50
- Predicted incremental gross profit: $2.50 * 40% = $1.00
- Cost of action (negligible): $0.01
- Predicted substitution effect: Low (she's buying a watch anyway, this is an add-on). Assume $0.00.
- Net Expected Value (NEV): $1.00 - $0.01 - $0.00 = $0.99
Candidate B: Send email with top reviews for Luxury Smartwatch X
- Predicted incremental Smartwatch conversion: 2%
- Predicted incremental revenue from Smartwatch: 2% * $500 = $10.00
- Predicted incremental gross profit: $10.00 * 25% = $2.50
- Cost of action: $0.05 (email platform cost)
- Predicted substitution effect: High (she might have bought it anyway or with another nudge). This is where the uplift model is critical. Assume $1.50 in profit she would have generated regardless.
- Net Expected Value (NEV): $2.50 - $0.05 - $1.50 = $0.95
In this example, Candidate A (related accessories banner) has a higher NEV ($0.99) than Candidate B (review email, $0.95), even though the review email drives higher potential *gross* revenue. The substitution effect is often the reason why the answer is to wait, or to choose a less direct action. Markin prioritizes actions that genuinely create new value, not just shift existing value.
Therefore, Markin would select Candidate A for Alice.
The decision record
Every growth decision, regardless of whether an action was taken or not, generates a comprehensive decision record. This log is crucial for auditing, performance analysis, and continuous model improvement.
The record for Alice's interaction would include:
- Timestamp: The exact moment the decision was made.
- Triggering Event: 'Product view: Luxury Smartwatch X' with all its metadata.
- Customer ID: Alice's unique identifier.
- Profile State: A snapshot of key profile signals at the time of decision (e.g., 'recently viewed products', 'propensity to buy Smartwatch X', 'last communication received').
- Candidate Actions: A list of all actions initially considered.
- Applied Constraints: Which constraints were applied and which candidates they eliminated (e.g., 'Margin Floor' blocked '10% discount', 'Contact Frequency' blocked 'immediate email').
- Arbitration Inputs: The NEV calculations for each remaining candidate, including predicted uplift, cost, and substitution values.
- Chosen Action: 'Show banner for related accessories' or 'Do nothing'.
- Reason for Choice: 'Highest Net Expected Value: $0.99'.
- Policy Version: The specific version of the decisioning policy and underlying ML models used. This ensures reproducibility and helps in A/B testing different policies.
- Holdout Assignment: Whether Alice was in a control group or treated group for any active Experiments. This is critical for measuring incremental ARPU lift.
This detailed record ensures that any decision can be reconstructed months later by a human auditor, justifying the action taken (or not taken) and validating the underlying logic and models. It supports regulatory compliance and provides the data necessary to continuously refine and optimize growth strategies. This comprehensive logging and audit trail is foundational for agentic growth and allows enterprises to scale their data science capacity without losing control or transparency.
For more insights into how Markin drives measurable growth, explore our retention decisioning solutions and the principles of revenue discovery.
Frequently asked questions
- What happens inside a growth decision?
- Inside a growth decision, an event triggers profile updates, which then inform candidate actions. Constraints filter these actions based on eligibility and policy. An arbitration engine selects the optimal action, or inaction, based on expected revenue contribution, and the entire process is logged for auditing.
- How does an AI agent decide which action to send a customer?
- An AI agent decides by evaluating a customer's real-time profile against a set of candidate actions. It applies predefined constraints like frequency caps and margin floors. Finally, it arbitrates the remaining actions based on predicted uplift, cost, and substitution effects, choosing the one that maximizes expected long-term value.
- How do you audit an automated marketing decision?
- Auditing an automated marketing decision requires a comprehensive decision record. This log must detail the triggering event, customer profile state, candidate actions considered, applied constraints, arbitration outcome, and policy version used. This allows reconstruction and validation of every decision made.
- What constraints should apply before sending a customer an offer?
- Before sending an offer, constraints such as eligibility criteria, contact frequency limits, quiet hours, minimum margin floors, offer conflict rules, and regulatory consent rules must apply. Additionally, a randomized holdout assignment ensures proper measurement of the offer's incremental impact and validates its effectiveness.
- How is a next best action chosen in real time?
- The next best action is chosen in real time through a rapid sequence: event ingestion, profile enrichment, candidate action identification, constraint application, and finally, arbitration. The arbitration prioritizes actions by their expected revenue contribution, net of cost and potential substitution, ultimately selecting the highest value intervention or opting for no action.