785
The logic in team based sub strategies should check AssitedUpgradeTeamDiscountConfig DDS to decide which sub discount calculation
strategy to run.This DDS will be configured by PM tool and format & initial configuration will be as in below . This DDS will also store team’s
profile group code which  is used to  locate Segment of 1 Discount.
Note: Segment of 1 Is descoped  from Drop1 , as Model is not ready.

E. Strategy  - Get Current Tariff
This sub-strategy uses subscription spine data to identify current tariff  and looks up customer’s current tariff details from product catalog
tariff  table. The details include customer’s tariff name, MAF,discount AddOns (Descoped) etc. as required for the discounting logic. (in
future releases current tariff data will be provided by context data) (AOM-1787 has details of the logic & sources)
Discount Calculation :
Query 1 :
Join   product_holding_v and product_reference_v  for customer
Filter Condition:
product_ref.product_des_3  column =’Line Rental’
Effective_End_Dt is in the future
Status_CD is active

Result : line rental product code  product_ref. product_cd
 Omni Upsell U
Omni PiceMatrix U
Omni Segmentof1 U
Save PiceMatrix S
Save Segmentof1 S
SuperSave PiceMatrix O
SuperSave Segmentof1 OTeam Discount Logic To Apply Profile Group Code


786
Query 2 :

subs_invoice_charge_v
Filter Condition :
subs_invoice_charge_v .product_cd = Query 1. product_cd
or
  subs_invoice_charge_v.Discount_product_cd = Query 1. product_cd
Result  : Total Vat included discount amount  =>Sum of subs_invoice_charge_v .post_vat_charge_amt
F. Strategy  - Get Recommended Tariff
This sub-strategy uses the Big Data Model (Model ID - 8) to get the recommended tariffs . Assisted upgrade flow will only consider
"CONNECTION_TYPE":"SIMO" tariffs.
For Release 1.10,
Only single Recommended Tariff information will be provided from model.
This strategy returns only the top recommended tariff  provided by model output and looks up  tariff details from product catalog tariff
table . The details include customer’s tariff name, MAF etc. as required for the discounting logic.
For Future Releases :
 Model will provide list of tariffs (10) as array which will be provided as a page list attached to models scores.
The selection of “top” recommended tariff (by propensity score) will be controlled by a parameter (held in decision data) , which can be
updated to return more recommended tariffs in later releases.
Additionally, this strategy will be updated/expanded to use alternate methods to identify recommended tariffs such as rule based
recommendation or adaptive model based recommendation.(Please see AOM-1789  & AOM-1790 for Model details & Recommended
tariff enrihment )
G. Strategy  - Calculate Omni Discounts for Assisted Upgrade
This sub-strategy will be executed only of the agent (available from contextual data) belongs to the “Omni” team.


This sub-strategy passes on the input “Current Tariff” and “Recommended Tariff” details to 3 sub-strategies (Upsell Discount, Discount By
Omni Price Matrix & Segment Of 1 Discount).
 to get the 3 discounts (if applicable) and chooses the maximum discount as return value.   (AOM-1800)


787

H. Strategy  - Calculate Save Discounts for Assisted Upgrade
This sub-strategy will be executed only of the agent (available from contextual data) belongs to the “Save” team.
This sub-strategy passes on the input “Current Tariff” and “Recommended Tariff” details to 2 sub-strategies (Discount By Save Price Matrix
& Segment Of 1 Discount) to get the 2 discounts (if applicable) and chooses the maximum discount as return value.   (AOM-1801)

I. Strategy  - Calculate Super Save Discounts for Assisted Upgrade
This sub-strategy will be executed only of the agent (available from contextual data) belongs to the “Super Save” team.
This sub-strategy passes on the input “Current Tariff” and “Recommended Tariff” details to 2 sub-strategies (Discount By Super Save Price
Matrix & Segment Of 1 Discount) to get the 2 discounts (if applicable) and chooses the maximum discount as return value.  (AOM-1802)

I. Strategy  - Calculate Upsell Discount for Assisted Upgrade
This sub-strategy will calculate the discount based on the algorithm below -

If


788
The attributes C & D will be a configuration on PM tool (both percentage & discount amount) and feed to
AssistedUpgradeUpsellDiscountConfig DDS.

I. Strategy  - Calculate Discount By Omni Price Matrix for Assisted Upgrade
This sub-strategy will use the decision data (example below) to calculate the discount -
Customer Star Rating - from Big Data Model
Decision Data - Omni Price Matrix (example)
Please note that the only entries with Discount > 0% will be available. If case of no entries found for a tariff, the strategy will apply 0%
discount.
Recommended tariff name & customer star rating score   will be used to locate discount.
Please refer to  AOM-1788 & 1800 for details (+ A new CR will be raised for change from Tariff Group base config to Tariff)
I. Strategy  - Calculate Discount By Save Price Matrix for Assisted Upgradea = What is MAF of new tariff inc Add ons?
b = What is MAF of current tariff (net of
discounts) inc addons? (descoped for Drop1)Value Up
c = 10% £3
d = 15% £5
Then
 If (a-(a*c))-b >£3 apply 10%
 if (a-(a*d))-b >£5 apply 15%
Omni 10 3 15 5
Save 10 3 15 5
Super Save 10 3 15 5Team Upsell Discount
Percentage 1Upsell Discount Amount 1Upsell Discount
Percentage Value 2Upsell Discount Amount 2

      Tariff Name Data Allowance
(Example 5120)Tenure (Example
12)Customer Star


(Example 5120)Tenure (Example
12)Customer Star
Rating (Example 6)Discount(%) Tariff Group


789
This sub-strategy will use the decision data (example below) to calculate the discount -
Decision Data - Save Price Matrix
Please note that the only entries with Discount > 0% will be available. If case of no entries found for a tariff, the strategy will apply 0%
discount.
Recommended tariff name & customer star rating score   will be used to locate discount.Currently Save Price Matrix does no have
Customer Star Rating dimension  but in future they may define it by rating score. So the logic should check config data for matching is it is
null will not consider customer rating score for locating discount.Please refer to  AOM-1801 for details

I. Strategy  - Calculate Discount By Super Save Price Matrix for Assisted Upgrade
This sub-strategy will use the decision data (example below) to calculate the discount -
Decision Data - Super Save Price Matrix (example)
Please note that the only entries with Discount > 0% will be available. If case of no entries found for a tariff, the strategy will apply 0%
discount.
Recommended tariff name & customer star rating score   will be used to locate discount.Currently Super Save Price Matrix does no have
Customer Star Rating dimension  but in future they may define it by rating score. So the logic should check config data for matching is it is

      Tariff Name (Long
Name)Data Allowance
(Example 5120)Tenure (Example
12)Customer Star
Rating (null)Discount(%) Tariff Group
(Example Red)

      Tariff Name (Long
Name)Data Allowance
(Example 5120)Tenure (Example
12)Customer Star


(Example 5120)Tenure (Example
12)Customer Star
Rating (null)Discount(%) Tariff Group
(Example Red)


790
null will not consider customer rating score for locating discount..Please refer to  AOM-1802 for details

I. Strategy  - Calculate Segment Of 1 Discount for Assisted Upgrade
Note: Segment of 1 Is descoped  from Drop1 scope, as Model is not ready.But please create the strategy as blank , integrate to logic. But
don not configure for any team.
This sub-strategy will use the Big data Model (Model ID - TBC ) below the calculate Segment of 1 discount (upto 10 Tariff Groups) -
Logic should use output of the model if it only applicable for the team. Profile Group 1 column identify discount applicable for which team.
Strategy - Populate Outputput Propeties for InboundCC :
Please check AOM-1806 , 1807  & 1808 for related attributes. Discount & tariff information will be provided as attributes of offer . In first
drop we be providing single tariff & discount. This part will be enhanced in next releases to cater for multiple output
Strategy - Set IH for InboundCC :
Please check AOM-1807  for related attributes44744206XXXX 112228_112229_112
230_112231_112232
_11223325 U 01/03/2020 01/05/2020
44747058XXXX 112228_112229_112
230_112231_112232
_11223325 S_O 01/03/2020 01/05/2020
4474935XXXXX 112228_112229_112
230_112231_112232
_11223325 U_R_S_O_W 01/03/2020 01/05/2020MSISDN Tariff_Group1 Discount_Group1 Profile_Group1 Offer_Start_Group1Offer_End_Group1
U = Upgrades


U = Upgrades
R= Retail
S= Saves
O = Super Saves/Outbound
W = WebReference


791
NBA FW - Squad Zones - Offers

A. Create the following new “Issues” in Proposition Hierarchy by Squad -
Upsell
Retention
Service
Retain
Renew
CrossSell
B. Create the following Group in each of the Issues
Offers
The decision data structure should be same as one of the groups under Offers Issue

C. The Offer data should be pushed to new Decision Data in respective class by Squad (PM tool)

D. Update offer proposition import
Update relevant strategies to update the proposition imports for offers

E. Recreate the follow proposition filters in new Issue-Group and remap the eligibility rules
UpsellOfferEligibility
RetentionOfferEligibility
ServiceOfferEligibility
RetainOfferEligibility
RenewOfferEligibility
CrossSellOfferEligibility
F. Ensure the following strategies is in Business Artifacts ruleset
Identify Eligible Upsell Offer (Business)
Identify Eligible Retention Offer (Business)
Identify Eligible Service Offer (Business)
Identify Eligible Retain Offer (Business)
Identify Eligible Renew Offer (Business)
Identify Eligible CrossSell Offer (Business)
 AOM-1626


792
NBA FW - Squad Zones - OfferVariants
AOM-1629
A. Create the following new “Issues” in Proposition Hierarchy by Squad (if needed) -
Upsell
Retention
Service
Retain
Renew
CrossSell
B. Create the following Group in each of the Issues
OfferVariations
OfferToOfferVariations
The decision data structure should be same as under NonPropositions Issue

C. The relevant offer variations data should be pushed to new Decision Data in respective class by Squad (PM tool)

D. Create new proposition filters for each Squad as follows in respective Issue-Group and remap the eligibity rules - (Business)
<<BusinessPurpose>>OfferVariationsEligibility

E. Create new strategies for each Squad as follows using strategy IdentifyOfferVariantsForEligibleOffers as template (Business)
Apply<<BusinessPurpose>>OfferVariationsEligibility
Use the relevant proposition imports and proposition filters in each of the new strategy
Replace “Eligible Offers” sub-strategy with “External Input“

F. Update strategy - IdentifyOfferVariantsForEligibleOffers as follows -


794
NBA FW - Squad Zones - Treatments
Question : Impact on exiting Adaptive Learning
AOM-1630
A. Create the following new “Issues” in Proposition Hierarchy by Squad (if needed) -
Upsell
Retention
Service
Retain
Renew
CrossSell
B. Create the following Group in each of the Issues
AppPush
DirectMail
Email
OutboundCC
SMS
Web
The decision data structure should be same as one of the groups under Treatments Issue

C. The relevant Treatments data should be pushed to new Decision Data in respective class by Squad (PM tool)

D. New strategy - Import<<Channel>>Treatments
Created new strategies to import all relevant treatments from all Squads as follows -
ImportAppPushTreatments
ImportDirectMailTreatments
ImportEmailTreatments
ImportOutboundCCTreatments
ImportSMSTreatments
ImportWebTreatments
Added the Active check in each of the strategies.

E. New strategy - ImportAllTreatments
Created following sub-strategy components to import all treatments -
ImportAppPushTreatments
ImportDirectMailTreatments
ImportEmailTreatments
ImportOutboundCCTreatments
ImportSMSTreatments


795
ImportWebTreatments

F. Update strategy - AllTreatmentsForEligibleOffers
Replace proposition import with sub-strategy  - ImportAllTreatments
Removed the Active check.

G. Update strategy - PrepareEmailTreatments
Replace email proposition import with sub-strategy  - ImportEmailTreatments

H. Update strategy - PrepareSMSTreatments
Replace SMS proposition import with sub-strategy  - ImportSMSTreatments

I. Update strategy - MarketingStrategyForT2SSMS
Replace SMS proposition import with sub-strategy  - ImportSMSTreatments

J. Update strategy - ApplyControlGroupsForT2S
Replace OutboundCC proposition import with sub-strategy  - ImportOutboundCCTreatments

K. Create new proposition filters for each Squad as follows in respective Issue-Group and remap the eligibility rules - (Business)

<<BusinessPurpose>>AppPushTreatmentEligibility
<<BusinessPurpose>>DirectMailTreatmentEligibility
<<BusinessPurpose>>EmailTreatmentEligibility
<<BusinessPurpose>>OutboundCCTreatmentEligibility
<<BusinessPurpose>>SMSTreatmentEligibility
<<BusinessPurpose>>WebTreatmentEligibility

L. Create new strategies for each Squad as follows using strategy ApplyTreatmentEligibility as template (Business)
Apply<<BusinessPurpose>>TreatmentEligibility
Use the relevant proposition filters in the new strategy

M. Update strategy ApplyTreatmentEligibility -
As follows -


797
NBA FW - Squad Zones - TreatmentVariants
AOM-1627

A. Create the following new “Issues” in Proposition Hierarchy by Squad (if needed) -
Upsell
Retention
Service
Retain
Renew
CrossSell
B. Create the following Group in each of the Issues
TreatmentVariations
TreatmentToTreatmentVariations
The decision data structure should be same as under NonPropositions Issue

C. The relevant treatment variations data should be pushed to new Decision Data in respective class by Squad (PM tool)

D. Create new proposition filters for each Squad as follows in respective Issue-Group and remap the eligibility rules - (Business)
<<BusinessPurpose>>TreatmentVariationsEligibility

E. Create new strategies for each Squad as follows using strategy IdentifyTreatmentVariations as template (Business)
Identify<<BusinessPurpose>>TreatmentVariations
Use the relevant proposition imports and proposition filters in each of the new strategy

F. Update strategy - IdentifyTreatmentVariations as follows -


798
Epic - App Push Response Feed
1.CaptureResponse Data flow
 Use the Existing Capture Response Data flow
2. Update CaptureResponse Strategy
 Update the Strategy to have 2 Different paths for Email and AppPush
and call respective strategies
  a)CaptureResponseForEmail
  b)CaptureResponseForAppPush
2b.Create CaptureResponseForAppPush Strategy
  Map all the Properties that are mentioned for AppPush Capture Response as per AOM Interface spec.
https://docs.google.com/spreadsheets/d/1ODmIR6ulrd6f319gBkaiDngz-uVsArho9hLIbOVGI9s/edit?ts=5c7d3864#gid=1787423506 -

Interaction ID will be provided by service IH mapping for AppPush will be done via Interaction ID
For TAG_CHANGE event ,context will have the Subchannel and Outcome.
For other events we need to populate based on SubeventType.

 AOM-849 Capture App Notification Responses In Interaction History
Co
nnect your Google account
OPEN Push OPEN
SEND Push SENT
PUSH_REJECTED Push REJECTED
RICH_DELIVERY Inbox DELIVERED
RICH_READ Inbox OPEN
RICH_DELETE Inbox DELETED
IN_APP_MESSAGE_DISPLAY InApp OPEN
IN_APP_MESSAGE_EXPIRATION InApp EXPIRED
IN_APP_MESSAGE_RESOLUTION InApp DELETED
TAG_CHANGE Provided in context Provided in Context in Tag AttributeSubEventType SubChannel Outcome


799
Release 1.11


800
Assisted Upgrade -Drop 2
1.Integration with GPSL
Using GPSL output to identify
Current Tariff
Current Addon on subscription
Current Discount on subscription
If GPSL service call fails, no data will be available in related page(TBC). In that case  logic should populate related data from AOM
spines (As in 1.10)
GPSL output will be provided to logic with a page list on subscription class (TBC)
Logic Impact :
Update Calculate Current Tariff  Calculation
Update Current Tariff Source
If GPSL service call is successful use service output data , else use 1.10 spine approach
Enrichment of current tariff remains as is.
Update Current Tariff -Discount Calculation
If GPSL service call is successful use service output data , else use 1.10 spine approach
Calculate Addons for current tariff (New)
If GPSL service call is successful use service output data , else use spine approach
Enhance add-on data calculate amount.
If any addons available for current tariff & marked as “Included in Net mag calculation”(NetMafAddonListConfig) sum this data
and calculate Total Add-on price
Update Upsell Net Maf Calculation for Current Tariff
Update the formula to include Total Add-on price.
PM Tool Impact :
There is a need to
Group Addons
Flag  Addon Group or Addons individually which are included in net mag calculation.
Logic need a DDS that contains Add-on code list that is included in Net Maf calculation. (NetMafAddonListConfig)
 Product Fulfillment code  will be stored in DDS &  this will be use to map with GPSL & product holding data.AOM-1945 Identifying the Add on on the
custome's accountNeed update to give details for
how to populate from spines


custome's accountNeed update to give details for
how to populate from spines
AOM-1946/AOM-1940 Update the Net MAF to add On  How to address storage of
subscription add-on list used in
calculation.
AOM-1961 Use GPSL to source the
customer's current tariff and
discount  AOM-1714 Provide Mechanism to Ingest
Data from GPSL into Logic


801

IH Impact
Requirement to store subscription’s Addons list used in Net mag calculation.  (Solution is not set yet )


802
NBA FW - Offer Tagging for Execution Mode
AOM-1818 Update strategy FW to push to different execution modes
A. Add the following new entries as Offer Execution Mode (PM Tool )
TIL
GRPL
ProcessEvent
NBAA
GetNBA
B. Update Offer Execution Mode in Offer screen to be multi-select (PM Tool)
C. In PM Catalogue, set Offer Execution Mode as follows for all offers from the Business Purpose as follows -
D. New Strategy - ImportOffers (FW)
This strategy imports all offers across all business purposes and applies the “active” check

E. Update Strategy - IdentifyEligibleOffers (FW)
Update the strategy as follows -
Update GetRealtimeContextforEvent strategy
Set ExecutionMode according to context parameter.(if context parameter ! null)
Rules to Identifying Execution Mode :
Primary.Context(NTID)!=""  > TILUpsell, Retention, Service TIL
Renew (for HBB2 Offers) GRPL
Renew (for AssistedUpgrade Offers) NBAA
Retain ProcessEvent
CrossSell Batch
? (Trade In Offers) GetNBABusiness Purpose   Offer Execution Mode


803
LeaveRequestAndDisconnections.pySubjectID!="" > ProcessEvent
ExecutionMode = GRPL > GRPL
ExecutionMode = NBAA > NBAA
ExecutionMode = GetNBA > GetNBA
else> Batch
F. Update the following strategies as below -
Identify Eligible Upsell Offer (Business)
Identify Eligible Retention Offer (Business)
Identify Eligible Service Offer (Business)
Identify Eligible Retain Offer (Business)
Identify Eligible Renew Offer (Business)
Replace the proposition import component with “External input” and remove the “active” check
G. Update strategy - Identify Offers For Eligible Intents
Replace the proposition import component with “External input” and remove the “active” check
Add a call to sub-strategy GlobalEligibilityRulesForBatch before returning results

H. Execution Mode Input (App Impact)
App code will set  Subscription.Context (“ExecutionMode”) according to the mapping in below.
GetRecomendedationList > Setting Execution Mode =“GRPL”
Assisted Upgrade Test Harness > Execution Mode =”NBAA”
GetNBA >Execution Mode=“GetNBA”


804
NBA FW - Best Treatment

A. Update all offers decision data to add following 2 properties
PickBestTreatmentsMethod - Text
MaxBestTreatments - Integer

B. Update the Offer Screen to add following 2 inputs (PM tool)
PickBestTreatmentsMethod - Single select drop-down, optional
Possible value - Channel Hierarchy
MaxBestTreatments - Positive Integer only, Mandatory if PickBestTreatmentsMethod is set

C. New decision data - Channels
pyName - Text
pyLabel - Text
pyIssue -
pyGroup -
Rank - Integer

D. Update Channels screen (PM tool)
New Property - Direction - Single Select Drop-down, Mandatory, possible values - Outbound,Inbound
New property - Rank - Positive Integer, Mandatory for all outbound channels
This data should be pushed the new Channels decision data

E. Update all relevant strategies to pass the following 2 properties from Offer to Treatment Level
PickBestTreatmentsMethod
MaxBestTreatments

F. New strategy - IdentifyBestTreatmentsForOffers
This strategy will do the following -
1. Expects eligible treatments from External Input
2. Checks if PickBestTreatmentsMethod is NULL
3. If Yes, returns the treatments AOM-1720 Best Treatment


805
4. If No, check if PickBestTreatmentsMethod = Channel Hierarchy
5. If No, returns the treatments
6. If Yes, assigns the Channel Rank to relevant Treatment using Channels decision data
7. Uses “Embedded strategy” to loop through all treatments for a Single Offer
8. In the “Embedded strategy”, ranks the treatments by “Rank” ascending and selects the number of treatments as specified by
MaxBestTreatments and returns the treatments
G. Update strategy - IdentifyBestOBTreatmentsByBatch
Call sub-strategy IdentifyBestTreatmentsForOffers after “Outbound Treatments By Batch“

H. Update strategy - IdentifyBestTreatmentsByTriggers
Call sub-strategy IdentifyBestTreatmentsForOffers after “IdentifyEligibleTreatmentsByTriggers“

I. Update strategy - ProcessEvent
Call sub-strategy IdentifyBestTreatmentsForOffers after “Eligible Treatments By Events“

Offer Catalog Update
Offer based preferences (TBC)


806
Trade In

New DF -GetNBA
GetNBA service context  will be contain to
subscription/prospect data
List of payment methods & price (for subscription)
This data will be populated to subscription page ( on AppSide). >Attributes to  access, data TBC
DF will reuse existing PrepareRealtimeData DF to set up subscription data
A new Top Level “GetNBA” strategy will be created.
DF will return Eligible offers(Payment Methods) & Feed IH
No offer case will be logged on app side, logic will set error message  with “No Offer”
New Strategy-GetNBA
Top level strategy will switch between Channel based strategies according to Channel data in context (Web/InboundCC/Retail)
Exiting Web & InboundCC strategies will be used, a new strategy will be created for Retail.AOM-1723 Create GetNBA Data Flow (Subscription)
AOM-1735 Extension of IH for NBA & Prospect
AOM-1763 Extension of NBA Strategy FrameworkAOM-1722 Create Payment Method Eligibility Rules


807
Trade In Offer Catalog
https://drive.google.com/drive/folders/1bkuyV5_KGdjOpRRa_Os8_l4LBbpggmzT -
Payment Methods are Offers
Payment eligibility matrix will be implemented as Offer eligibility.
Context data will be used for eligibility rules.
List of payment methods   & price will be provided within context , only elgible payment methods (1 or N) will be available in output.
3 Channel Web,InboundCC & Retail
New Business Purpose/Squat
Default Variants for offer & treatments
Each Payment method will be mapped to a product code (Offer-OfferVariant mapping functionality) (Codes TBC)
Adding a new Business Purpose to SW
Update ImportAllOffers,ImportAllOfferToOfferVariations,ImportAllOfferVariations,
ImportAllTreatments,ImportAllTreatmentVariations,ImportAllTreatmentToTreatmentVariations to include new Business Purpose
Update IdentifyOfferVariantsForEligibleOffers,IdentifyTreatmentVariations to include new Business Purpose
New Strategy IdentifyEligibleTradeInOffers
Update IdentifyEligibleOffers to include IdentifyEligibleTradeInOffers
New Strategy- PopulateOutputPropertiesForGetNBA
This strategy should populate payment methods details to related response attributes.
Price > will be available in context (for each payment Method)
Product Code >Payment method product code is available in catalog data in Offer to Offer Variant data
Product Details> will use Product Reference / Product Catalog TBC
Offer & Treatment attributes also should be set for response
New Strategy -IdentifyTreatmentSubChannel
This strategy will filter related treatment according to “Sub Channel”
Sub channel  logic should run only if Execution mode is “GetNBA”
Join treatments with “TreatmentToSubChannel” DDS
Connect your Google account


808
Select related Sub channels, if Subchannel is set in context
If not select single random.
Strategy FW Update for IBCC Channel
IdentifyBestInboundCCTreatmentsForSubscription
 Extend Logic to select Sub channel. Substrategy call “IdentifyTreatmentSubChannel“ between IdentifyBestWebTreatments -
IdentifyTreatmentVariations
PopulateOutputPropertiesForIBCC
CaluclateDiscountsforAssistedUpgrade -will be executed only if Execution mode is “NBAA”
If ExecutionMode is “GetNBA”, “PopulateOutputPropertiesForGetNBA” strategy will be executed.
SetIHForInboundCC
Update strategy to set New IH attributes
Strategy FW Update for Web Channel

IdentifyBestWebTreatmentsForSubscription
 Extend Logic to select Sub channel. Substrategy call “IdentifyTreatmentSubChannel“ between IdentifyBestWebTreatments -
IdentifyTreatmentVariations
IdentifyBestWebTreatments
IdentifyBestHBBWebTreatment - will be executed only if Execution mode is “GRPL”
Else no logic - (As arbitration logic is not available for GetNBA yet)
PopulateOutputPropertiesForWeb
XXXXXX -will be executed only if Execution mode is “GRPL”
If ExecutionMode is “GetNBA”, “PopulateOutputPropertiesForGetNBA” strategy will be executed.
SetIHForWeb
Update strategy to set New IH attributes
Strategy FW Update for Retail Channel
New Top Level strategy will be introduced  IdentifyBestRetailTreatmentsForSubscription
Flow will be similar to IBCC & Web
Treatment strategies will be updated include  Retail channel
Handling No Offer Case :

IH Extention
Prospect
Agent User Name
Store ID
All data will be provide with context.


IH Extention
Prospect
Agent User Name
Store ID
All data will be provide with context.
It should be exposed to IH view as well for future requirement around Prospect-Customer matching process.


809
PM Tool Impact :
New Chanel -Retail
New Business Purpose
Sub Channel config for  InboundCC,Web,Retail


810
Create SetNBA API

Capture Response DF should be extended for SetNBA responses
SetNBA will be used by  many other channel with same input.
Appush  &  Email implementation will stay as is,  Set NBA  extension in the stategy should be according to Event information in the
context.
Interaction ID  will  be provided by service, IH mapping  will be done via Interaction ID
Outcome values does not need conversion.
No IH extention is needed.
 AOM-1998 Create SetNBA API


811
Release 1.12


812
Using Best Channel Model for Best Treatment Selection

A. Update the Offer Screen
Possible value - Channel Hierarchy , Best Channel Model
B. Update strategy - IdentifyBestTreatmentsForOffers
Check if PickBestTreatmentsMethod = Best Channel Model
1. If model data available for customer  select top X offer according to model propencity of channel
2. If not use channel hierarchy to select top X offer

Best Channel Model details :
MODEL
  {"EMAIL_PROPENSITY":"0.51813465","APP_PROPENSITY":"0.4987649","SMS_PROPENSITY":"","OBC_PROPENSITY":"","DM_PROP
ENSITY":"","MMS_PROPENSITY":""}

All channel propensities are included in model output
Offer Catalog Update
Offer based preferences (TBC)AOM-1869 Ingest Best channel model from BDC


813
Migrate T2S to NBA FW
1. Add Intent Logic to T2S Flow
1.1 Intent Configuration
New Intent ->Leave Mobile

Inent-Offer-Business Purpose Mapping
Leave Mobile will be assigned to Confidence Level  proposition filters → Defaulted to false.
1.2 Update EvaluateCustomerIntents Strategy (this change is same as IVR)
Introduce a new DDS called EventToInent Decision data  to store Event-SubEvent-NTID based Intent Mapping
T2S Execution-mode should validate only the intents mapped to T2S events, those intent will not be rule based. Leave-Mobile Leave MobileIntent Key Level1 Intent Level2 Intent
Leave-Mobile Null BP RetainIntent Key Confidence Score High Confidence Score Low
ProcessEvent LeaveRequest PAC null Leave-Mobile
ProcessEvent LeaveRequest STAC null Leave-Mobile
ProcessEvent Disconnections Mobile null Leave-Mobile  Execution Mode Event SubEvent Value Intent ConfidenceScore


814

Execution Mode = ProcessEvent , GetNBA,TIL ( for future usage) will run “IdentifyEventBasedIntents” sub strategy
Else (Batch) , will run “IdentifyRuleBasedIntents” sub strategy
1.3 IdentifyRuleBasedIntents-New Strategy(this change is same as IVR)
External Input enabled
Input is List of intents
Runs each confidence score proposition filter
Calculate Confidence Score
1.4 IdentifyEventBasedIntents- New Strategy(this change is same as IVR)
Import EventToInent DDS
Filter with Execution Mode,
Filter Event Name & Sub Event > if populated
If not filter Event=NTID
This will list  Intent(s) eligible for Event/SubEvent or NTID
Populate Confidence sore fro each intent from DDS

1.5 New DF - IdentifyCustomerIntentsRealTimeforT2S
Identify Intents for Customer in context


815
1.6 Update DF-ProcessEvent
Replace PrepareRealtimeDataForT2S with IdentifyCustomerIntentsRealTimeforT2S

2. Identify Offer Logic Changes
Current T2S flow has different steps to arbitrate among offers.Aim is to align them with NBA Batch  FW decisioning funnel, but still keep
some differences that caters for Squats.
2.1  UniversalInclusionRules Strategy
Rename it as GlobalInclusionsForProcessEvent > move to business artefact
2.2 UniversalExclusionRules Strategy
Rename it as GlobalExclutionForProcessEvent > move to business artefact
2.3  IdentifyEligibleRetainOffer Strategy
Update strategy to remove OfferToEventMaping control >Will be addressed to IntentOfferMappping startegy
Remove UniversalInclusionRules strategy from IdentifyEligibleRetainOffer
Replace UniversalExclusionRules with GlobalExcultionForProcessEvent
2.4  IdentifyEligibleOffers Strategy
Remove connection between Offers For ExecutionMode - ProcessEvent with Choose Offers By ExecutionMode switch
Connect Offers For ExecutionMode - ProcessEvent to  IdentifyOffersForEligibleIntents
Add Sub strategy call for GlobalInclusionsForProcessEvent
Connect IdentifyOffersForEligibleIntents to GlobalInclusionsForProcessEvent
Connect GlobalInclusionsForProcessEvent to Choose Offers By ExecutionMode switch wit condition
@equalsIgnoreCase(IdentifyExecutionMode.ExecutionMode,"ProcessEvent")
3. Adding Pick Best Channel Logic flow
Currently there is no requirement for T2S offer to select best channel. But to align with Fw, IdentifyBestTreatmentsForOffers sub strategy
call will be added to ProcessEventFlow.
T2S offer’s PickBestChannel Method will be configure as null, so the logic will skip
4. Adding Arbitration Logic to T2S flow


4. Adding Arbitration Logic to T2S flow
Currently there is no requirement for T2S treatments to select single top treatment for each channel. But to align with FW, we will include
this step to funnel.
Create a new Strategy called IdentifyBestTreatmentforSubscription
This Strategy will run
CalculatePriorityScoreForBatch > if Execution Mode is batch
CalculatePriorityScore > if Execution Mode is TIL
And do prioritisation for each channel
If not any of these Ececution modes, then will skip prioritisation (example ProcessEvent)


816

5. Identify Treatment Variant Logic Changes
Currently T2S logic has very specific logic to arbitrated between treatment variants. The logic uses  ADM or Champion challenger approach.
We will keep same logic, but put this logic in a funnel step that , it is more aligned with FW.
Save  as SelectTreatmentVariationByArbitration strategy to business ruleset with a name SelectBestRetainTreatmentVariation
 Withdrawn the old one
update  IdentifyRetainTreatmentVariations  make sub strategy call to SelectBestRetainTreatmentVariation
PickBestTreatmentVariant Logic will be part of variant selection flow, IdentifyTreatmentVariantions Logic  will handle it.
6. Control Groups
Currently T2S has control group control only for OBCC channel which is trigged extractor flow of T2S.


817
New Requirements are  :
Retire ApplyControlGroupsForT2S strategy, so FW uses single strategy:
Update ApplyControlGroups strategy to include Adaptive path for ExecutionMode=”ProcessEvent”
Make sure ExecutionMode use available in the input of ApplyControlGroupsForT2S
Update ApplyControlGroupsForT2S DF & map to ApplyControlGroups strategy.
With drawn ApplyControlGroupsForT2S strategy
Control group percentage will be at offer level
Make sure if Offer level control group percentage is overrides the Treatment control group config
Offer level Control group percentage available in output of ProcessEvent
Apply control group control  to  T2S SMS  channels .
update PopulateOutputPropertiesForT2S  for SMS
Make  sub strategy  call to  “ApplyControlGroupsByTrigger”
Update ProcessEvent,ProcessSMSForT2S DF cater for records in Control Group. Records in control group should be feed to IH but
should not trigger SMS campaign.

7. ProcessEvent Strategy Changes


818

8. Impact to NBA Batch Flow
While merging T2S flow to NBA flow, some strategies need to be updated  which has impact to NBA Batch Flow  as well.
Update  GlobalInclusionsForBatch to use R0001 & R0087
Replace IdentifyBestTreatmentForBatch with IdentifyBestTreatmentForSubscription & withdrawn IdentifyBestTreatmentForBatch


819
NBA FW - Best Treatment Variant
A. Offer Catalogue for Best Treatment Variant
https://drive.google.com/file/d/1eLyU_dhH3VZJIbh6s5m6yMveM67SBa88/view?usp=sharing -
B. Update decision data - TreatmentToTreatmentVariations
Update decision data structure to include new property Rank (OOTB)

Please note that this change will result in a PM tool change for the respective screen.

C. New strategy - IdentifyBestTreatmentVariantForTreatment
This strategy will be called after identifying all eligible treatment variations for each eligible treatments
B1. Enable External Input (expect all eligible treatment for each eligible treatments)
B2. Use Group By component to identify all eligible treatments
B3. Use Filter component to identify all  eligible treatments with single eligible eligible treatment variation and output to Results
B4. Use Filter component to identify all  eligible treatments with multiple eligible eligible treatment variations
B5. Use Embedded Strategy to loop through all treatments with with multiple eligible eligible treatment variations and within the embedded
strategy use a prioritize component to select top 1 treatment variant by Rank property (available in TreatmentToTreatmentVariations
decision data) among all eligible treatment variants for the Treatment in context
This sub-strategy will be executed for each Treatment individually.

 C. Update strategy - IdentifyTreatmentVariations
After executing all Squad specific IdentifyTreatmentVariations sub-strategy, call the sub-strategy
IdentifyBestTreatmentVariantForTreatment before the results component o return the best treatment variant among all Eligible Treatment
Variants for the Treatments from each squads.AOM-1719 Pick best Treatment Variant
Connect your Google account


821
IVR AOM Integration (GetNBA)
IVR channel will be integrating with AOM through GetNBA to get eligible offer &  routing options.
For Post NLCS if routing option is WebChat/Tobi/Online AOM will send and SMS as well.
 Single offer/routing option will be served to IVR.
Input from the channel will be  :
Pre-NLCS
CTN in context (service number)
Type of call (‘Pre-NLCS’)
Available routing channels – this will be a list of the available routes. For Pre-NLCS these will be one or more from (i) transfer to agent,
(ii) transfer to IVR self-serve, (iii) Capture intent (NLCS) (format TBC)

Post-NLCS
CTN in context (service number)
Type of call (‘Pre-NLCS’)
AppTag
Available routing channels – as per Pre-NLCS with the addition of (iv) Digital self-serve, (v) Tobi self-serve, (vi) Webchat self-serve and
(vii) Hard deflection (Format TBC)
Offer Catalog :
A new Business purpose will be created-Care
Care business purpose will contain NoCommercial offers for Pre/Post flows. Those offers will be presented to channel in case customer
not eligible to a commercial offer and AOM recommends a routine option according to rules.
AOM can make  commercial offer to IVR .For now only  applicable for PreNLCS flow.
When required for post NLCS as well, related commercial treatment should be mapped to related routing rule.
Commercial offer can be from any business purpose.
A new commercial offer is created to cover IVR requirements- (Upsell)
New intents for IVR


A new commercial offer is created to cover IVR requirements- (Upsell)
New intents for IVR
Cutdown version of catalog > https://drive.google.com/drive/folders/1SEWUC3C_6yeATjWglHF720VSeFLZ1NYS -

High Level Flow
Connect your Go
ogle account
IVR AOM-2053 Extension of NBA Strategy Framework for
IVR


822
Please note that the IdentifyBestRoutingOption will not be created in Release 1.12
1. New proposition data
Create new Issue - Care and following Groups -


823
Update the decision data structure as per existing decision data structure in other existing Issues.
Update IVR decision data structure as per Retail.

Add Group IVR to all existing Issues.

2. Update the following strategies to import relevant proposition data from Issue - Care
ImportAllOffers
ImportAllOfferVariations
ImportAllOfferToOfferVariations
ImportAppPushTreatments
ImportDirectMailTreatments
ImportEmailTreatments
ImportInboundCCTreatments
ImportOutboundCCTreatments
ImportSMSTreatments
ImportWebTreatments
ImportRetailTreatments
ImportAllTreatmentVariations


824
ImportAllTreatmentToTreatmentVariations
3. Create a new strategy - ImportIVRTreatments and import IVR proposition dat for all Issues
4. Update strategy - ImportAllTreatments
Add new sub-strategy - ImportIVRTreatments
5. Create the following Proposition filters as detailed in the table below -
6. Create strategy - IdentifyEligibleCareOffers
Enable External Input
Use Filter component to use Proposition Filter - CareOfferEligibility
7. Update strategy - IdentifyEligibleOffers
Call sub-strategy - IdentifyEligibleCareOffers for BusinessPurpose - Care Renew TreatmentVariations RenewTreatmentVariationsEligibility
Retention IVR RetentionIVRTreatmentEligibility
Care SMS CareSMSTreatmentEligibility
Service IVR ServiceIVRTreatmentEligibility
Care Retail CareRetailTreatmentEligibility
Care IVR CareIVRTreatmentEligibility
TradeIn IVR TradeInIVRTreatmentEligibility
Upsell IVR UpselllVRTreatmentEligibility
CrossSell IVR CrossSellIVRTreatmentEligibility
Care Offers CareOfferEligibility
Care OutboundCC CareOutboundCCTreatmentEligibility
Care AppPush CareAppPushTreatmentEligibility
Care TreatmentVariations CareTreatmentVariationsEligibility
Care OfferVariations CareOfferVariationsEligibility
Care Email CareEmailTreatmentEligibility
Care DirectMail CareDirectMailTreatmentEligibility
Care Web CareWebTreatmentEligibility
Care InboundCC CareInboundCCTreatmentEligibility
Retain IVR RetainIVRTreatmentEligibility
Renew IVR RenewIVRTreatmentEligibilityIssue Group Proposition Filter


825
8. Create strategy - ApplyCareOfferVariationsEligibility
This strategy is similar to other offer variations eligibility strategies but uses the respective Care related artefacts -
Care OfferVariations From strategy ImportAllOfferVariations
Care OfferToOfferVariations From strategy IImportAllOfferToOfferVariations
Proposition Filter - CareOfferVariationsEligibility

9. Update strategy - IdentifyOfferVariantsForEligibleOffers
Call sub-strategy - ApplyCareOfferVariationsEligibility for BusinessPurpose - Care
10. Update strategy - AllTreatmentsForEligibleOffers
Add IVR path
Add a new set component “Select IVR&SMS Treatments”
Connect IVR & SMS path to it
Connect set component to output


826
11. Create strategy - IdentifyEligibleTreatmentsforIVRandSMS
Make sub strategy call to
AllTreatmentsForEligibleOffer - Select IVR&SMS Treatments output
ApplyChannelElgibility
ApplyChannelContetion
ApplyTreatmentElgiblity
12. Create strategy - ApplyCareTreatmentEligibility
Call the relevant treatment proposition filters for each channel path -
SMS CareSMSTreatmentEligibility
Retail CareRetailTreatmentEligibility
IVR CareIVRTreatmentEligibility
OutboundCC CareOutboundCCTreatmentEligibility
AppPush CareAppPushTreatmentEligibility
Email CareEmailTreatmentEligibility
DirectMail CareDirectMailTreatmentEligibility
Web CareWebTreatmentEligibility
InboundCC CareInboundCCTreatmentEligibilityChannel Proposition Filter


827
13. Update strategy - ApplyTreatmentEligibility
Call sub-strategy - ApplyCareTreatmentEligibility for BusinessPurpose - Care

15. Create strategy - PopulateOutputPropertiesForIVRAndSMS
This is a dummy strategy

16. Create strategy - SetIHForIVRAndSMS
This is a dummy strategy

17. Create strategy - IdentifyBestIVRTreatmentsForSubscription
Make sub strategy call to
IdentifyEligibleTreatmentsforIVRandSMS
IdentifyBestTreatmentforSubscription
IdentifyTreatmentVariations
PopulateOutputPropertiesForIVRAndSMS
SetIHForIVRAndSMS


828

18. Update strategy - GetNBA
Call sub-strategy IdentifyBestIVRTreatmentsForSubscription for channel =IVR

19. PM tool Impact
New Channel - IVR - Sub channel single for now -191
New BP - Care


829
Assisted Upgrade - Integrate CRE
Use CRE output to validate Offer Variant Eligibility.
Use GPSL data for contract data validations
App Impact :
Provide CRE output data with subscription data
Logic Impact
2 New rules = From CRE
Update 4 Existing rules source from GPSL/Spines
Update Treatment /Offer Variant Eligibility
See details for offer catalog https://drive.google.com/drive/folders/171JlFC5zXvxNMBVZB5qSHzRnZsjgt4_B -

Rule Updates & New Rules
Use GPSL data for product holding data if no error & data is available.
if error or no data , use exiting logic.AOM- 1960 Integrate CRE logic for SIMOAOM-1959 Integrate CRE
Connect your Google
account
Update Subscription is SIMO if data available in GPSL
Use tariff code
populate duration from catalog data.
?? like “SIM”
if duration <>30 days customer
Else same logic in 1.10
Update Subscription is SIMO30 if data available in GPSL
Use tariff code
populate duration from catalog data.
?? like “SIM”
if duration =30 days customer
Else same logic in 1.10
Update Contract Start Date of Subscription is greater
than Connections Date of Subscriptionif data available in GPSL, Use GPSL data for
Contract start date
Else same logic in 1.10
Update Welcome Period if data available in GPSL,Use GPSL data for
Contract start date


830
 Else same logic in 1.10
New Subscription is Eligible for SIMO Deal CRE Type =”NORMALSIMOFLEX”
New Eligible for Recommendation from CRE CRE RetentionElgiblity.Indicator =True


831
Assisted Upgrade - Customer Cohorts

A. Create a new decision data in SR class - CustomerCohorts with the following structure
pyName - Unique ID of the Cohort
pyLabel - Chort Name
pyIssue - “NonPropositions”
pyGroup - “CustomerCohorts“
ChortActivenessStartDate-Datetime
ChortActivenessEndDate-Datetime
CustomerType - Text (Single) (PaymSIMO/PaymHandSet/PaymLoan)
TariffProductCode - Text (multiple)
AddOnProductCode - Text (multiple)
TariffDiscountFlag - Text
TariffDiscountProductCode - Text(multiple)
TotalDataBandID - Text (multiple)
Team - Text (Multiple)
FromContractStartdate - DateTime
ToContractStartdate - DateTime
FromContractEndDate - DateTime
ToContractEndDate - DateTime
CustomerLifeCycleID - Text (multiple)
Below is the example of the data and how to use them in logic - AOM-2146 Create Customer Cohorts
Field
definitionIdentify
the
customer
's current A list of
Tariffs t.
i.e. the
customer A list of
active
add ons .
i.e. the Is there
an active
discount
on List of
discount
identifier
s  i.e. the Data
band
ranges in
order to Agent's
team
(Omni/sa
ves/SupeA
contract
start data
range for A
contract
end date
data Customer
Life
Cycle:
configuraField Customer
TypeTariff  Pro
duct
Code(pro
duct
code
'Identifier
'Add On
Product


duct
Code(pro
duct
code
'Identifier
'Add On
Product
Code? Tariff
Discount
FlagTariff
Discount
 product
CodeTotal
Data
BandTeam From/To
Contract
Start
date From/To
Contract
End DateCustomer
Life
Cycle


832
contract
type i.e.
SIMO/Ha
ndset
(Bingo -
later). If
the
customer
belongs
to the
right
Customer
Type,
then the
CTN fulfil
the
variable
criteriamust be
on one of
the tariff
selected
within
this
variable
to fulfil
the
variable
criteriacustomer
must of
this add
on (or list
of add
ons if
more
than one)
active on
their
account
to fulfil
the
variable
criteriacustomer
's
subscript
ion?
Yes/No
Active
means
the
discount
has been
present
on the
last billcustomer
must
have one
of these
discount
to fulfil
the
variable
criteria
The
discount
must be
active or
must
have
been
active
within the
customer
's current
contract
term i.e.
we want
to be able
to
identify 6
month
half price
line
rental
which
may no
longer be
active on
the
customer
's
accounttarget
customer
s that
have a
total data
allowanc
e (plan
and add
on(s))
with in
these
ranges.
Please
see
above for
the
ranges.
These


ranges.
Please
see
above for
the
ranges.
These
ranges
must be
be
configura
bler Save). If
the
customer
calls the
specific
Team or
Teams,
then the
CTN fulfil
the
variable
criteriaexample
from 01
Novembe
r 2018 to
30
Novembe
r 2019. If
the
customer
's start
date
belongs
to this
date
range,
then
the  CTN
fulfil the
variable
criteriarange for
example
from the
15
Decembe
r 2018 to
the 31
Decembe
r 2018. If
the
customer
end dates
belongs
to the
this date
range
then the
CTN fulfil
the
variable
criteriable
groups
based on
the
today's
date and
the
contract
end date .
If the
customer
belong to
the group
or groups
then the
CTN
fulfils the
variable
criteria
Source Use
'Contract
Typ' in
the
product
Ref data As per As
IsAs per As
Is
ignoring
the Add
On PM
tool
setting
i.e. if the
add on is
added
here, you
use itgo to
Subscrib


add on is
added
here, you
use itgo to
Subscrib
er Invoice
Charge
table and
check if
in the last
invoice
for the
CTN has
a
discount
product. to
Identify
current
discount
code:
Use
GPSL,
and if the
product
code in
the
variable
list is Tariff
GPSL,
Tariff
Code, go
to tariff
prod ref
data in
prod cat
and look
at the
data
colunn from
Agent's
login
detailsGPSL
Agreeme
nt Start
Date
if GPSL
is down
then go
to
subcripti
on spine
table and
use the
Latest GPSL
Agreeme
nt End
Date
if GPSL
is down
then go
to
subcripti
on spine
table and
use the
Latest Using
today's
date and
the
contract
end date,
place the
customer
into to
life cycle
band


833
If 'Yes',
then set
the flag
to Yes, if
'No', set
the flag
to 'No'return on
the GPSL
call and
has a
status of
active
then the
CTN has
this
product
(if no
GPSL
use the
As Is
method
to
identify
the
discount
s using
the
product
holding
tables)
To
identify a
discount
that are
no longer
active on
the
product
holding
(for
example
6 month
1/2 price
rental).
Look for
expired
discount
s against
the
Product
Holding
table
where
they have
an
‘effective
end date’ (PC_Tarif
f_V)
Add On
GPSL, for
every
child
product,
check the
field
called '
service
inclusive
date' in
the
services
products
table in
the
product
catalogue
(PC_ACC
T_Servic
es_V)
Add the
Tariff and
the Add
on(s)Contract
start dateContract
end date


834
B. Create DDS for Range Definitions>  RangeMapping
RangeMapping, it will contain chord related ranges and ranges which already in ModelPropensityToRangeMapping.
Pm tool will change push method for ModelPropensityToRangeMapping and push it to RangeMapping.
Logic uses ModelPropensityToRangeMapping should be updated to map to RangeMapping.

 in the
past
Data
ExampleSIMO,
Handset,
Bingo ?112173 111028 Yes/No Active
MAF
Discount 0 to 3GB Omni 15-Nov-18Nov-20 In life (i.e.
>180 from
contract
end date)
Cohort
Name
SIM
100GB
Promo 24 MTH
40GB
SIMO Red
-
Identifier=
112173PROMO
60 GB
Data Add
On.
Identifier
=
111028   £5
Promotion
al
Discount.
Identifier
= 109899  Omni
GROW SIM   Yes or NO
SAVE SIM
RangeMap
pingNonProposi
tions TotalDataB
and0 to 3GB  null 0 3
RangeMap
pingNonProposi
tions TotalDataB
and>3GB to
6GB null 3 6
RangeMap
pingNonProposi
tions TotalDataB
and>6GB to
11GB null 6 11
RangeMap
pingNonProposi
tions TotalDataB
and>11GB to
24GB null 11 24
RangeMap
pingNonProposi
tions TotalDataB
and>24GB to


RangeMap
pingNonProposi
tions TotalDataB
and>24GB to
104GB null 24 104
RangeMap
pingNonProposi
tions TotalDataB
and>104GB  null 104 9999  pyGroup pyIssue pyName(U
nique ID)RangeTyp
e
(Text)RangeNam
e
(Text)RangeID
(Text)BDCModel
ID
(Decimal)StartValue
(integer)EndValue
(Integer)Old DDS


835
C. Create strategies to check if the customer is eligible for the cohort based on the relevant columns as per the table below - RangeMap
pingNonProposi
tions CustomerLi
feCyleBand
sWith in 30
days of
contractend
date null 0 30
RangeMap
pingNonProposi
tions CustomerLi
feCyleBand
s> 30 to 90
days from
contractend
date null 30 90
RangeMap
pingNonProposi
tions CustomerLi
feCyleBand
s> 90 to 180
days from
contractend
date null 90 180
RangeMap
pingNonProposi
tions CustomerLi
feCyleBand
sInlife  null 180 99999
RangeMap
pingNonProposi
tions CustomerLi
feCyleBand
sOutof
Conract null -99999 -1
RangeMap
pingNonProposi
tions ChurnScor
eMedium  7 33 64 ModelProp
ensityToRa
ngeMappin
g
RangeMap
pingNonProposi
tions ChurnScor
eLow  7 1 32 ModelProp
ensityToRa
ngeMappin
g
RangeMap
pingNonProposi
tions ChurnScor
eHigh  7 65 100 ModelProp
ensityToRa
ngeMappin
g
RangeMap
pingNonProposi
tions IntentConfi
denceScor
eHigh  999999 21 99 ModelProp
ensityToRa
ngeMappin
g
RangeMap
pingNonProposi
tions IntentConfi
denceScor


g
RangeMap
pingNonProposi
tions IntentConfi
denceScor
eLow  999999 0 20 ModelProp
ensityToRa
ngeMappin
g
EvaluateCohortByCustomerType CustomerType
EvaluateCohortByTariff TariffProductCodeStrategy Column from decision data


836
For each of the strategies above, follow the design patter as below -
i. Enable External Input
ii. Connect to Set Property component and set Eligible = false
iii.1. Connect to Filter Component - check if the column value is Empty
iii.2. Connect to Set Property component and set Eligible = true
iv.1. Connect to Filter Component - check if the column value is not Empty
iv.2. Evaluate cohort eligibility based on the relevant requirement (detailed in row - Field Definition in the table) and set Eligible to true/false
as relevant
v. Connect to Results
The diagram below details an example for the strategy EvaluateCohortByCustomerType -

C. Create Strategy - EvaluateCohorts
i. Create Decision data component - CustomerCohorts
ii. Connect to Filter component to check for “Enabled” cohorts
iii. Call the following sub-strategies - EvaluateCohortByAddOn AddOnProductCode
EvaluateCohortByActiveDiscount TariffDiscountFlag
EvaluateCohortByTariffDiscount TariffDiscountProductCode
EvaluateCohortByTotalDataBand TotalDataBand
EvaluateCohortByTeam Team
EvaluateCohortByContractDate From/To Contract Start/End Date
EvaluateCohortByCustomerLifeCycle CustomerLifeCycle
EvaluateCohortByTariff
EvaluateCohortByAddOn
EvaluateCohortByActiveDiscount
EvaluateCohortByTariffDiscount
EvaluateCohortByTotalDataBandEvaluateCohortByCustomerType


837
iv. Connect both path to Group By component and set the component as below -
v. Connect to Filter component to check for “Eligible” cohorts
v. Connect to Results
 EvaluateCohortByTeam
EvaluateCohortByContractDate
EvaluateCohortByCustomerLifeCycle


838
Assisted Upgrade - Commercial Recommendation To Cohorts
A. Create a new decision data in SR class - CommercialRecommendations with the following structure
pyName - Unique ID RecommendationID+ProductCode
pyLabel - Same as pyName
pyIssue - “NonPropositions”
pyGroup - “CommercialRecommendations“
CohortID-text
RecommendationID-text
ProductType - Text (Tariff,AddOn,Discount)
ProductCode - Text
Rank - Integer
RecomdendtionStartDate-date
RecomdendtionEndDate-date
RecommendedPosition-integer
Below is the example of the data and how to use them in logic -
B. Create strategy - IdentifyCommercialRecommendations
i. Decision Data - CommercialRecommendations > filter active one
ii. Sub-strategy - EvaluateCohorts
iii. Connect to Data Join component -
Match with Sub-strategy - EvaluateCohorts (only matching records) on ChordID +Team.
iv. Connect to results  (output will have multiple rows  for now, no issue as it init connected to main strategy. Output will be shaped when
Output requirements are finalzied)AOM-2148 Being able for a commercial recomendation to a cohort
Data Example 12 MTH 10GB SIMO 6 Month Half Price Line
Rental10 GB Data 1
Cohort Name
SIM 100GB Promo 24 MTH SIMO 40GB
ENT. Identifier = 112172  £5 promotional discount.
Identifier = 109899Add on: 60GB extra data.
Identifier = 111028
Add on: 50GB extra data.
Identifier = 1110291Field Recommended Tariff Recommended
Discount IdentifierRecommende Add
On(s) IdentifierRecommendation
Position


840
Oldest Subscription In Account Spine

A. Update Account class
Create new Page property - OldestSubscription of class - VFUK-FW-AOMFW-Data-Subscription in class VFUK-FW-AOMFW-Data-Account
B. Update Data Flows
 Update the following data flows to add a new compose in CustomerAccount with Subscription based on
CustomerID = AccountOldestSubscriptionId
B1. PrepareBatchData

B2. PrepareRealtimeData
B3. PrepareRealtimeDataForT2S
C. Rule Update
Update the following rules in GlobalRules1 strategy -
C1. GBL001 AccountLeadOrAccountOwnerOnly (Please confirm with Matt)
replace Primary.SubscriptionFlexAttribute.CustomStringField003 with
Primary.CustomerAccount.OldestSubscription.ServiceNumber
C2. GBL031 Account holder is marketable by Phone (Please confirm with Matt)
replace Primary.SubscriptionFlexAttribute.CustomStringField004 with AOM-1553 Update Data Flow and SFW to incorporate Oldest Subscription


841
Primary.CustomerAccount.OldestSubscription.OBCMarketingConsentFlag
D. OutboundCC Output property update
Update the following strategies to replace Primary.SubscriptionFlexAttribute.CustomStringField003 with
Primary.CustomerAccount.OldestSubscription.ServiceNumber in respective set property components
PopulateOutputPropertiesForBatch

PopulateOutputPropertiesForT2S
PopulateOutputPropertiesForTriggerOldValue .ContactDetail =
Primary.SubscriptionFlexAttribute.CustomStringField003
NewValue .ContactDetail =
Primary.CustomerAccount.OldestSubscription.ServiceNumberComponentId SetContactDetailsForAppPush
OldValue .ContactDetail =
Primary.SubscriptionFlexAttribute.CustomStringField003
NewValue .ContactDetail =
Primary.CustomerAccount.OldestSubscription.ServiceNumberComponentId Component - SetContactDetailsForOBC
OldValue .ContactDetail=Primary.SubscriptionFlexAttribute.CustomStringField
003
NewValue .ContactDetail =
Primary.CustomerAccount.OldestSubscription.ServiceNumber
OldValue .ContactPhoneNumber2
=@if(@String.equals(EventData.EventType,"Disconnections") &&
@String.equalsIgnoreCase(Primary.SubscriptionFlexAttribute.Custo
mStringField004,"Y") &&
@String.startsWith(Primary.SubscriptionFlexAttribute.CustomStringF
ield003,"44"),"0"+@String.substring(Primary.SubscriptionFlexAttribut
e.CustomStringField003,2,13),"")
NewValue .ContactPhoneNumber2
=@if(@String.equals(EventData.EventType,"Disconnections") &&
@String.equalsIgnoreCase(Primary.CustomerAccount.OldestSubscri
ption.OBCMarketingConsentFlag,"Y") &&
@String.startsWith(Primary.CustomerAccount.OldestSubscription.Se
rviceNumber,"44"),"0"+@String.substring(Primary.CustomerAccount.
OldestSubscription.ServiceNumber,2,13),"")ComponentId Component -  SetChannelOutputProperties


OldestSubscription.ServiceNumber,2,13),"")ComponentId Component -  SetChannelOutputProperties
ComponentId Component - SetCommonOutputProperties


842
SetIHProperties
Please note that the above change updates all part of solution which generates OutboundCC extract and hence a complete
regression of OutboundCC extract is required.OldValue .ContactDetail =
@if(.Channel="SMS",Primary.ServiceNumber,Primary.SubscriptionFl
exAttribute.CustomStringField003)
NewValue .ContactDetail = @if(.Channel = "SMS", Primary.ServiceNumber,
Primary.CustomerAccount.OldestSubscription.ServiceNumber)
OldValue ContactDetail =
@if(.Channel="SMS",@if(Primary.SubscriptionType="Mobile
Service",Primary.ServiceNumber,Primary.SubscriptionFlexAttribute.C
ustomStringField003),@if(.Channel="OutboundCC",Primary.Subscri
ptionFlexAttribute.CustomStringField003,""))
NewValue ContactDetail=@if(.Channel="SMS",@if(Primary.SubscriptionType="
Mobile
Service",Primary.ServiceNumber,Primary.CustomerAccount.OldestS
ubscription.ServiceNumber),@if(.Channel="OutboundCC",Primary.C
ustomerAccount.OldestSubscription.ServiceNumber,""))ComponentId Component - SetIH


843
Simulation MVP Solution
 AOM-XXX Simulation - MVP Setup with Pega OOTB Simulation
AOM-XXX Fix for Proposition Filter Simulation (Pega Fix)AOM-1878 View simulation results / reports


844
HLW Flow


846

Please see attached file for requirement coverage in HL =

Funnel Step- Strategy Mapping

Logic Impact
1. New DF-CreatePropositionHierarchy
New DB table will be created to push whole proposition hierarchy. AOMPropositionHieachy
This data will be used in report design to populate name of proposition in upper hierarchy . (example for treatment level data will used
this data to populate offer name)
2. Update Strategy-ApplyOfferToOfferVariationsDataToOfferVariations
Require strategy change to populate OfferToOfferVariantData as pyName.
3. Update Strategy- ?
Change IdentifyTreatmentVariations strategy  , create a sub strategy approach to be able to populate TreatmentToTreatmentVariaatons.
So Explain details has teatmentvariand detail as well for reporting.
Batch NBA_Si …
30 Sep 2020, 08:05 AMon.pptx
Offer Match To Intent IdentifyOffersForEligibleIntents (strategy
result)
Offer Eligible Offer IdentifyEligibleOffers(strategy result)
OffertoOfferVariant Eligible Offer Variant IdentifyOfferVariantsForEligibleOffers(strateg
y result)
Offer-Treatment Eligible Treatment IdentifyEligibleOBTreatments(strategy result)
Offer-Treatment Arbitration TBCStrategyOutput -Proposition Level Funnnel Step Strategy


847
App Impact
1. New  Case - PrepareDataFroSimulation
a. Truncate Datasets
i. AOMPropositionHieachy
ii. SubscriptionDataForBatchNBA
b. Call DF -PrepareDataForBatchNBA
c. Call DF-IdentifyCustomerIntents
d. Call DF-CreatePropositionHierarchy


848
Assisted upgrade -Division to Team mapping
Assisted upgrade test harness will change input parameter from Team to Division
 Logic will consume division from context and map to team with  D i v i s i t o n T o T e a m DDS
 AOM-2100 PM Tool being able to map teams to division


849
Assisted Upgrade- Add new Upsell Discount options
Update AssistedUpgradeUpsellDiscountConfig DDS structure as in below.

Update CalculateUpsellDiscount strategy
Apply formula for each discount percentage configuration
Select the minimum satisfies Calculation Formula Result >= Discount Amount.AOM-1977 Discounts Maintenance in PM Tool - Enhancements
Omni Upsell Discount Percentage 1 10 3
Save Upsell Discount Percentage 1 10 3
Super Save Upsell Discount Percentage 1 10 3
Omni Upsell Discount Percentage 2 15 5
Save Upsell Discount Percentage 2 15 5
Super Save Upsell Discount Percentage 2 15 5
Omni Upsell Discount Percentage 3 20 10
Save Upsell Discount Percentage 3 20 10
Super Save Upsell Discount Percentage 3 20 10Team DiscountPercentageID Upsell Discount Percentage Upsell Discount Amount


850
Release 1.13


851
Data Depletion Migration to NBA
1.Add Intent Logic To Triggers flow:
1.New DF combine data preparation & Intent calculation IdentifyCustomerIntentsRealTime
     Create a Data flow  IdentifyCustomerIntentsRealTime (New)
     Call PrepareRealTimeData data flow.(Existing)
     Call Strategy EvaluateCustomerIntents(Existing) and populate the Output of the strategy into CustomerIntentList (Existing page list) .
      Leave the destination as abstract
2. Update IdentifyBestTreatmentsByTriggers data flow.
  Replace the PrepareRealTimeData with new Df IdentifyCustomerIntentsRealTime.
     **Event Intent mapping for Data depletion.
IdentifyEventBasedIntents - will change to cater for it (will be part of IVR development)
2. Identify Offer Logic Changes
 IdentifyEligibleOffers- update for TIL, make call to IdentifyOffersForEligibleIntents
    Make a call to IdentifyOffersForEligibleIntents(Existing) Strategy in the TIL path
    Name the component -  IdentifyOffersForEligibleIntents(TIL)
     Update the Switch Component to choose  IdentifyOffersForEligibleIntents(TIL) Component for the condition.-
@equalsIgnoreCase(IdentifyExecutionMode.ExecutionMode,"TIL")
All TIL BundleEvent [NTID] TBCChannel ExecutionMode PrimaryContext SecondaryContext Intent


852

3. Adding Pick Best Channel Logic flow
Currently there is no requirement for Triggers  to select best channel. But to align with Fw, IdentifyBestTreatmentsForOffers sub strategy
call will be added to the flow.
Triggers offer’s Pick Best Channel Method will be configure as null, so the logic will skip.
1. Update IdentifyBestTreatmentsByTriggers to Include Pick Best Treatment logic.
    Add call to IdentifyBestTreatmentsForOffers(Existing ) strategy after IdentifyEligibleTreatmentsByTriggers strategy.
4. Adding Arbitration Logic
To align the Arbitration logic with NBA, we will use same formula as batch.We need offer catalogue for values to configure.
1.) Update  IdentifyBestTreatmentforSubscription to use same formula with Batch
 Update IdentifyBestTreatmentsByTriggers to Replace Identify BestTreatment strategy with IdentifyBestTreatmentforSubscription.
Withdrawn IdentifyBestTreatment strategy.
Remove TIL Mode Filter and CalculatePriorityscore Strategy from IdentifyBestTreatmentforSubscription
withdrwan CalculatePriorityscore strategy.
Update Batch Mode Filter with the  condition.-->Execution Mode=Batch or Execution Mode=”TIL” and rename the filter accordingly.
Rename the strategy  CalculatePriorityScoreForBatch to CalculatePriority.
Withdrawn CalculatePriorityScoreForBatch Strategy.

2) Update CalculatePriority strategy to set the propensity For TariffRecommendation Offer- ,Others will be configured as starting propensity
at offer level.
  Update the “Treatments With ModelBasedPriority” filter to Include OfferName=”TariffMigration”.
  Update SetModelBasedPriority strategy to add new path for OfferName=”TariffMigration” and set  the propensity using Model
propensity score (Implement as per the Catalogue)
For other Offers,  get the propensity from the offer level.(Implement as per the catalogue)


854
IVR-GetNBA
Overview
1. Add Intent  Logic to GetNBA  Flow
1.1 Intent Configuration
1.2 Update DDS -EventT oInent
1.3 Update Strategy- EvaluateCustomerIntents
1.4 Update Strategy-IdentifyEventBasedIntents
1.5 New Strategy -GetContextDataforIntent
2. Update Strategy -IdentifyBestIVR Treatments
2.1 HL  Flow
2.2 Update Strategy- IdentifyEligibleOf fers
2.3 Update Strategy - IdentifyBestT reatmentforSubscription
2.4 Update Strategy - IdentifyT reatmentSubChannel
2.5 Update Strategy - Squad based IdentifyXXXXT reatmentV ariations
2.5 New Strategy -ApplyAdditionalT reatmentV ariationV alidations
2.6 Update Strategy-IdentifyT reatmentV ariations
2.8 Update Strategy-PopulateOutputPropertiesforIVRandSMS
2.11 New Strategy -SetIHPropertiesforIVR
4. New Strategy - GetNBA WithIntent
5. New DF - IdentifyCustomerIntentsRealtime
6.Update DF- GetNBA
7. Update DF- PrepareRealtimeData
8. PM Tool Impact
9. Out of Scope Requirements  (1.13)
Overview
IVR channel will be integrating with AOM through GetNBA to get eligible offer &  routing options.
For Post NLCS if routing option is WebChat/Tobi/Online AOM will send and SMS as well.
Single offer/routing option will be served to IVR.
Input from the channel will be  :
Pre-NLCS
CTN in context (service number)
Type of call (‘Pre-NLCS’)


CTN in context (service number)
Type of call (‘Pre-NLCS’)
Inactive routing channels – this will be a list of the available routes. For Pre-NLCS these will be one or more from (i) transfer to agent, (ii)
transfer to IVR self-serve, (iii) Capture intent (NLCS) (format TBC)

Post-NLCS
CTN in context (service number)
Type of call (‘Post-NLCS’)
AppTag
Inactive routing channels – as per Pre-NLCS with the addition of (iv) Digital self-serve, (v) Tobi self-serve, (vi) Webchat self-serve and
(vii) Hard deflection (Format TBC)


855
Offer Catalog :
Related routing rules is be mapped to AOM Intent/Offer/Treatment/Treatment Variants
Pre/Post NLCS are sub channel for AOM
AOM will create an Intent for each Apptag in post NLCS, evaluate the intent with context data
For PreNLCS rule based intent flow will be executed.
Reference Documents:
1. Add Intent  Logic to GetNBA Flow
1.1 Intent Configuration
List of Intents AOM-2081 Create Interaction (IH) for every
recommendation 2.11,4
AOM-2075 Pre-NLCS Logic  2+Offer Catalog
AOM-2076 Post-NLCS Logic  2+Offer Catalog
AOM-2077 IVR Arbitration & Prioritisation  2.3
AOM-2398 Update Intent Logic for Event To Intent
Mapping approach 1,4,5,6
AOM-2400 Extent IVR Decisioning Funnel  2
AOM-2054 Extension of NBA Strategy Framework
Use CIS 2.5,7AOM-2061 Extend IH to support  2.11 , 4
GetNBARespon …
26 Oct 2020, 10:22 AMer.json GetNBAReques …
26 Oct 2020, 10:22 AMCS.json GetNBARespon …
26 Oct 2020, 10:22 AMon.json
 GetNBA  - I
26 Oct 2020, 10:22 AMVR.xlsx
Existing Leave-Mobile Leave Mobile
Existing Unkown-Inlife Unkown Inlife
Existing Unkown-Retention Unkown Retention
Existing Unkown-Wellcome Unkown Welcome
New Manage-Plan Manage Plan
New Buy-International Buy International


New Manage-Plan Manage Plan
New Buy-International Buy International
New Help-Broadband Help Broadband
New Help-ChangeAddress Help ChangeAddress Intent Key Level1 Intent Level2 Intent


856

Inent-Offer-Business Purpose Mapping :
Rule based intents (used for PreNLCS) will be mapped to BPs
Event Based Intent (used for PostNLCS) will be mapped to Offers
Event based intents will be assigned to Confidence Level proposition filters → Defaulted to false. So they will not be execute by batch
for now.
1.2 Update DDS -EventToInent
Update  EventToInent Decision data structureNew Help-MobileCoverage Help MobileCoverage
New Setup-BroadBand Setup BroadBand
New Help-SIM Help SIM
New Help-Discount Help Discount
New Manage-Bars Manage Bars
New Help-DirectDebit Help DirectDebit
New Help-Mobile Help Mobile
New Help-MyAccount Help MyAccount
Leave-Mobile Null BP Retain+ Service
Manage-Plan Null BP Service + Upsell
Buy-Intetnational Null BP Upsell
Unkown-Welcome Null BP Service
Unkown-InLife Null BP Service
Unkown-Retention Null BP Service
Help-BroadBand HelpBroadband Null
Help-ChangeAddress ChangeAddress Null
Help-MobileCoverage RequestInformation Null
Setup-BroadBand SetupBroadband Null
Help-SIM SIM Null
Help-Discount Discount Null
Manage-Bars RemoveContentBar Null
Help-DirectDebit DirectDebit Null
Help-Mobile SetupMobile Null
Help-MyAccount MyAccount NullIntent Key Confidence Score High Confidence Score Low


857
 Data for IVR  will as in below

1.3 Update Strategy- EvaluateCustomerIntents
If any event base Intent is identified it should be selected
else Rule based intent should be executedIVR GetNBA problem-wifi  Help-BroadBand
IVR GetNBA change-address  Help-
ChangeAddress
IVR GetNBA fb-coverage  Help-
MobileCoverage
IVR GetNBA setup-internet  Setup-BroadBand
IVR GetNBA request-sim  Help-SIM
IVR GetNBA enquire-discount  Help-Discount
IVR GetNBA cancel-content-
control Manage-Bars
IVR GetNBA enquire-direct_debit Help-DirectDebit
IVR GetNBA setup-phone  Help-Mobile
IVR GetNBA problem-account-
access Help-MyAccount  Channel ExecutionMode PrimaryContext
IVR > Apptag
(PrimaryContext
from request )
T2S > Event
Data Depletion >
NTIDSecondaryContext
T2S> SubEventIntent ConfidenceScore


858

1.4 Update Strategy-IdentifyEventBasedIntents
Strategy should validate context data with EventToIntentMapping and identify eligible Intent.
The context attributes to populate Primary context & Secondary context data is different for each execution mode.
GetContextDataforIntent will cater for it.
Except for Channel filter each filter would be exact value check. Bur for channel if Channel is set as All in DDS, this condition will not be
executed.
If the Primary context provided in context but not configured in EventToIntent DDS subscription should not be assigned to a intent
pyNameShould be set to “NotConfiguredPrimaryContext”

1.5 New Strategy -GetContextDataforIntent
Populate Primary context & Secondary context attributes according from different context parameters according to Execution mode.


859
2. Update Strategy -IdentifyBestIVRTreatments
2.1 HL Flow

2.2 Update Strategy- IdentifyEligibleOffers
 Include logic to identify offers for Intent  :
For Execution Mode = GetNBA & Channel =IVR > make sub strategy call to IdentifyOffersForEligibleIntents
2.3 Update Strategy - IdentifyBestTreatmentforSubscription
Add IVR Channel, will use common arbitration formula (same as batch).
Add Execution mode=GetNBA & Channel =IVR  filter and connect to CalculatePriority
Add IVR channel filter after it .
2.4 Update Strategy - IdentifyTreatmentSubChannel
Update strategy name IdentifyTreatmentSubChannelForTradeIn to IdentifyTreatmentSubChannelForGetNBA


860
2.5 Update Strategy - Squad based IdentifyXXXXTreatmentVariations
IdentifyTradeInTreatmentVariations,IdentifyUpsellTreatmentVariations,IdentifyRetentionTreatmentVariations,IdentifyServiceTreatmentVariati
ons,IdentifyRetainTreatmentVariations,IdentifyRenewTreatmentVariations,IdentifyCrossSellTreatmentVariations,IdentifyCareTreatmentVaria
tions

Add Proposition filter for each squad “XXXXXTreatmentToTreatmentVariationEligibility”, map to Squad’s TreatmentToTreatmentVariation
proposition data
Default configuration will be true for proposition eligibility
Configure the eligibility rules provided in Offer catalog
Update squad based IdentifyXXXXTreatmentVariations  strategy to include related proposition filters.
2.5 New Strategy -ApplyAdditionalTreatmentVariationValidations
Routing to Tobi/Webchat/Online eligibility conditions has a pattern.
Proposition filter  approach requires creating different rules for each. (as we cannot pass parameter to rule)
Instead, it is decide to implement this control as standalone strategy
Logic
Will run only for specific treatment variants (routing options)
Select  single eligible treatment variant randomly.
If subscription get eligible for  Tobi/Webchat/Online variants one of those variant will be selected from
“IdentifyBestTreatmentVariantForTreatment” as Tobi/Webchat/Online will have higher “Rank” than Agent.
Rules:
Web Page Visit Rule Customer visited the  URLs  for
Apptag in last 24 hoursTealium Data 1. Import  EventTo
Intent where Intent =
Customer Intent
2. Import Customer
Tealium Data.
3. Join Tealium data
with list of urls identified
step 1.
4. For matching
Records Check if
LastAccessTimeStamp
is in last 24 hours.


Records Check if
LastAccessTimeStamp
is in last 24 hours.

Deflected with same AOM Intent Customer deflected with
same  "AOM Intent " in last 24 hoursIH Outcome=Selected
Intent=Intent
OutcomeTime with in 24
hours
Deflected with same AppTag Intent Customer deflected with AppTag
Intent in last 24 hoursIH Outcome=Selected
Event=ApptagIntentRule Pattern Data Source Condition


861

2.6 Update Strategy-IdentifyTreatmentVariations
Add a sub strategy call to ApplyAdditionalTreatmentVariationValidations before IdentifyBestTreatmentVariantForTreatment

2.8 Update Strategy-PopulateOutputPropertiesforIVRandSMS
Update Strategy to cover IVR & SMS cases.OutcomeTime with in 24
hours
Tobi-Soft !Web Page Visit Rule
and
!Deflected with same AOM Intent
and
!Deflected with same AppTag IntentWebChat-Soft
Online-Soft
WebChat-Hard
Online-HardTreatmentVariation


862

2.11 New Strategy -SetIHPropertiesforIVR

Attributes to extend IH Fact :

 Attributes to Set In logic, specific to IVR
ChannelConnectionID > From Request Context >Details> ConnectionId
IVRRoutingRecommendation > set for null (will come with 1.14)
ChannelContentID > TeatmentToTreatmentVariation. DynamicParameter3
TargetSubChannel > PreNLCS/PostNLCS treatment Sub channel
EventType >  AppTag information TeatmentToTreatmentVariaiton. DynamicParameter2

All other standard attributes should be set as well.

Attributes To Add IH Reporting Table  (already added)
IVRRoutingRecommendation Routing Recommendation IVR
code
Example :  Agent , NLCS
 Text Varchar 250
ChannelContentID Message ID for IVR
Example : 1234343Text Varchar 250ChannelConnectionID IVR Connection ID
Example : ABC_398378474Text Varchar 250
IVRCallReason IVR call reason Text Varchar 250


863
  Attributes to Set In logic
Expect for IVRCallReason attribute, create a  sub strategy SetGenericIHReportingAttributes and set them. an make call from
SetIHPropertiesforIVR. This startegy can be used in future for other process ,
4. New Strategy - GetNBAWithIntent

5. New DF - IdentifyCustomerIntentsRealtime
Similar DF with IdentifyCustomerIntentsRealTimeforT2S, but uses PrepareRealtimeDataFor as input.Example : Change address - no
recent visit or deflection - does
not have HBB
pxInetractionID Text same as pxInteractionID in IH
fact334343434343
pySubjectID Text Subscription ID
pxOutcomeTime Datetime same as IH
createts Datetime same as IH
caseid Text same as IH
IVRCallReason  TeatmentToTreatmentVariaiton.
DynamicParameter4 hrid Text(Unique) Generated by OOTB Pega
function in logic. Will be
generated for each offer.121223232323


864
6.Update DF- GetNBA


865

7. Update DF- PrepareRealtimeData
Compose TealiumAggregate data to use in eligibilities.
8. PM Tool Impact

9. Out of Scope Requirements  (1.13)
Routing Option Activeness ControlIVR will provide in-active routing options, AOM should
filter them before sending to channelWill be done with Action implementation.(as
recommended routing option is part of
Action data)
Offer Self Contention we need to add a new funnel step. Will be separate Jira will be integrated to
IVR later
BDC model for Post NLCS Default
Routing Will be conditioned later
Post NLCS TOBI/WebChat/Online
Routing According to BDC modelIt is required to check BDC model to see if customer
has prediction for this routing (for related appptag)Will be conditioned later.
BDC model or Adaptive model usage are
alternativesActions Actions will be assigned to
TreatmentToTreatmentVariations.Action will have
DeflectionType& Recommended Routing option  IVR
Code  in it.Will be integrated to IVR flow after US
XXXX are conditioned


866

 Privacy Consent Control Requirement For PreNLC > Redirect them to NLC
Addressed to RequestInformaion Offer, offer has no
condition.
Upsell offers has privacy control
Requirement For PostNLC > Redirect them according
to model
Use of BDC model. Post NLCS flow will be conditioned later
Channel & Subchannel Switch off
on AOMRequirement beign able to swithc off /on IVR channel
and Pre/PostNLCS sub channel on AOM
Currently we do not check channel/subchannel
activeness, we have offer/treatment activenessWill be conditioned later.
Repeated Intent Redirect to customer to Agent with Recent Apptag
intent in PreNLCSWill be conditioned later.
PAC data/Future disconnect data  waiting for EventStore design
Send SMS  Postponed to 1.14
SMS Token replacement  Postponed to 1.14
PostNLCS 2 message ID  Postponed to 1.14


867
Assisted Upgrade-Segment Strategy Identification
This logic will identify subscription’s segment strategy according to different parameters.
This logic will not be integrated to main logic yet.
In future releases Segment Strategy output will be an input to tariff/discount  Identification.
1. New Strategy -IdentifySegmentStrategyforSubscription
 AOM-2310 Logic Recommendation :PAC/SAC Trigger
AOM-2311 Logic Recommendation : ChurnBands
AOM-2312 Logic Recommendation : Segment StrategiesAOM-2309 Logic Recommendation :Understand the team of customer
transaction


868
2. New Strategy -EvaluateTriggersforSegmentStrategy
New DDS EventToSegmentStrategy

This strategy is to evaluate if configured  event is available for the subscription and Set the SegmentStrategy  according to.
For Event validation ,Data source will be EventStore DDS. (EventStore approach in in progress)
3.Configure  RangeMapping DDS
Configure RangeMapping DDS as in below. With a new Range Type.
PM tool will not have a screen but will push this data to DDS as static data.

4. New Strategy -CalculateChurnScoreBand
Similar strategy CalculateChurnScoreRange PAC All 30 SaveEven Type SubEvent Type Duration SegmentStrategy
RangeMappi
ngNonPropositi
ons ChurnBand 1  1 9 0 0.009
9
RangeMappi
ngNonPropositi
ons ChurnBand 2  2 9 0.01 0.019
9
RangeMappi
ngNonPropositi
ons ChurnBand 3  3 9 0.02 0.029
9
RangeMappi
ngNonPropositi
ons ChurnBand 4  4 9 0.03 0.039
9
RangeMappi
ngNonPropositi
ons ChurnBand 5  5 9 0.04 0.049
9
RangeMappi
ngNonPropositi
ons ChurnBand 6  6 9 0.05 0.059
9
RangeMappi
ngNonPropositi
ons ChurnBand 7  7 9 0.06 0.069
9
RangeMappi
ngNonPropositi


9
RangeMappi
ngNonPropositi
ons ChurnBand 8  8 9 0.07 0.079
9
RangeMappi
ngNonPropositi
ons ChurnBand 9  9 9 0.08 0.089
9
RangeMappi
ngNonPropositi
ons ChurnBand 10  10 9 0.09 0.1pyGroup pyIssue pyName(Un
ique ID)RangeType RangeName RangeID BDCModelI
DStartValue EndV
alue


869
Model ID = 9
Propencity Attribute =P_Churn
RangeMapping filter condition  Model ID =9 & Range Type = ChurnBand
Output of the strategy should be ChurnModelRangeID=RangeID
If score not available from model  map toe the lowest band .
if we do not have any model output for customer, we need to set it to Default to a BAND 1(i.e. unlikely to churn)
5. New Strategy - EvaluateBDCModelForSegmentStrategy.
New DDS BDCModelToSegmentStrategy (whole list is available in Jira)

This strategy will evaluate model input with DDS select the related SegmentStrategy as output.
Chanel & Team data will be provided from context.

6. Update DF -PrepareRealtimeData
Update DF to include EventStore Data (EventStore approach in in progress)
7. PM Tool Impact
For Churn Ranges, PM tool will push the state data to RangeMapping.

 1 InboundCC Omni GrowChurnModelRangeID Channel Team SegmentStrategy


870
Handling Email Bundles in AOM Volume Constraints Process
A O M - 2 2 8 0
Currently AOM Volume Constraints process does not handle Email Bundles as it applies volume limits to Parent Emails and Child Emails
independently of each other. This results in “incorrect” bundling in the Pega Marketing Strategy further down the process.

The solve the issue above, the “Child” email treatments will be excluded from the AOM Volume Constraints process and will be passed
though the BestOBTreatmentsBeforeControlGroups data set while the “Parent” email treatments will continue with the AOM Volume
Constraints process if a volume limit is set for the “Parent” email treatment.
The relevant “Child” email treatments will be accessed by the Pega Marketing Campaign and the Pega Marketing Strategy for Email will find
the relevant “Child” email treatments  for the “Parent” email treatment and will be able to create “correct” email bundle.
The sub-strategy - IdentifyBestEmailTreatmentForBatch (called from strategy IdentifyBestTreatmentforSubscription) identifies and tags
Email treatments as Parent or Child by setting ParentChild property which will be used to identify the Parent/Child email treatments.
This will require no change in App/PM side. All the changes below are relevant for the Logic team.

A. Update strategy - PopulateVolumeConstraints (used in Data Flow - PopulateTreatmentsForOB)
Update strategy for not to return the treatment records if Channel = Email and ParentChild = Child
This change will ensure that the Child Email treatments are not written to TreatmentsForOB data set

B. Update strategy - PopulateVolumeLimits (used in Data Flow - PopulateVolumeLimitForTreatments)
Update strategy to set IsValid = false for the treatment records if Channel = Email and ParentChild = Child


Update strategy to set IsValid = false for the treatment records if Channel = Email and ParentChild = Child
This change will ensure that the Child Email treatments are
not written to BestOBTreatmentsAfterDedupe & TreatmentsAfterDedupe data set
written to BestOBTreatmentsBeforeControlGroups


871
Pick Best Treatment For Offer By Treatment Rank
A. Update all treatments decision data to add following 1 property
Rank - Integer - positive integer (optional)

B. Update Treatment screen in PM tool to add new field - Rank  - Integer - positive integer (optoinal)

C. Add new value for PickBestTreatmentsMethod in Offer screen in PM tool
Value - TreatmentRank

D. New strategy - PickBestTreatmentForOfferByTreatmentRank
1. Enable External Input
2. Use Prioritize component - rank the treatments by by “Rank” ascending
3. Use Filter component to select the number of treatments as specified by MaxBestTreatments
4. return the treatments

E. Update strategy - IdentifyBestTreatmentsForOffers
Within the embedded strategy -
1. Use new filter to check if PickBestTreatmentsMethod = TreatmentRank and if yes, call sub-strategy
PickBestTreatmentForOfferByTreatmentRank
2. Update filter component - Invalid PickBest Method - to include check for  TreatmentRank

F. Use UpgradeMobile_BatchTest1 & UpgradeMobile_BatchTest2 to setup and test test this functionality


872
Device Reference Data

1. Create a new Data Set – Device (Class - VFUK-FW-AOMFW-Data-Device)
2. New property Device  (Page) needed in (VFUK-FW-AOMFW-Data-Subscription) of type (VFUK-FW-AOMFW-Data-Device)
3. Update following dataflows with Device data
PrepareBatchData
PrepareRealtimeData
PrepareRealtimeDataForProcessEvent
Compose Subscription data set with Device Data Set into Device property
When LastSeenTACCode (VFUK-FW-AOMFW-Data-Subscription) = TACCode (VFUK-FW-AOMFW-Data-Device)
 A O M - 2 2 7 3 Expose Device Reference Data to the Logic


873
Update Tealium Integration

1. PageName  property required Data Set TealiumAggregatedEvent ? – App Team ?
2. Update Event Strategy AggregateTealiumEvents
Window Configurations :
Remove below properties
page_section
page_subsection
page_sub_subsection
Join Configurations :
Remove below properties
page_section
page_subsection
page_sub_subsection
   3. Update Data Flow ProcessTealiumEvents
Remove mapping for below properties in AggregateTealiumEvents
page_section
page_subsection
page_sub_subsection
 A O M - 2 2 8 8 Update Tealium Integration to support IVR and Outcomes of POC


874
Release 1.14


875
Intent Logic Change for IVR & Assisted Upgrade

HL Requirements
Existing Intent logic uses two different approach to evaluate the  Intent
RT event
Rules
Extent Intent logic to cater for
Recent Events
Recent Page visitis
Recent Interactions
BDC Model propencity.
If there is a RT event coming from context, first it will be validated
If  customer  assigned to an intent it will take the priority, other  validation will not be done
If customer is not assigned to an intent, RecentEven/RecentPageVisit/RecentInteraction  & BDC model validation will be done.

1. Update DDS-EventToIntent DDS:
 AOM-2358 Logic Changes  -> RepeatedIntentAOM-2460 Extend Intent Framework to use recent Events


876

Unique key should be Intent+PrimaryContext+SecondaryContext

2. Update Strategy-IdentifyEventBasedIntents
This strategy will be used  to validate only event comes from Context.
Rename it as IdentifyRTEventBasedIntents EventDataSource= Context
Remove Execution mode & channel filter
Add a filter to  EventToIntent Import EventSource like Context
Update GetContextDataforIntent , get secondary context for TIL flow.  Use BundleId to populate secondary context.
Incase of EventtoIntent secondary context configuration = empty. Do not use this information for filtering.
Withdraw IdentifyEventBasedIntents strategy
3.Update Strategy-EvaluateCustomerIntents
Update sub strategy call IdentifyEventBasedIntents to IdentifyRTEventBasedIntents
Import RangeMapping & set ConfidenceScoreRange similar to AssignIntentToOfferOrBusinessPurpose.  (need for Assisted Logic))
While importing data from RangeMapping use condition RangeType like ‘IntentConfidenceScore%’ not model id 999999
As this logic calculates range prior to IdentifyOffersForEligibleIntents, logic to set ConfidenceScoreRange with in
AssignIntentToOfferOrBusinessPurpose can be removed.Intent Intent Name that the event
attached toText Help-BroadBand
ConfidenceScore Intent Confidence score incase
Intent gets eligible Integer 21, 1, 100
PrimaryContext Event type to validate Text
SecondaryContext Sub Event Type to validate
For some events /executions
modes it will be empty. In that
case will be ignored when
filtering source or mapping with
RT event.
for IH case outcome will
populated in this field which will
be used to filter IHText
EventRecency Recency in hours to validate
recent event Integer
EventDataSource Indicates which data source is


recent event Integer
EventDataSource Indicates which data source is
used to validate event. can be
multiple.
Incase of Tealium & Data
depletion  DDS will store single
configuration Text Tealium
Context
EventStore
IH


877
 4.Update Strategy -IdentifyRuleBasedIntents
Add 2 new sub strategy call
IdentifyRecentEventBasedIntents
IdentifyModelBasedIntents
5. New Strategy- IdentifyRecentEventBasedIntents
This strategy is to validate Intents  with
Recent Events  in Event Store
Recent Page visits
IH data
And list eligible Intents
Add 3 sub strategy calls
ValidateIntentWithEvents
ValidateIntentsWithIH
ValidateIntentsWithTealium
As set of rules should be applied to eligible intents to validate with recent product holding etc.(Offer Catalog “Event Based Intent-
Validation Rules” tab. )
Add  sub strategy call  ApplyIntentValidationRules  . Apply related  validation rules for each intent.
Connect ValidateIntentWithEvents,ValidateIntentsWithIH,ValidateIntentsWithTealium to ApplyIntentValidationRules
As a design pattern ,
Exiting rules can be used a condition. (from related atomic strategies)
But rules needs an LatestEventTime as a parameter should be impelmetede in a common strategy (with external input enabled option)
IntentValidationAtomicRules  & and called from ApplyIntentValidationRules.
LatestEventTime will be calculated with in ValidateIntentWithEvents,ValdiateIntentsWithIH,ValidateIntentsWithTealium


878
6. New Strategy -ValidateIntentWithEvents
Enable External Input (input is list of active Intents)
Import EventToIntent DDS , filter EventSource like ‘EventStore’
Join EventToIntent with EventStore on  Primary Context & Secondary context data configured  (Ignore Secondary context if configured
as null. Event store will have Undefined value in case secondary context is not available )
Event transaction time should be within recency configured in EventToIntent DDS
Group by Primary Context & Secondary & Intent  get latest record
Join with incoming intent list ,  if there is any matching - Intent is eligible. This query may duplicate Intent (as may an intent mapped to
multiple events ,and all events eligible)
Group by Intent & select highest confidence score, latest event time
EventAge  = Current_date-event_date (InHours)
Aged Confidence Score = Confidence Score * ((EventRecency-EventAge)/EventRecency)
Set confidence score as Aged Confidence Score
7. New Strategy-ValidateIntentsWithIH
Import IH
Import EventToIntent filter EventSource like ‘IH’
Join  EventToIntent with IH on
IH EventType= PrimaryContext
IH Outcome = SecondaryContext
Outcometime  with in recency configure in EventToIntent DDS
Group by Primary Context & Secondary & Intent  get latest record  (latest IH record for Intent+PrimaryContext+Secondary context)
Join with incoming intent list ,   if there is any matching - Intent is eligible. This query may duplicate Intent (as may an intent mapped to
multiple events ,and all events eligible)
Group by Intent & select highest confidence score, latest outcome time
 EventAge  = Current_date-outcome time  (InHours)
Aged Confidence Score = Confidence Score * ((EventRecency-EventAge)/EventRecency)
Set confidence score as Aged Confidence Score


Set confidence score as Aged Confidence Score
8. New Strategy-ValidateIntentsWithTealium
Import Tealium data
Import EventToInent filter EventSource like ‘Tealium’
Join  EventToInent with Tealium
Tealium URL = Primarycontext
LastAccessTimeStamp time should be within recency configure in EventToInent DDS
Group by Primary Context & Secondary & Intent  get latest record  (latest Tealium record for Intent+PrimaryContext+Secondary context)
Join with incoming intent list ,   if there is any matching - Intent is eligible. This query may duplicate Intent (as may an intent mapped to
multiple events ,and all events eligible)
Group by Intent & select highest confidence score, latest AccessTimeStamp
 EventAge  = Current_date-LastAccessTimeStamp (InHours)
Aged Confidence Score = Confidence Score * ((EventRecency-EventAge)/EventRecency)
Set confidence score as Aged Confidence Score


879
9. Update DF
Update PrepareRealTimeData /PrepareRealTimeDataForProcessEvent & PrepareDataforBatch  to include Tealium data & Event Store
Data.


880
Assisted Upgrade -Pick&Mix
1.New DDS- RecomendationBlocks

New DDS to configure Tariff  & Discount Block for Segment Strategy+ Customer Current Discount Holding information.AOM-2313 Pick N Mix
AOM-1965 Being able to support multiple tariff in the
logic when provided in the Universal Tariff
ModelSection 6
Grow TRUE 1 T1 D3 50
Grow TRUE 2 T4 D5 100
Grow TRUE 3 T1 D5 100
Grow FALSE 1 T1 D1 0
Grow FALSE 2 T4 D3 50Strategy Segment CustomerHasDiscou
ntRecomendatioRank TariffBlock DiscountBlock PercentageofDiscou
ntToOffer


881

2. New DDS -TariffGroups
This DDS will rank the tariff groups according to tariff coverage (TariffGroupRank). T a r i f f I t e m R a n k will indicate the Tariff group + data
ranking.

3.Update Strategy -CalculateDiscountsforAssistedUpgrade
Existing strategy should be updated .

Make sub strategy call to IdentifySegmentStrategyforSubscription
Add A Set Component “Customer Data” to combine customer data need for Recoemdat tariff calculation & discount calcualtion
TariffName - GetCurrentTariff.TariffName
CurrentTariffCode - GetCurrentTariff.CurrentTariffCode
TariffMAF-GetCurrentTariff.TariffMAF
.MAFTariffDiscount-GetCurrentTariff.MAFTariffDiscount
.CustomerStarRating-GetCustomerStarRating.CustomerStarRating
Division-GetTeamforAgentDivision.Division
 Team-GetTeamforAgentDivision.TeamGrow FALSE 3 T1 D3 50
Unlimited Max with
Entertainment14 9437184 7
Unlimited with Entertainment 13 9437184 5
Red Entertainment 12 40960 2
Red Entertainment 11 20480 2
Red Entertainment 10 20240 2
Red Entertainment 9 5120 2
Unlimited Max 8 9437184 6
Unlimited 7 9437184 4
Unlimited Lite 6 9437184 3
Red 5 40960 1
Red 4 20480 1
Red 3 20240 1
Red 2 5120 1


Red 3 20240 1
Red 2 5120 1
Red 1 1024 1T a r i f f G r o u p T a r i f f I t e m R a n k T a r i f f D a t a T a r i f f G r o u p R a n k


882
(new)SegmentStrategy- IdentifySegmentStrategyforSubscription.SegmentStrategy  (will be used tariff recommendation logic)
(new)CustomerHasDiscount- GetCurrentTariff.CustomerHasDiscount(will be used tariff recommendation logic)
(new)TotalData -GetCurrentTariff.TotalData(will be used tariff recommendation logic)

Make Call to GetRecommendedTariff sub strategy call  with Customer Data.
Add a new Sub Strategy call  “Apply Discount Block “

4. Update Strategy -GetCurrentTariff
Update strategy to calculate CustomerHasDiscount & TotalData for current tariff
CustomerHasDiscount
Add a new strategy call  CalculateCustomerDiscountFlag
Populate CustomerHasDiscount with strategy output GetCurrentTariff.
TotalData
Add a new Strategy call  CalculateAddonData
Make a call to GetAddonList
Sum the AddonData and Set TotalAddonData
TotalData = TotalAddonData + Current Tariff Data from PC
Populate TotalData attribute to output of  GetCurrentTariff.

4. Update Strategy  -GetRecommendedTariff
Logic will create 3 tariff recommendation  according to RecomendationBlocks configuration.
Each Tariff block  has diffrent logic to pick recommended tariff.
To be handle different logic, different sub strategy are created.
For Output
Pass through all the attributes comes as input
Enhance the output for each recommendation, attributes should be available in the output


883
RecommendationRank: 1/2/3
RecommendedTariffCode
RecommendedTariffName
RecommendedTenure
RecommendedTarrifMAF
RecommendedMinutes
RecommendedTariffData
RecommendedTariffGroup
RecommendedTariffGroupRank, RecommendedTariffGroupItemRank
RecommendationType->Logic
RecomedededTarifBlock  >T1/T2/T3
SegmentStrategy
CustomerHasDiscount
SegmentBDCBand
DiscountBlock
PercentageofDiscountToOffer

6.New Strategy - GetListOfValidSIMOTariffsFromBDCModel
Import List of tariffs recommended from BDC model ( .ModelId=8) from BDCReccomendatinList page list of customer data . (new
approach on app site ) data page name TBC.
CONNECTION_TYPE = SIMO > It will return multiple tariffs.
Populate from BDC  model.
Recomended tariff code
rank (rank 1 has  highest priority)
Apply EvaluateTariffVisibility control.  (which will drop not visible ones
Populate listed attributes from PC Tariff Data
RecommendedTariffName
RecommendedTenure
.RecommendedTarrifMAF
RecommendedMinutes
RecommendedTariffData
RecommendedTariffCode
Populate from ProductReferece Data
RecommendedTariffGroup


884
Populate from ( TariffGroups DDS)
RecommendedTariffGroupRank, RecommendedTariffGroupItemRank

example  model

{"MODEL_ID":8,"MODEL_NM":"univeral_tariff_rec","VALIDITY_TS":"20210308 00:00:00","MODEL_RUN_TS":"20200909
00:00:00","SERVICE_NUMBER":"XX123","OUPUT":
[{"CONNECTION_TYPE":"HBB","RECOMMENDED_PRODUCT_ID":"110513","RECOMMENDED_METHOD":"most_common_migration","
REC_RANK":2},
{"CONNECTION_TYPE":"MBB","RECOMMENDED_PRODUCT_ID":"112431","RECOMMENDED_METHOD":"most_common","REC_RAN
K":10},
{"CONNECTION_TYPE":"SmartWatch","RECOMMENDED_PRODUCT_ID":"111359","RECOMMENDED_METHOD":"most_common","RE
C_RANK":6},
{"CONNECTION_TYPE":"MBB","RECOMMENDED_PRODUCT_ID":"112460","RECOMMENDED_METHOD":"most_common","REC_RAN
K":4}]}
7.New Strategy -IdentifyTariffForHigherData
This strategy will identify  a tariff with the conditions below from  list provided from GetListOfValidSIMOTariffsFromBDCModel.
Same strategy to evaluate T1 & T4 Block.
But T1 evaluates against the Current Tariff Vs Recommend Tariff List
But T4 evaluates against the Rec1 Tariff Vs Recommend Tariff List

T1 Higher Data 1. Recommend  a 24 Months Tariff
2. Using the customer's total data allowance,
select the highest propensity Tariff in the
Universal Tariff Model that grows the
customer's data allowance. If the
customer's current total data is already
unlimited, then go up in speed, if the
customer is on the top speed then go up


unlimited, then go up in speed, if the
customer is on the top speed then go up
using entertainment .If the customer is
already on the top data allowance, top
speed and  top entertainment then select
the equivalent tariff based on the product
ladder.
T4 Higher Data, speed or Entertainment than
Rec 1 Using the Tariff recommended in Rec 1,
select the tariff in the tariff ladder with a
higher data allowance. If the Tariff
recommended in Rec1  is at the top of data
allowance, then select a tariff with a higher
speed. If the Tariff recommended in Rec 1  is
already at the top of data allowance and
speed, then recommend entertainment. if the


885

8. New Strategy-IdentifyTariffForSameData

This strategy will identify  a tariff with the conditions below from  list provided from GetListOfValidSIMOTariffsFromBDCModel.Rec 1  Tariff is at the top of data, speed and
entertainment, then recommend the Rec 1
Tariff
T2 Same Data Using the Universal Tariff  Model:
1. Select 24 Month Tariffs from the list (later
when we have the agent's input, the
contract length might change i.e. if the
agent selects 30 days from the front end
prompt, then 30d tariff should be
presented)
2. Using the customer's current total data
allowance, select the highest propensity
24 month Tariff in the Universal Tariff
Model that has the same total data
allowance than the current tariff. If the big
data model does not contain the same


886
data allowance, then select the highest 24
month propensity tariff with higher data
and If there is nothing that fits that criteria
then use the highest propensity tariff. If
(for example, if the customer is on 10GB
18 Months tariff with a 10GB add on (i.e.
total data is  GB 20GB), then assume that
the customer is a currently on a  20GB
tariff  and scan the big data list for the
tariff with the highest propensity with an
20GB data allowance. If the big data
model does not contain a 20GB 24M Tariff
then select the highest propensity 24M
tariff with higher data. If there is nothing
that fits that criteria then use the highest
propensity tariff)
If the customer current data allowance  does
not exist then move up to the next data
allowance. For example, if the customer is
on 750MB tariff with a 500MB data add on
(i.e. Total data allowance is 1.5GB) then
review the current Tariff list to identify the
closest tariff with highest data allowance
(e.g. as we do not sell 1.5 GB tariff, the next
data point up from 1.5 GB is 5GB in the
current tariff ladder). Assume the customer is
on a  5GB tariff, scan the list of tariffs
recommended by big data and search for a
plan with 5GB plan the highest propensity. If
the big data model does not contain the
same data allowance, then select the highest
24 month propensity tariff with higher data
and If there is nothing that fits that criteria
then use the highest propensity tariff.


887

9.New Strategy- IdentifyTariffForHighestPropencity

9.Update Strategy -CalculateOmniDiscountsforAssistedUpgrade/
CalculateSaveDiscountsforAssistedUpgrade/ CalculateSuperSaveDiscountsforAssistedUpgrade

Update strategies to run discount calculation & Discount visibility control for each Rec. with for each Recomendation canvas option.
Calculate max discount for each Recommendation
T3 Highest Propensity Tariff Select the highest propensity (Rank
caroming from the BDC)Tariff as per
Universal Tariff Model


888

10. New Strategy -ApplyDiscountBlock
Strategy input will be list of recommendations & with max discount calculated by logic.

For Each Recommendation
For Each Recommendation
Normalized Discount =  apply  PercentageofDiscountToOffer over calculated “Discount” and round it down. (Example Calculated
Discount is 20%,   PercentageofDiscountToOffer: 50% - Normalised Discount is 10%)
Access D_DiscountsForTariff ,  (Keys :Division , Recommended Tariff Code )
Filter by Discount Type (percentage) and Amount <= Normalised Discount
select the record with highest Amount
If no records available, set discount as 0
Populate  discount details from PC
RecomendedDiscountCode
RecomendedDiscountAmount
RecomendedDiscountType
11. Update DF -PrepareRealtimeData
Universal tariff model data & other model data similar to this structure (multiple output) will be consumed with a different path with in
daily data load process.
This data will be consumed with a different file structure & feed to a dataset.
Logic need to consume this data in a way that  new datasets can be added in future.
PrepareRealtimeData df need to updated to populate this data.
Populate UniversalTariff model output to Customer.BDCReccomendatinList.
Use  GetRecommendationFromBDC  df to encapsulate this logic.
 1 1234 XXXXX 24 34 2000 1044 20 50
2 11111 YYYY 24 40 2000 2048 10 100
3 1234 XXXXX 24 34 2000 1044 20 100Recomendati
onRankRecommend
edTariffCodeRecommend
edTariffNameRecommend
edTenureRecommend
edTarrifMAFRecommend


edTariffNameRecommend
edTenureRecommend
edTarrifMAFRecommend
edMinutesRecommend
edTariffDataDiscount Percentageof
DiscountToO
ffer