1063

B. Rule Pattern 2 - TypeNoProductHoldingByProductCode
Pattern Input(s)

Pattern Description
This rule pattern uses the input ProductCode(s) and returns TRUE for the implemented rule if the customer does not have an Active
(EffectiveEndDate in future) ProductHolding for all of the ProductCode(s)

Example Rules for pattern
B1. USL005 Not Basics SIMO customer (12mth SIMO Unlmin 500MB Basics Plan, 12mth SIMO Unlmin 1GB Basics Plan, 12mth
SIMO Unlmin 3GB Basics Plan)
Rule Input

Test Scenario Configuration for STF
B2. USL006Customer does not have an MMS extra (104944 SOC Unlimited MMS;104934 SOC 100 MMS)
Rule Input
B3. USL007Customer does not have a Non-geo extra (108157 SOC Extra - 300 mins to 084 and 087)
Rule InputProductCode 104015
ProductCode Text product code as in product holding spineInput Data Type Description
ProductCode 110766, 110767, 110768Input Value
USL005 1 TRUE ProductHolding ProductCode 110766
ProductHolding EffectiveEndDate CurrentDate - 30
days
2 FALSE ProductHolding ProductCode 110767
ProductHolding EffectiveEndDate CurrentDate + 30
daysRule ID Scenario No Test Assertion Spine Column Value
ProductCode 104944, 104934Input Value
Input Value


1064

C. Rule Pattern 3 - TypeSubscriptionFlexAttributeStringCheck
Pattern Input(s)

Pattern Description
This rule pattern uses the input PropertyName and returns TRUE for the implemented rule if the customer has a record in
SubscriptionFlexAttribute spine the the PropertyName equals to the PropertyValueText.

This pattern will use a function created by Platform similar to below -
getTextPropertyValue()
Function Input
Property name including the page name (excluding Primary)
Function return
Value of the property from the Clipboard including Blank
If the property name is incorrect, throw error

This pattern has a dependency on Platform providing this function.

Example Rules for pattern
C1. GBL009SubscriptionDoesNotHaveOpenCompliant
Rule Input

Test Scenario Configuration for STFProductCode 108157
PropertyName Text Name of the text property from
SubscriptionFlexAttribute spine
PropertyValueText Text Value of the property to be checkedInput Data Type Description
PropertyName CustomStringField006
PropertyValueText NInput Value
GBL009 1 TRUE SubscriptionFlexAttri
buteCustomStringField0
06NRule ID Scenario No Test Assertion Spine Column Value


1065

C2. GBL017 Not in universal control group
Rule Input
C3. GBL036 Sky Customer
Rule Input

D. Rule Pattern 4 - TypeUnicaHistoryByCampaignAndRecency
Pattern Input(s)

Pattern Description
This rule pattern uses the input CampaignCode(s) and returns TRUE for the implemented rule if the customer has any record in
UnicaCampaignHistory for the input CampaignCode(s) within last “RecencyInDays“ days

Example Rules for pattern
D1. XSL006Exclude those that have been marketed to by campaign ACX4848 or ACX5322 within last 50 days unless part of
control groups for those campaigns
Rule Input
 2 FALSE SubscriptionFlexAttri
buteCustomStringField0
06Y
PropertyName CustomStringField002
PropertyValueText YInput Value
PropertyName CustomStringField007
PropertyValueText SKYInput Value
CampaignCode Text Unica Campaign code
RecencyInDays Integer Recency of the campaign in days (i.e. in last
x days)Input Data Type Description
CampaignCode ACX4848 ,ACX5322
RecencyInDays 50Input Value


1066
Test Scenario Configuration for STF

D2. XSL009Customer has been selected for the Unica campaigns ACX5217 or ACX4848 in the last month
Rule Input

E. Rule Pattern 5 - TypeNoUnicaHistoryByCampaignAndRecency
Pattern Input(s)

Pattern Description
This rule pattern uses the input CampaignCode(s) and returns TRUE for the implemented rule if the customer does not have any record in
UnicaCampaignHistory for all the input CampaignCode(s) within last “RecencyInDays“ days

Example Rules for pattern
E1. XSL007 Exclude those warm leads that have been contacted as part of campaign ACX5217 within the last 30 days
Rule InputXSL006 1 TRUE UnicaCampaignHist
oryCampaignCode ACX4848
UnicaCampaignHist
oryExtractDate CurrentDate - 30
days
2 FALSE UnicaCampaignHist
oryCampaignCode ACX4848
UnicaCampaignHist
oryExtractDate CurrentDate - 60
daysRule ID Scenario No Test Assertion Spine Column Value
CampaignCode ACX4848 ,ACX5217
RecencyInDays 30Input Value
CampaignCode Text Unica Campaign code
RecencyInDays Integer Recency of the campaign in days (i.e. in last
x days)Input Data Type Description
CampaignCode ACX5217
RecencyInDays 30Input Value


1067

Test Scenario Configuration for STF

F. Rule Pattern 6 - TypeProductHoldingByProductTypeAndDescription3
Pattern Input(s)

Pattern Description
This rule pattern uses the input ProductType & ProductDescription3  and returns TRUE for the implemented rule if the customer has an
Active (EffectiveEndDate in future) ProductHolding with corresponding ProductReference for the input ProductType & ProductDescription3

Example Rules for pattern
F1. USL003 Is on Basic Price Plans
Rule Input

Test Scenario Configuration for STFXSL007 1 TRUE UnicaCampaignHist
oryCampaignCode ACX5217
UnicaCampaignHist
oryExtractDate CurrentDate - 50
days
2 FALSE UnicaCampaignHist
oryCampaignCode ACX5217
UnicaCampaignHist
oryExtractDate CurrentDate - 20
daysRule ID Scenario No Test Assertion Spine Column Value
ProductType Text product type as in product reference spine
ProductDescription3 Text product description 3 as in product reference
spineInput Data Type Description
ProductType PRICE PLAN
ProductDescription3 BASICInput Value
USL003 1 TRUE ProductReference ProductType PRICE PLAN
ProductReference ProductDescription3BASICRule ID Scenario No Test Assertion Spine Column Value


1068

G. Rule Pattern 7 - TypeProductHoldingByProductTypeAndMobileDataDescription
Pattern Input(s)

Pattern Description
This rule pattern uses the input ProductType & MobileDataDescription  and returns TRUE for the implemented rule if the customer has an
Active (EffectiveEndDate in future) ProductHolding with corresponding ProductReference for the input ProductType &
MobileDataDescription

Example Rules for pattern
G1. USL004     Is on Unlimited Plan
Rule Input

Test Scenario Configuration for STFProductHolding EffectiveEndDate CurrentDate + 30
days
2 FALSE ProductReference ProductType PRICE PLAN
ProductReference ProductDescription3BASIC
ProductHolding EffectiveEndDate CurrentDate - 30
days
ProductType Text product type as in ProductReference spine
MobileDataDescription Text mobile data description as in
ProductReference spineInput Data Type Description
ProductType PRICE PLAN
MobileDataDescription UNLIMITEDInput Value
USL004 1 TRUE ProductReference ProductType PRICE PLAN
ProductReference MobileDataDescripti
onUNLIMITED
ProductHolding EffectiveEndDate CurrentDate + 30
days
2 FALSE ProductReference ProductType PRICE PLANRule ID Scenario No Test Assertion Spine Column Value


1069

H. Rule Pattern 8 - TypeModelScoreExists
Pattern Input(s)

Pattern Description
This rule pattern uses the input ModelID & ModelAttribute(s)  and returns TRUE for the implemented rule if the customer has an valid record
(ValidityTimestamp is in future or ModelRunTimestamp is within last 2 months) in ModelScores spine for the input ModelID and all the
ModelAttribute(s) has values.

Example Rules for pattern
H1. XSL003Has product propensity score
Rule Input

Test Scenario Configuration for STFProductReference MobileDataDescripti
onUNLIMITED
ProductHolding EffectiveEndDate CurrentDate - 30
days
ModelID Decimal model identifier as in ModelScores spine
ModelAttribute Text Model attributes for the ModelID in  in
ModelScores spineInput Data Type Description
ModelID 967
ModelAttribute handset_propensity, simo_propensity, mbb_propensityInput Value
 1 TRUE ModelScores ModelID 967
XSL003 ModelScores ModelAttributes {“handset_propensit
y”:
“1“,“simo_propensity
”:
“1“,“mbb_propensity
”: “1“}
ModelScores ValidityTimestamp CurrentDate + 30
days
ModelScores ModelRunTimestam
pCurrentDate - 30
daysRule ID Scenario No Test Assertion Spine Column Value


1070

I. Rule Pattern 9 - TypeBestModelScoreExists
Pattern Input(s)

Pattern Description
This rule pattern uses the input ModelID & ModelAttribute(s) and returns TRUE for the implemented rule if the customer has an valid record
(ValidityTimestamp is in future or ModelRunTimestamp is within last 2 months) in ModelScores spine for the input ModelID and the value of
BestModelAttribute is higher than the value(s) of  OtherModelAttribute(s)

Example Rules for pattern
I1. XSL021 Best second line offer is handset
Rule Input

Test Scenario Configuration for STF2 FALSE ModelScores ModelID 967
ModelScores ModelAttributes {“handset_propensit
y”:
“1“,“simo_propensity
”: “1“}
ModelScores ValidityTimestamp CurrentDate + 30
days
ModelScores ModelRunTimestam
pCurrentDate - 30
days
ModelID Decimal model identifier as in ModelScores spine
BestModelAttribute Text Model attributes for the ModelID in in
ModelScores spine
OtherModelAttribute Text Model attributes for the ModelID in in
ModelScores spineInput Data Type Description
ModelID 967
BestModelAttribute handset_propensity
OtherModelAttribute simo_propensity, mbb_propensityInput Value
XSL021 1 TRUE ModelScores ModelID 967Rule ID Scenario No Test Assertion Spine Column Value


1071
 I2. XSL022 Best second line offer is SIMO
Rule Input
 I3. XSL023 Best second line offer is MBB
Rule Input

J. Rule Pattern 10 - TypeIHByTreatmentOutcomeAndRecency
Pattern Input(s)ModelScores ModelAttributes {“handset_propensit
y”:
“1“,“simo_propensity
”:
“0.5“,“mbb_propensi
ty”: “0.5“}
ModelScores ValidityTimestamp CurrentDate + 30
days
ModelScores ModelRunTimestam
pCurrentDate - 30
days
2 FALSE ModelScores ModelID 967
ModelScores ModelAttributes {“handset_propensit
y”:
“0.5“,“simo_propensi
ty”:
“1“,“mbb_propensity
”: “0.5“}
ModelScores ValidityTimestamp CurrentDate + 30
days
ModelScores ModelRunTimestam
pCurrentDate - 30
days
ModelID 967
BestModelAttribute simo_propensity
OtherModelAttribute handset_propensity, mbb_propensityInput Value
ModelID 967
BestModelAttribute mbb_propensity
OtherModelAttribute simo_propensity, handset_propensityInput Value
Input Data Type Description


1072

Pattern Description
This rule pattern uses the input TreatmentName and returns TRUE for the implemented rule if the customer has the latest record in IH for
the input TreatmentName and the Outcome within last “RecencyInDays“ days

Example Rules for pattern
J1. XSL015  Clicked CrossSell email SIMO URL within last 7 days
Rule Input

Test Scenario Configuration for STF

J2. XSL016 Clicked CrossSell email Handset URL within last 7 days
Rule InputTreatmentName Text Name of the Treatment
Outcome Text Outcome as in IH
RecencyInDays Integer Recency of the IH in days (i.e. in last x days)
TreatmentName AddMobileSIMO_Email
Outcome click
RecencyInDays 7Input Value
XSL015 1 TRUE pxInteractionHistorypyName AddMobileSIMO_E
mail
  pxInteractionHistorypyOutcome click
  pxInteractionHistorypxOutcomeTime CurrentDate - 5
days
2 FALSE pxInteractionHistorypyName AddMobileSIMO_E
mail
  pxInteractionHistorypyOutcome Pending
  pxInteractionHistorypxOutcomeTime CurrentDate - 5
daysRule ID Scenario No Test Assertion Spine Column Value
TreatmentName AddMobilewithhandset_Email
Outcome clickInput Value


1073

J3. XSL017 Clicked CrossSell email Tablet URL within last 7 days
Rule Input

J4. XSL018 Clicked CrossSell email Watch URL within last 7 days
Rule Input
 RecencyInDays 7
TreatmentName AddTablet_Email
Outcome click
RecencyInDays 7Input Value
TreatmentName AddSmartwatch_Email
Outcome click
RecencyInDays 7Input Value


1074
Assisted Upgrade-Bingo Details

HL Requirement
Populate Bingo Tariff & Loan details from PC make available for reporting & recommendation details
The GetHandsetLoanDetails will be triggered by logic rec. & commercial rec. flows to populate attributes for handset product.

New Strategy - GetHandsetLoanDetails
Input - List of Handsets (RecommendedDeviceCode)
Populate listed attributes from D_Handset data page for each handset coming from Input333641 Recommendation - Min Upfront Cost
333640 Recommendation - Handset Plan Tenure
333645 Total Loan
333657 Reporting
335416 Package Band and Type (split from 333638)333638 Bingo Propositions (prod Cat)
PM Tool No
PM Tool KT Documentation No
Knowledge Transfer No
App No  *assumption bingo attrbiutes  are already
mapped
DB Yes  IH reporting extensionArea Yes/No Comments
Handset_Loan_Price Cost of the Handset under Bingo
planTo be used to define the cost of
the handsetHandsetLoanPrice
Max_Upfront_cost This will be the maximum
amount that can be paid as
upfront amount when a Bingo
handset is selectedTo be used in the UI MaxUpfrontCost
Min_Upfront_cost This will be the minimum amount
that should be paid as upfront Default in the recommendation MinUpfrontCostField Name Description Comment SR Attribute To Populate


1075
Calculate listed attributes in logic
Override MaxTenure to with 12 Month Business rule-TBC
If RecommendedTenure  =12 set MaxTenure=12 else  MaxTenure
Note : RecommendedTenure reflects tariff tenure, as this logic will be used with in bot logic & com. rec. make sure this value populated
before calling this logic
Duration=MaxTenure
MonthlyHandsetCost = ((HandsetLoanPrice - MinUpfrontCost )/MaxTenure)
Total Loan = HandsetLoanPrice - MinUpfrontCost
ProductName=Name
VatCode=VatCode
CostIncVat=MonthlyHandsetCost
ProductRecommendationType=Handset
ProductCode=RecommendedDeviceCode
Update Strategy - GetListofActiveTariffs
Populate listed attributes from D_Tariff data page amount when a Bingo handset is
selected
Min_Tenure The minimum loan tenure that
needs to be accepted for
purchasing the Bingo Handset.To be used in the UI MinTenure
Max_Tenure Maximum allowed loan tenure for
repaying of the Customer loan
for the Bingo HandsetTo be used in the UI MaxTenure
Default_Tenure Optimal loan tenure duration for
the Bingo Handset suggested by
Business. DefaultTenure
DeviceGroup Each Handset is assigned to a
device group and this field is
used to identify available tariffs
which are compatible with the
handset.Gold/Silver/Bronze DeviceGroup
Device_Promotion Device Promotion value
assigned to handset.To be showned in the UI DevicePromotion
Benefit_Advt This field provides all the benefit
advertisement to be shown in
Chordiant UI. Added as part of
HSP benefits.To be showned in the UI BenefitAdvt


HSP benefits.To be showned in the UI BenefitAdvt
Benefit_Outright This field provides all the benefit
advertisement to be shown in
Chordiant UI. Added as part of
HSP benefits.To be showned in the UI BenefitOutright
Field Name Description Comment SR Attribute To Populate


1076
Update Strategy -
IdentifyCommercialRecommendations>GetProductDetailAndEvaluateCompatibility
Populate listed attributes from D_Tariff data page in relevant Tariff details Band_Value Bingo tariffs mapping with the
Device Band. If mapped with
multiple handset band then to be
split with a delimiter  “_”Device Band i.e. the list of
devlices that can be sold with the
TariffBandValue
Segment_Of_Tariff Additional field to indicate the
segment of the discounts need to
be provided. SegmentOfTariff
Device_Group Lists all the device groups which
are compatible with tariff. If a
tariff is compatible with more
than one device group then this
field will populate multiple groups
separated by “_”. For example if
tariff is compatible with device of
Group 1 and Group 2 device
handsets then this field to
contain. G1_G2. DeviceGroup
Benefit_Advt This field provides all the benefit
advertisement to be shown in
Chordiant UI. Added as part of
HSP benefits.For Front end Display (see UI
US)BenefitAdvt
Benefit_Product This field provides all the benefit
advertisement to be shown in
Chordiant UI. Added as part of
HSP benefits.For Front end Display (see UI
US)BenefitProduct
Benefit_Ref This field provides all the benefit
advertisement to be shown in
Chordiant UI. Added as part of
HSP benefits.Empty BenefitRef
Package_Band New - Requested as part of
21.05Tariff Band (Gold/Silver/Bronze) PackageBand
Package_type New - Requested as part of
21.05Extra info about the Tariff i.e


Package_type New - Requested as part of
21.05Extra info about the Tariff i.e
Limited, Entertaiment etc..PackageType
Band_Value Bingo tariffs mapping with the
Device Band. If mapped with
multiple handset band then to be
split with a delimiter  “_”Device Band i.e. the list of
devlices that can be sold with the
TariffBandValue
Segment_Of_Tariff Additional field to indicate the
segment of the discounts need to
be provided. SegmentOfTariffField Name Description Comment SR Attribute To Populate


1077
IH Reporting  Extension
Extend IH Reporting below with below attributes
Update Strategy -CalculateDeal
Map all the attributes mention above to treatment data so they are available for both logic output & IH reportingDevice_Group Lists all the device groups which
are compatible with tariff. If a
tariff is compatible with more
than one device group then this
field will populate multiple groups
separated by “_”. For example if
tariff is compatible with device of
Group 1 and Group 2 device
handsets then this field to
contain. G1_G2. DeviceGroup
Benefit_Advt This field provides all the benefit
advertisement to be shown in
Chordiant UI. Added as part of
HSP benefits.For Front end Display (see UI
US)BenefitAdvt
Benefit_Product This field provides all the benefit
advertisement to be shown in
Chordiant UI. Added as part of
HSP benefits.For Front end Display (see UI
US)BenefitProduct
Benefit_Ref This field provides all the benefit
advertisement to be shown in
Chordiant UI. Added as part of
HSP benefits.Empty BenefitRef
Package_Band New - Requested as part of
21.05Tariff Band (Gold/Silver/Bronze) PackageBand
Package_type New - Requested as part of
21.05Extra info about the Tariff i.e
Limited, Entertaiment etc..PackageType
Handset SKU ProductRecomme
ndationIH Yes Yes Existing Text
Handset Loan
PriceHandsetLoanPriceIH Reporting Yes No New Decimal
Handset Min
Upfront CostMinUpfrontCost IH Reporting Yes No New Decimal
MaxTenure MaxTenure IH Reporting Yes No New Integer


MaxTenure MaxTenure IH Reporting Yes No New Integer
MinTenure MinTenure IH Reporting Yes No New IntegerRequirement IH/IHReporting
AttributeNameDestination IH Extract IH View Status Type


1079
Assisted Upgrade-Get Handset Stock Details

HL Requirements

New Strategy - GetStockDetails
Input - List Of Handsets from calling strategy (RecommendedDeviceCode)
Concatenate RecommendedDeviceCode attribute from each Handset SKU to single comma separated attribute (to be used as inout to
data page)
Query D_GetStockAvailability data page with following inputs
CustomerAccountType = Customer Owner account account type
Channel =Channel
ProductIdList= (Comma Separated Text calculated in previous step)
StockLocationList = ?
Match output of data page with input handset details (do not exclude)
Populate
Quantity --in case of error calling GSA set as 0
QuantityStatus-- in case of error calling GSA set as “Stock Information Not Available”
OrderLimit-in case of error calling GSA set as 0
Update Strategy - CalculateDeal
Populate  below attributes (from CalculateUpgradeDeals strategy) to treatment data
Quantity
QuantityStatus
OrderLimit
 AOM-2730 consume the result of the GetStock in the logic
PM Tool No
PM Tool KT Documentation No
Knowledge Transfer No
App No
DB No  A r e a Y e s / N o C o m m e n t s


1080
Assisted Upgrade-Loan Principles

HL Requirement
Apply additional control on eligible  pathway, if customer is not eligible for Loan AOM should not make Handset recomendation
Assumption is LoanEligibility will come as parameter with in context (part of Handoff)
New Strategy -CheckHandsetLoanEligiblity
Input - List of Handsets
Return all handsets if  LoanEligibilityStatus context parameter = ELIGIBLE
Otherwise, Drop all records

 333647 Loan Principles


1081
Assisted Upgrade-Bingo Logic Recommendation
HL Requirement
Enable Logic recommendation flow to include handset
If customer eligible for loan
handset sellable
recommend top device from BDC model
Filter recommended tariff according to tariff -handset compatibility
Upsell discount  logic should be skipped for Bingo tariff recommendations
Handset cost is not included in PostS15 calculation
Hanset details exposed to channel (including stock details)
 333639 Recommend a HS via a Logic Rec
PM Tool No
PM Tool KT Documentation No
Knowledge Transfer No
App No  New Data page D_EligibleTariffsforHandset
DB No  Area Yes/No Comments


1082

Pick Best Pathway
Customer  CRE Type - if FLEXUPGRADE or SIMOFLEX> It means customer can move to only ToHandset
Exiting offer catalog takes care of it , UpgradeMobileToSIMO is not mapped to FlexUpgrade & SIMOFlex offer variants.
But if Customer  CRE Type - if FLEXUPGRADE or SIMOFLEX and BDC models say customer has propensity to move “ToSIMO”, in that
case existing logic will not be able to recommend anything to customer.
To overcome this issue, if Customer  CRE Type - if FLEXUPGRADE or SIMOFLEX logic should output ToHandset without considering
pathway model output.
Update PickBestPathway strategy to cover requirement.
Same strategy needs update for Refine by case. Below table reflects in which case what should be the output of logic
NBA N/A N/A N/A FlexUpgrade or
SIMOFlexToHandset 2.4
NBA N/A N/A P_H>P_S N/A ToHandset 2.3
NBA N/A N/A Not Avaliable N/A ToHandset 2.3
NBA N/A N/A P_S>P_H N/A ToSIMO ,
ToSIMO302.3
RefineBy Null/False Null N/A FlexUpgrade or
SIMOFlexToHandset 2.4
RefineBy Null/False Null P_H>P_S N/A ToHandset 2.4
RefineBy Null/False Null Not Avaliable N/A ToHandset 2.4
RefineBy Null/False Null P_S>P_H N/A ToSIMO ,
ToSIMO302.4Mode SIMOParam ManufactrerPara
mPathway CRType Elligible
Pathways


1083
Calculate Recommended Device
New Strategy- GetRecommendedDevice

This strategy is to populate recommended handset  & do eligibility checks
Input - Current Tariff Details, ToPathway & Positions filled by Commercial Recommendation (Parent Treatment - single record only)
If ToPathway=ToHandset
Make sub strategy call CheckHandsetLoanEligiblity
if eligible for Loan
Make sub strategy call to GetBDCRecommendationList
Filter output with ModelID =?
Filter Valid Scores
Filter Top 1 Device recommendation from output which attribute
Set RecommendedDeviceCode=SKU
If  RecommendedDeviceCode!=””
Check  if SKU is sellable by checking start & end date (from D_Handset)
if  sellable, return the records
if not sellable ,
Check Customer CRE Type - if FLEXUPGRADE or SIMOFLEX >  customer can not upgrade to handset plan return No
record
Check Customer CRE Type - if ! (FLEXUPGRADE or SIMOFLEX) >  customer can  upgrade to handset plan without
handset ,set RecommendedDeviceCode=””
If  RecommendedDeviceCode=””RefineBy TRUE N/A N/A N/A ToSIMO ,
ToSIMO302.4
RefineBy Null/False !="Null" N/A N/A ToHandset 2.5


1084
Check Customer CRE Type - if FLEXUPGRADE or SIMOFLEX >  customer can not upgrade to handset plan  return No record
else customer can still get handset plan recommendation without handset, set RecommendedDeviceCode=””
iIf ToPathway!=ToHandset, return input as result as-is

Calculate Recommended Tariffs
Update Strategy -GetListOfValidSIMOTariffsFromBDCModel
Rename Strategy to  GetListOfValidTariffsFromBDCModel, retire the old one
Remove filter  “SIMO Tariff Connection check” to return all Tariffs

New Strategy -EvaluateTariffToHandsetCompatibility
Input - List of Tariffs & HandsetCode (RecommendedTariffCode,RecommendedDeviceCode)
Query  D_EligibleTariffsforHandset   data page for  handset  ( RecommendedDeviceCode attribute (from input) Expected output is the
compatible tariffs with RecommendedDeviceCode
Match Input with output of D_EligibleTariffsforHandset on Tariff code , exclude not matching records.
Update Strategy -GetListOfBDCandCatalogTariffsForPickNMix
Update sub strategy call GetListOfValidSIMOTariffsFromBDCModel to GetListOfValidTariffsFromBDCModel
Remove filter “BDC Details”-- Join condition will satisfy only  tariffs with provided tariff type & tenures are selected.
if RecommendedDeviceCode!=””
make sub strategy call to EvaluateTariffToHandsetCompatibility
if RecommendedDeviceCode=””, return as-is

Calculate Discounts for Tariffs
Update Strategy-CalculateUpgradeDiscount
Upsell Discount calculation should be skipped for Handset flows
Other discount calculation methods remains as is, only new configurations will be added for  hanset tariffs with in exiting structure.


Update SetFlags > extend logic , Set CalculateUpsellDiscount =false if RecommendedTariffCustomerType =  "PaymLoan"

T4 Logic
Update Strategy-T4Logic
After “S15 Higher than Rec1 S15” check
if RecomendedDevice!=””
make sub strategy call to EvaluateTariffToHandsetCompatibility
İf RecomendedDevice =””,  return as-is


1085
T1 & T2 Logic
Update Strategy -Higher Data Tariff
Update new Tariff groups for Bingo  in TariffGroupsConfiguration
Existing feature / data  compare logic  should run  for SIMOToSIMO and HandsetToSIMO
for  SIMO to Bingo & Handset To Bingo only condition will be any tariff higher than exiting. If already on unlimited any tariff with unlimited
data.. (Feature compare logic will come later.)
Add a 2 new  Filter shape after external Input
SIMOToSIMO or HandSetToSIMO (.CustomerType=PaymSIMO  and RecommendeTariffCustomerType=  PaymSIMO) or
(.CustomerType=PaymHandset  and RecommendeTariffCustomerType=  PaymSIMO)
Rename HigherData  >  HigherDataAndFeature
Connect”SIMOToSIMO or HandSetToSIMO”   to all exiting filters
OtherPathways > ! (SIMOToSIMO or HandSetToSIMO)
Add A new filter Shape “HigherData”
if TotalData != unlimited then .RecommendedTariffData>.TotalData else .RecommendedTariffData = unlimited
 Connect OtherPathways to HigherData
Output of “OtherPathways “ should be included in Skip S15/Not Skip flow and after it. Introduce a new component that combines
TariffFilter switch & OtherPathways output and does Skip/Not Skip control over it
Update Strategy -Same Data Tariff
Update “Higher or Equal Data Plans” condition, apply coverage check if only if SIMOToSIMO or HandSetToSIMO
Update Strategy- DecomposeTariffAndDiscount
Rename strategy as DecomposeRecommendation - retire old one & update references to calling strategiesRed 1 40960
RedEntertainment 2 40960
Unlimited Lite 3


RedEntertainment 2 40960
Unlimited Lite 3
Unlimited 4
Unlimited Max 5
Unlimited Entertainment 6
Unlimited Max Entertainment 7
BronzeStandard 1
SilverStandard 2
GoldStandard 3
BronzeUnlimited 4
SilverUnlimited 5
GoldUnlimited 6  Group TariffGroupRank MaxTariffData


1086
Add a new path for handset if RecommendedDeviceCode!=””,
Make Sub strategy call to GetHandsetDetails - it will populate details form D_Handset
Make sub strategy call to GetStockDetails- it will populate stock details
Set RecommendationType=Logic
Set RecommendationSubType=””

Update Strategy- IdentifyLogicRecommendation
Make a sub strategy call to GetRecommendedDevice before GetListOfBDCandCatalogTariffsForPickNMix


1087
Assisted Upgrade-Auto Added Product In Logic Recommendation
HL Requirements
Some tariff comes with auto added addons & discounts.
For Logic recommendation flow, If the recommended tariff has auto added addons or discounts
Logic should not give extra discount
Discount blocs logic should be skipped.
PostS15 calculation should consider auto added addons and discounts cost ext vat.
List of auto added addons or discounts should be available in the output deal details as separate rows.

New Strategy -IdentifyAutoAddedDiscounts
This strategy will query D_DiscountsForTariff data page for each tariff to validate if tariff has auto added discounts it will also calculate
costextvat discount amount.
Input List of Tariffs   (Multiple) (RecommendedTenure  RecommendedTarriffMafExVat,RecommendedTariffCode available in the input)
Get Unique List of Tariff from Input
Query D_DiscountsForTariff  data page for each tariff   & get the list of discounts
Identify auto added discounts with below condition
Default indicator = Y or  AutoRex Indicator = Y
Populate Discount Type  ,Discount Amount,Discount Duration from D_Discounts
Set DiscountDurationForS15= if Discount Duration> RecommendedTenure Then RecommendedTenure else Discount Duration
Set AutoAddedDiscountCostExVat = if(Discount Type='Percentage', RecommendedTarriffMafExVat*(Discount
Amount/100),Discount Amount)
Set AutoAddedDiscountCostExVat=(AutoAddedDiscountCostExVat*DiscountDurationForS15)/RecommendedTenure (Prorated
cost)
Set HasAutoAddedDiscount =True
Group by Tariff Code
Set AutoAddedDiscountCostExVat = Sum (AutoAddedDiscountCostExVat )


Set AutoAddedDiscountCostExVat = Sum (AutoAddedDiscountCostExVat )
Populate AutoAddedDiscountCostExVat & HasAutoAddedDiscount to related tariff record  to input records of the strategy.
New Strategy -IdentifyAutoAddedAddons
This strategy will query D_DiscountsForTariff data page for each tariff to validate if tariff has auto added discounts it will also calculate
costextvat of addon.
Input List of Tariffs  (Multiple)(RecommendedTariffCode available in the input)
Get Unique List of Tariff from Input
Query D_ServicesForTariff data page for each tariff  in the input & get the list of addons
Identify auto added addon with below condition
relationship type = 'O' and ( default indicator = Y or  AutoRex Indicator = Y )
Populate Addon CostIncVat  & Addon VatCode  from D_Services333654 Promo and Logic Rec


1088
Set AutoAddedAddonCostExVat = Addon CostIncVat /(1+Addon VatCode)
Set HasAutoAddedAddon =True
Group by Tariff Code
Set AutoAddedAddonCostExVat = Sum (AutoAddedAddonCostExVat )
Populate AutoAddedAddonCostExVat & HasAutoAddedAddon to related tariff record on to input record.
New Strategy -GetAutoAddedAddonsListDetails
Input List of Tariffs (Multiple) (RecommendedTariffCode)
Query D_ServicesForTariff data page for each tariff  in the input & get the list of addons
Identify auto added addons with below condition
relationship type = 'O' and ( default indicator = Y or  AutoRex Indicator = Y )
Query D_Services and populate addon details
ProductCode
ProductRecommendationType=”Addon”
ProductName
Type
Duration
Data
VatCode
CostIncludingVAT
CostExVat=Addon CostIncVat /(1+Addon VatCode)
AutoAdded=True
A tariff may have a multiple auto added addon, Output will be a list if avaliale, if not available  no record is returned.
New Strategy -GetAutoAddedDiscountsListDetails
Input List of Tariffs (Multiple)
(RecommendedTariffCode,RecommendedTarriffMafExVat,RecommendedTenure,RecommendedTarrifMAF,RecommendedTariffVATCod
e available)
Query D_DiscountsForTariff  data page for each tariff  in the input & get the list of discounts
Identify auto added discounts with below condition
Default indicator = Y or  AutoRex Indicator = Y
Access D_Discount and populate discount details
ProductCode
ProductRecommendationType=”Addon”
ProductName
Amount
Type
Duration


ProductCode
ProductRecommendationType=”Addon”
ProductName
Amount
Type
Duration
Set DiscountDurationForS15= if Discount Duration> RecommendedTenure Then RecommendedTenure else Discount Duration
CostIncludingVAT=-1*(if(Discount Type="Percentage",.RecommendedTarrifMAF*@Math.divide(.Amount,100),.Amount+
(.Amount*.RecommendedTariffVATCode)))
CostExVAT=-1*if(Discount Type='Percentage', RecommendedTarriffMafExVat*(Discount Amount/100),Discount Amount)
 S15ProratedDiscount=(CostExVAT*DiscountDurationForS15)/RecommendedTenure (Prorated cost)
AutoAdded=True


1089
A tariff may have multiple auto added discounts, Output will be a list if available, if not available  no record is returned.
Update Strategy -CalculateUpgradeDiscount
Make Sub strategy call to IdentifyAutoAddedDiscounts with external input
Make Sub strategy call to IdentifyAutoAddedAddons with output of IdentifyAutoAddedDiscounts
If HasAutoAddedAddon=true or HasAutoAddedDiscount =true
Do not run discount logic & ApplyDiscountBlocks Logic, return records to output
Else run as is
Update Strategy- ApplyS15Check
Update PostS15Maf Formula to include auto added discount & auto added addon cost to formula if available.
PostS15Maf=.RecommendedTariffMafExVaT-( if HasAutoAddedDiscount= true then AutoAddedDiscountCostExVat else
.RecommendedDiscount)-.EntertainmentCost +( if HasAutoAddedAddon= true then AutoAddedAddonCostExVat else .0)
Update Strategy -DecomposeRecommendation
If HasAutoAddedAddon= true  add a new path
Make sub strategy call to GetAutoAddedAddonsListDetails, it will populate all details of auto added addon form PC.
Set
RecommendationType=”Logic”
if HasAutoAddedDiscount= true  add a new path
Make sub strategy call to GetAutoAddedDiscountsListDetails, it will populate all details of auto added discount from PC.
Set
RecommendationType=”Logic”
Update Strategy -CalculateDeal
Populate  AutoAddedDiscount & AutoAddedAddon attributes to treatment data from CalculateUpgradeDeal


1090
Assisted Upgrade -Bingo Commercial Recommendation

HL Requirements
Commercial recommendation should be aligned with customer eligible ToPathways .
Handset plan & Handset can be part of commercial recommendation.
Handset with in commercial recommendation should be compatible with the tariff recommended.
Loan Eligibility should be validated , if customer not eligible for loan handset loan recommendation should be dropped, but handset tariff
can  still be offered.
Handset details & stock information should be populated with details
Handset cost should not be included in S15 calculation
No change on pick best commercial recommendation logic for handset.

 333662 Intepreding CRE for Bingo RecommendationAOM-2918 Handset in the Commericial Rec


1091

Update Strategy- CalculateUpgradeDeal
To align commercial recommendation with the eligible ToPathways,  logic needs to pass Eligible Pathways & Current tariff details to
IdentifyCommercialRecommendations
Connect External Input to IdentifyCommercialRecommendations strategy > Set InputType=”EligiblePathways”
Connect “IsTeamValid” to  IdentifyCommercialRecommendations strategy > Set InputType=”CurrentTariffDetails”

New Strategy -EvaluateCommercialRecforEligiblePathways
Input :
List of eligible Pathways (Parent Offers) > InputType=”EligiblePathways”
List of Active commercial Recommendations > InputType=”EligibleCommercialRec”
Filter records from input  InputType=”EligiblePathways” (TariffType,TariffSegment,DefaultContractTenure values available)
Set SIMOnly= if TariffType =”SIMOnly” “Y” else “N”
Filter  records from input InputType=”EligibleCommercialRec”
Filter Tariff records
Populate SIMOnly , TariffSegment,Tenure  information form product catalog for tariff records
Match records with records coming from InputType=”EligiblePathways”  on
SIMOnly,TariffSegment,Tenuere
Remove not match records
Group by RecommendationID
Output of this strategy is the list of recommendation IDs compatible with eligible ToPathways
New Strategy -EvaluateHandsetCompatibility
This strategy is to evaluate if recommended handset is compatible with tariff
Input-List of Handset & Tariff  (RecommendedDeviceCode,RecommendedTariffCode)


1092
For each Tariff Query D_EligibleHandsetsForTariff data page with RecommendedTariffCode, get the list of compatible  handset
Drop the handset record not compatible coming in the input (RecommendedDeviceCode)
New Strategy - GetProductDetailAndEvaluateCompatibility (Only Bingo Changes)
New Strategy to encapsulate the logic to populate  product details  & apply compatibility check
Input - List of eligible commercial rec. & details
Strategy will have different paths for each product type > keep as is data population  & evaluation logic for Tariff , Discount & Addon
Add a new path for  ProductType=Handset
Populate Tariff details from tariff data to Handset (for same recommendation ID)
RecommendedTariffCode=Tariff.ProductCode
RecommendedTenure=Tariff.Duration
Set listed attributes
RecommendationType=”Commercial”
RecommendedDeviceCode=ProductCode
Make Sub strategy call to GetHandsetLoanDetails ( to set handset attributes)
Make Sub strategy call to CheckHandsetLoanEligiblity
For each tariff execute EvaluateHandsetCompatibility strategy.
Update Strategy -IdentifyCommercialRecommendations
Input :
List of eligible Pathways (Parent Offers) > InputType=”EligiblePathways”
Curret Tariff Details > InputType=”CurrentTariffDetails”
Filter  records from input InputType=”CurrentTariffDetails” (will drive main path)
Filter records from input  InputType=”EligiblePathways”  (new)
Make sub strategy call to EvaluateCommercialRecforEligiblePathways
Applicable for Eligible ToPathWay> Filter out the commercial recommendations not avaliable in the output of
EvaluateCommercialRecforEligiblePathways
Make Sub strategy call to GetProductDetailAndEvaluateCompatibility  (replacing get product details & compatibility checks in main
strategy)


strategy)
Calculate PostS15MAf- Do not include handset records.
Make  substrategy call to GetStockDetails , to populate handsets stock details . (Only for hanset products & after relevant commercial
rec. are identified)


1093
Assisted Upgrade -Auto Added Product In Commercial Recommendation

HL Requirements
If recommended tariff comes with auto added Addon/Discount , discounts addons with in commercial recommendation should not we
added to deal.
Posts15 calculation should consider auto added discounts /addons

New Strategy-GetProductDetailAndEvaluateCompatibility  (Only Auto Added products)
For Tariff Path
Set below attributes for Tariff
RecommendedTarriffMafExVat,RecommendedTenure,RecommendedTarrifMAF,RecommendedTariffVATCode
Make strategy call to GetAutoAddedAddonsListDetails
Make strategy call to GetAutoAddedDiscountsListDetails
Connect result of GetAutoAddedAddonsListDetails & GetAutoAddedDiscountsListDetails directly to result of main strategy.
For Discount Path
If any record is available GetAutoAddedDiscountsListDetails,GetAutoAddedAddonsListDetails for  matching RecommendationID -
Filter out the discounts
For Addon Path
 If any record is available GetAutoAddedDiscountsListDetails,GetAutoAddedAddonsListDetails for  matching RecommendationID -
Filter out the addons337324 Auto Added Products in Commercial recommendation


1095
Assisted Upgrade-Refine By

HL Requirements
User will be able to re run the logic recommendation according to criterias on UI
With in this release we will apply tariff feature related filters  in logic.
User input will come in the context parameters.
 Refine By 333664 Refine By UI
Tariff Tenure Subscription.Context("TariffTenure"
)Tenure in month
12/24
for SIMO 30 ->1
SIMO Subscription.Context("SIMO ") True/False/Null
Entertainment Subscription.Context("Entertainme
nt")True/False/Null
UnLimited Subscription.Context("Unlimited") True/False/NullFilter Condition Context Parameter  Values To Pass Logic


1096

Update Strategy -CalculateUpgradeDeal
Set context parameters in strategy & make available for for logic rec. flow.
TariffTenureParam=Subscription.Context("TariffTenure")
SIMOParam=Subscription.Context("SIMO ")
EntertainmentParam=Subscription.Context("Entertainment")
UnLimitedParam=Subscription.Context("Unlimited")
NBAAMode=Subscription.Context(“SecondaryContext”)
Do not execute Commercial Recommendation Logic if NBAAMode=”RefineBy”


1097
Update Strategy -PickBestPathway
Existing logic should be updated to consider SIMO  filter condition coming from context
if NBAAMode =NBA or (NBAAMode=RefineBy Run  and (SIMOParam !=True) )run existing logic
else if NBAAMode =RefineBy  and SIMOParam =True >Select only the records TariffType=SIMOnly
Update Strategy -PickBestTenure
if NBAAMode =NBA or (NBAAMode =RefineBy  and  TariffTenureParam !=”1”)- Run existing logic , override RecommendedTenure from
TariffTenure coming from context.
else if  NBAAMode =RefineBy  and TariffTenureParam =”1” > Select ToSIMO30
Update Strategy-GetListofActiveTariffs
Apply aditional Filter tariffs according  to
if UnLimitedParam=True filter only tariffs which contains “Unlimited” text  in tariff group else do not apply filter
if EntertainmentParam=True filter only tariffs which contains “Entertainment” text in tariff group else do not apply filter
Update Event To Intent decision data
Configure Upgrade-RefineBy,
Remove RefineDeal


1098
Assisted Upgrade- Commercial Recommendation Validation

HL Requirement
Commercial recommendation consists of multiple products. (Tariff/Addon/Discount/Handset)
If any component of the commercial rec. is dropped because of compatibility or loan eligibility, whole recommendation should be
dropped.
In case of auto added products , discount & addons which are part of Commercial recommendation are dropped, instead  auto added
ones are offered to customer. In this case logic should not compare before/after  case for addons / discounts.

New Strategy - CountReccomendationProducts
Input > List of commercial recommendations with product details
Group by RecommendationID and Calculate
RecommendationProductCount =Count of  Products  where AutoAdded !=True
RecommendationHandsetCount =Count of Handset Products
AutoAddedProductCount=Count of Products  where AutoAdded =True
Update Strategy-GetProductDetailAndEvaluateCompatibility (Commercial Recommendation
Validation)344832 Commercial Logic Recommendation Eligibility


1099
Make Sub strategy call to CountReccomendationProducts (InputCounts)
 Input = Commercial Recommendation details before compatibility check+ Auto Add-on product details   (External Input
,GetAutoAddedAddonsListDetails -output,GetAutoAddedDiscountsListDetails-output )
Output = List of recommendations with product counts before compatibility checks.
Make Sub strategy call to CountReccomendationProducts (OutputCounts)
 Input = Commercial Recommendation details after compatibility check +Auto Add-on product details
Output =List of recommendations with  product counts after compatibility checks.
Compare  counts from those 2 calls for each recommendation
Set Eligible = True
If no  Auto Added Products available, compare whole product counts.
 if (InputCounts.AutoAddedProductCount =0  and
InputCounts.RecommendationProductCount=OutputCounts.RecommendationProductCount )
or If   Auto Added Products available, ignore discount & add-on (as they drop) only check handset  counts
if (InputCounts.AutoAddedProductCount!=0 and
InputCounts.RecommendationHandsetCount=OutputCounts.RecommendationHandsetCount)
Else  Set Eligible = False
Drop whole Commercial recommendation if Eligible =False


1100
Assisted Upgrade-Pick And Mix Logic Change

HL Requirement
  Make sure more proper tariff is selected in case of  no tariff recommendation available from “ Universal Tariff ” model .
Skip S15 Flow
As is :  T1/T2/T3 Logic is   selecting  tariff with top priority. In case of no recommendation from BDC, logic randomly selects
record from eligible tariff list.
Requirement :    select tariff which is closest to current data incase no recommendation from BDC.
Apply S15 Check Flow :
In case of no BDC model ,
As is : Best tariff selected according to min DeltaS15 , if there are multiple recommendation with same DeltaS15 one of the
selected randomly.
Requirement :  Make sure tariff with min DeltaS15 & closest to current data is selected.
In case of  tariffs not with in Threshold,
As is: Tariff closest to threshold is selected.
Requirement :  make sure tariff closest to threshold & closest to current data is selected.
Make sure tariff with higher feature is selected in T4 :
As Is : Logic pick tariffs  which are higher than Rec1 Tariff’s S15 Maf.
Requirement :   Select tariffs with the higher Tariff’s S15 Maf & higher Tariff Data than Rec1 . So in case of multiple tariff has same
price , logic pick the ones with higher feature.
Update Strategy- T1Logic/T2 Logic
Update the logic for SkipS15 path
Use group by instead of data join for Skip15 path. Group by give give the functionality selecting top Rank tariff for each position. (In
case tariff block is configured for multiple positions)
Remove Top Priority , Get Top Priority Record ,Tariffs with Rank components


Remove Top Priority , Get Top Priority Record ,Tariffs with Rank components
Select Top 1 Tariff with lowest RecRank for each Recommendation position  ( Ignore the RecRank=0 while selecting lowest value in
in expression, because records  not from bcd has RecRank=0   )  - PickMinRecRank
Select Top 1 Tariff with lowest RecommendedTariffData  for each Recommendation position  -PickMinData
If any record available from PickMinRecRank pick records from this path, else pick PickMinData path > connect to result
 348041 Logic Recommendation Enhancement for HSP + Device
348091 Enhancements to T4 Logic
350837 Update T3 Logic to be able to select a tariff from the product
catalogue if there is no Tariff from Big Data


1101

Update  Strategy- T3 (Highest Propensity Tariff)
Remove Higher Propensity  prioritise component
Add Group by  Component > Select Top 1 Tariff with lowest RecRank for each Recommendation position  ( Ignore the RecRank=0 while
selecting lowest value in in expression, because records  not from bcd has RecRank=0   )  - PickMinRecRank  > Connect to External
Input
Filter Tariffs with Higher data than Current TotalData ( if TotalData !=Unlimited  then RecommendedTariffData >TotalData else
RecommendedTariffData=Unlimited)> Connect to External Input
Add Group by  Component >Select Top 1 Tariff with lowest RecommendedTariffData  for each Recommendation position  -
PickMinData
Update condtion in Tariff Switch
ExternalInput.SkipS15Threshold&&PickMinRecRank.RecommendedTariffCode!=""  > PickMinRecRank
ExternalInput.SkipS15Threshold&&PickMinData.RecommendedTariffCode!=""  > PickMinData
Else ExternalInput
Update Strategy-CalculateUpgradeDeal
Make commercial recommendation  Rec1 tariff data available for IdentifyLogicRecommendation input. (which will be used in T4 logic
later steps)
Update AvailableCommercialRecs components,
 populate TariffData from  Com Rec Tariffs > RecommendedTariffData
Update Set Input For Logic component
 populate Rec1TariffData from AvailableCommercialRecs.TariffData
Update  Strategy - IdentifyLogicRecommendation
Update “RecommendedTariffS15Maf” component
Rename component to - “Set Rec1 Details “
set Rec1TariffData , either from Rec1 of logic recommendation or from ExternalInput


1102
Update  Strategy -ApplyS15Check
Update Min RecRank,Min DeltaS15Maf,Max DeltaS15Maf group by components,  remove RecommendedTariffCode from group by
condtion.
Order eligible tariff records according to RecommendedTariffData ascending so , while selecting single tariff the tariffs with nearest data
to current data is selected.
Propensity is zero Path >
add a priorities component before “Min DeltaS15Maf”, order records on RecommendedTariffData ascending.
FalseThreshold Path>
add a priorities component before “Max DeltaS15Maf”, order records on RecommendedTariffData ascending.
Update  Strategy - T4
Update condition on > S15 Higher than Rec1 S15
Rename component  as “Higher than Rec1”
Update condition:
RecommendedTariffS15Maf > Rec1TariffS15Maf  and ( if Rec1TariffData !=Unlimited  then RecommendedTariffData
>Rec1TariffData else RecommendedTariffData=Unlimited)


1103
Release 2.5


1104
NBA FW - Reconfigure Volume Constraint Process in Batch Mode

Impact in Other areas

Dependencies

A. Initialising Available Capacity per Treatment (App)
Batch case should be updated to introduce a new initial step (before calling main decisioning data flow), to reset and initialise a bucket for
each active treatments with available capacity for the batch run.
This process will call a new data flow - GetMaxCapacityForTreatments to get max capacity data for all active treatments. 347271 Reconfigure Volume Constraint Process in Batch Mode
PM Tool Yes  New Global Config Item for DedupeFactor
(in % value)
PM Tool KT Documentation Yes
Knowledge Transfer Yes
App Yes i. New process for initialising Available
Capacity per Treatment before Batch Run
ii. New Process for reseting
AvailableCapacity per Treatment after Batch
Run
iii. New function to provide if capacity
available by Treatment
iv. New function for updating capacity by
Treatment
DB No  Area Yes/No Comments
PM Tool Yes  Use of new Global Config will be validated in
E2E run
App Yes Logic development has hard dependency on
the functions
E2E Testing can only be done after App
changes on the Batch case
DB No  Area Yes/No Comments


1105
The available capacity should be maintained in in individual buckets in AOM.

B. New Data Flow - GetMaxCapacityForTreatments
This data flow will be similar to InsertSimulationLookupData data flow.
Source - Abstract (Subscription class)
Strategy  - GetMaxCapacityForTreatments
Destination - Abstract

C. New Strategy - GetMaxCapacityForTreatments
This strategy will import all treatments and identify all active treatments. Then, It will calculate MaxCapacity for each treatment as follows -
C1. If treatment has volume limit set (not by SubChannels)
AdjustedCapacity = VolumeLimit + VolumeLimit x ControlGroup%
MaxCapacity = AdjustedCapacity + AdjustedCapacity x DedupeFactor%
DedupeFactor factor is a global config which offsets any drop-offs due to the dedupe process in the Extractor case
C2. If treatment has volume limit set ( by SubChannels)
MaxCapacity = Total VolumeLimit for all sub channels  + Total VolumeLimit x ControlGroup%
MaxCapacity = AdjustedCapacity + AdjustedCapacity x DedupeFactor%
C3. If treatment has no volume limit set -
Do not return the treatment

D. New function to check available capacity for Treatment (App)
Input - TreatmentName (String)
Output - AvailableCapacity (Integer)
The function should return the available capacity for input treatment in real-time from respective bucket.

E. New strategy - CheckAvailableCapacityForTreatment
E1. For each input Treatment, do following
E2. Connect External Input to the filter to exclude email treatments with condition @String.notEqualsIgnoreCase(.Channel,"Email")
E3. Join Filter to the Data Join, In the DataJoin join with the VolumeConstraints with the condition pyName=TreatmentName and check the


Exclude checkbox. In the properties mapping tab map VolumeLimit=VolumeLimit
E4. Connect the Data Join to the Group By Component, Apply Group by pyName and calculate the sum of   VolumeLimit
E5. If treatment has no volume limit set -
return the treatment
E6. Else, call new function to check AvailableCapacity for Treatment
E7. Check if AvailableCapacity > 0
return the treatment

F. New function to consume capacity unit for Treatment (App)


1106
Input - TreatmentName (String)
Output - CapacityConsumed (boolean)
This function will consume the available capacity for input treatment name by decrementing the available capacity by 1 and update the
bucket in real-time.

G. New Strategy - ConsumeCapacityUnitForTreatment
G1. For each input Treatment, do following
G2. Connect the external input to the filter (Treatments without Volume Limit) and add the condition in the filter as .VolumeLimit = 0 ||
.VolumeLimit = ""  and join this filter to the empty set property named “Calculated Consumed Capacity for all Treatments“
G3. Connect the external input to the other filter(Treatments having Volume Limit) and add the condition in the filter as .VolumeLimit>0 and
connect this filter to the set property named “CapacityConsumed for each Treatment“ to call the new function to consume  Capacity unit for
Treatment
G4. If the function returns TRUE
Join it to the set property named “Calculated Consumed Capacity for all Treatments“
G4. If the function returns FALSE
DO NOT return the treatment
G5. Connect the external input to the empty set property and name it as Skip Reconfigure Volume Constraint
G6. Add the switch component before the result component  with the conditons to choose Calculated Consumed Capacity for all Treatments
set property component if the conditon @Utilities.callWhen(tools,"IsReconfigureVolumeEnabled",Primary) returns true else choose the
component “Skip Reconfigure Volume Constraint Feature for All Treatments“

Please note that -
In multi-node batch processing where multiple customers are being processed at the exact same time, the time lag between


In multi-node batch processing where multiple customers are being processed at the exact same time, the time lag between
‘checking the capacity’ and ‘consuming the capacity’, there is a possibility that when the capacity is low, multiple customers will
pass the first check (Step E) but only some will pass the second check (Step G) until the capacity is exhausted.
This has been discussed and considered as acceptable risk in batch processing. The de-dupe factor % can consider the scenario
above and can be updated accordingly.

H. Update Strategy - IdentifyBestTreatmentForBatch
H1. Remove the joining to the filter, Non Email Channel from the External Input.
H2. Join the External Input to the new sub-strategy- CheckAvailableCapacityForTreatment and also join the external input to the empty
set property and give the name for the set property component as “Skip Reconfigure Volume Constraint Path“
H3. Add the Switch Component and name it as “Choose Reconfigure Volume Constraint Path“
Add the conditions in the switch, to choose substrategy when if the condition,
@Utilities.callWhen(tools,"IsReconfigureVolumeEnabled",Primary) returns true else choose the component “Skip Reconfigure Volume
Constraint Path“. Join the switch component to the filter, “Non Email Channel“

I. Update Strategy - IdentifyBestTreatmentforSubscription
I1. After sub-strategy - IdentifyBestTreatmentForBatch and before Results, call new sub-strategy - ConsumeCapacityUnitForTreatment


1107
I2. Add the new filter and add with the condition, @String.equalsIgnoreCase(.ExecutionMode,"Batch") after the sub strategy
ConsumeCapacityUnitForTreatment

J. Update Strategy - IdentifyBestEmailTreatmentForBatch
J1. After the Filter - DropParentIfitisEligibleasChild add the data Join and connect the filter to data Join. Import the decision data
VolumeConstraints and in the data join add the condition pyName=TreatmentName and map volumelimit in the properties mapping. Check
the exclude checkbox.
J2. For volumelimit>0, call new function to check AvailableCapacity for Treatment.
J3. Check if AvailableCapacity>0 then join it to the empty set property component and name it as “Calculated Available Capacity for each
Email Treatment“
J4. For treatments having .VolumeLimit = 0 || .VolumeLimit = "" don’t call the AvailableCapacity function. Connect directly this treatments to
the empty set property, “Calculated Available Capacity for each Email Treatment“
J5. Connect the two filters, ”Parents With Children” and “DropParentIfitisEligibleasChild“ to the new set property called
“SkipReconfigureVolumeConstraintFeature“
J6. After the set property called  “Calculated Available Capacity for each Email Treatment“ add the switch component. In the switch
component, add the following condition. Choose set property component, “Calculated Available Capacity for each Email Treatment“ results
if the condition @Utilities.callWhen(tools,"IsReconfigureVolumeEnabled",Primary) returns true else choose other component results, ”Skip
Reconfigure Volume Constraint Feature”. Join the switch to the set property component named “Set Parent“


1108
NBA FW - Segmentation By Offer
Impact in Other areas
 Dependencies
Update Offers DD for all Squads (8 DD updates):
Update the value of CustomerSegment as per the below values for Offers DD in each squad (values TBC from Matt)
Please note that if the “Customer Segment” is left blank in the PM Tool and hence NULL in Offer decision data, the offer
should be available to all Segments (i.e. segment check is not required).
Matt to confirm with Venkat about PM Tool entry for “Customer Segment” to ensure that it is a multi-select property on the
Offers Screen.

Missing CustomerSegment in Offers decision data -
Issue - Renew
Update strategy GlobalEligibilityRulesForBatch:
Remove call to “PAYM CustomerOnly“
Create new Proposition Decision Data CustomerSegments (under Issue NonPropositions )
pyName - name of customer Segment (unique)AOM-3028 Introduce segmentation by offer into the NBA framework
PM Tool Yes  Details Below
PM Tool KT Documentation Yes
Knowledge Transfer Yes
App No
DB No  Area Yes/No Comments
PM Tool No Decision Data population will be validated
once PM changes are complete and passed
testing
App No
DB No  Area Yes/No Comments


1109
pyLabel - name of customer Segment (unique)
pyIssue - Default to “NonPropositions”
pyGroup - Default to “CustomerSegments”
pyIsPropositionActive  - Default to “Always”
Enabled - True/False
Create new CustomerSegmentsEligibility proposition filter:
Segments
ConsumerPostpay
ConsumerPrepay
EnterprisePostpay
MVNO
Voxi
Criteria
Existing Rules
ConsumerPostpay - GBL0011 (GlobalRules1) -
@String.equalsIgnoreCase(Primary.PrepayPostpayType,"Postpaid")&&@String.equalsIgnoreCase(Primary.ConsumerEnterprise
Flag,"C") AND NOT GBL073
ConsumerPrepay -  GBL064 (GlobalRules3) -
@String.equalsIgnoreCase(Primary.PrepayPostpayType,"Prepaid")&&@String.equalsIgnoreCase(Primary.ConsumerEnterpriseFl
ag,"C")  AND NOT GBL073
New Rules
EnterprisePostpay - GBL071 (GlobalRules3) -
@String.equalsIgnoreCase(Primary.PrepayPostpayType,"Postpaid")&&@String.equalsIgnoreCase(Primary.ConsumerEnterprise
Flag,"E") AND NOT GBL073
MVNO - GBL072 (GlobalRules3) - @String.equalsIgnoreCase(Primary.PrepayPostpayType,"Wholesale") AND NOT GBL073
Voxi - GBL073 (GlobalRules3) - Primary.RootServiceProductCode=”110392”
Please note that the Customer segment eligibility should be mutually exclusive so that customer is is eligible for a single
segment.
New strategy EvaluateCustomerSegment
Import CustomerSegments Proposition DataConsumerPostpay ConsumerPostpay NonPropositions CustomerSegm
entsTrue
ConsumerPrepay ConsumerPrepay NonPropositions CustomerSegm
entsTrue
EnterprisePostpay EnterprisePostpay NonPropositions CustomerSegm
entsFalse


entsTrue
EnterprisePostpay EnterprisePostpay NonPropositions CustomerSegm
entsFalse
Voxi Voxi NonPropositions CustomerSegm
entsFalse
MVNO MVNO NonPropositions CustomerSegm
entsFalsepyName pyLabel pyIssue pyGroup Enabled


1110
Filter by Active Customer Segments (.Enabled=True)
Apply Customer Segment Eligibility Prop Filter (using the above criteria)
Enable External Input to get all offers
For each offer, using a filter component - check if Offer.CustomerSegment “contains” eligible customer segment (pyName from
Customer Segment Eligibility Prop Filter)
Connect to Results
Update strategy IdentifyEligibleOffers
After ControlQuarantinePeriod from BusinessPurpose“ data join add the below:
Add a call to “EvaluateCustomerSegment“ sub-strategy
Connect the sub-strategy to all execution mode filters


1111
NBA FW - Trade In Phase D: Payment Methods & WBW Rule 6
List of Logic Specific Jira Tickets:
Add Intent Logic to GetNBA Flow for Trade In
Intent Configuration
List of Intents
Intent to BusinessPurpose
Update DDS - EventToIntent
Update EventToInent Decision data structure
Data for TradeIn will be as follows (assumption):
Add Bundling Logic (Parent-Child) to GetNBA Flow for Trade In
Update strategy IdentifyBestTreatmentForGetNBA
Remove the highlighted sections for prioritization and max offer selection for Trade InAOM-2720 Create Trade In WBW Eligibility Rules
AOM-2753 Create Trade In WBW ‘Multiplier’ Component
AOM-2884 Extend NBA Decisioning Funnel for Trade InAOM-2717 Extend Trade In Payment Method Eligibility Rules
New TradeIn-Handset TradeIn Handset Intent Key Level1 Intent Level2 Intent
TradeIn-Handset Null TradeInIntent Key Confidence Score High Confidence Score Low
GetNBA TradeIn  TradeIn-Handset 100ExecutionMode PrimaryContext SecondaryContext Intent ConfidenceScore


1112
Replace the above section with a sub-strategy call to “ApplyBundling” strategy
Connect to Results
Update DDS - ParentChildTreatments
Upload the below values to ParentChildTreatments decision data
Just new records to be added to existing DDS - no structural changes
IH Consolidation for Web and Retail channels for Trade In
Update strategy SetIHForWeb
Update set property component - Set IH with only the following -
TradeInUpgradeFe
eCredit_WebTradeInUpgradeF
eeCredit_WebParentChildTr
eatmentsNonPropositionsTradeInUpgradeFeeC
redit_WebWBWDiscountUpgradeFe
eCredit_Web
TradeInUpgradeFe
eCredit_RetailTradeInUpgradeF
eeCredit_RetailParentChildTr
eatmentsNonPropositionsTradeInUpgradeFeeC
redit_RetailWBWDiscountUpgradeFe
eCredit_Retail
TradeInUpgradeFe
eCredit_InboundC
CTradeInUpgradeF
eeCredit_Inboun
dCCParentChildTr
eatmentsNonPropositionsTradeInUpgradeFeeC
redit_InboundCCWBWDiscountUpgradeFe
eCredit_InboundCC pyLabel pyName pyGroup pyIssue BundleParentTreatme
ntBundleChildTreatment Rank
pyDirection “Outbound“
pyOutcome “Selected”Property Name Value


1113
Remove sub-strategy SetGenericIHReportingAttributes
Update Strategy - SetIHPropertiesForAllChannels
Add new filter component - Web for Web channel and call relevant sub-strategy -SetIHForWeb
Connect sub-strategy SetIHForWeb to sub-strategy - SetDefaultValuesToIHProperties
Update Strategy - IdentifyBestWebTreatmentsForSubscription
Replace sub-strategy - SetIHForWeb with sub-strategy - SetIHPropertiesForAllChannels
Update Switch component - Make Decision to refer to new - SetIHPropertiesForAllChannels instead of SetIHForWeb in all relevant
places
Update strategy SetIHForRetail
Update set property component - Set IH with only the following -
Remove sub-strategy SetGenericIHReportingAttributes
Update Strategy - SetIHPropertiesForAllChannels
Add new filter component - Retail for Retail channel and call relevant sub-strategy -SetIHForRetail
Connect sub-strategy SetIHForRetail to sub-strategy - SetDefaultValuesToIHProperties
Update Strategy - IdentifyBestRetailTreatmentsForSubscription
Replace sub-strategy - SetIHForRetail with sub-strategy - SetIHPropertiesForAllChannels
Update Switch component - Make Decision to refer to new - SetIHPropertiesForAllChannels instead of SetIHForRetail in all relevant
places
Payment Method changes for Phase D
Implement Payment Matrix
Using “Rule Logic” from the offer catalog and the payment matrix create new rules to be applied for eligibility for the 2 new payment
methods
FlexiBC (UpgradeFeeCredit)
UpfrontCredit
Update strategy TradeInRules1
Add new rules for Payment Method Eligibility as per offer catalog
Add new rules for WBW Eligibility as per offer catalogTargetSubChannel “Default“
pyDirection “Outbound“
pyOutcome “Selected”
TargetSubChannel “Default“Property Name Value


1114
NBA Funnel updates for new payment methods
Update strategy IdentifyEligibleTradeInOffers
Update “TradeInOfferEligibility“ proposition filter to add new parents (Payment Methods)
TradeInUpgradeFeeCredit
TradeInUpfrontCredit
Update “TradeInOfferEligibility“ proposition filter to add new children (WBW)
WBWDiscountUpgradeFeeCredit
Update strategy IdentifyEligibleOffers
Remove switch that flips between IVR and TradeIn for GetNBA execution mode (as per diagram below)
Connect the IdentifyOffersForEligibleIntents sub strategy to ChooseOffersByExecutionMode switch
Update strategy ApplyTradeInTreatmentEligibility
Update TradeInWebTreatmentEligibility proposition filter to add the below 2 Web treatments and set to “Default criteria” for eligibility
TradeInUpgradeFeeCredit_Web
WBWDiscountUpgradeFeeCredit_Web
Update TradeInInboundCCTreatmentEligibility proposition filter to add the below 2 InboundCC treatments and set to “Default criteria”
for eligibility
TradeInUpgradeFeeCredit_InboundCC


1115
WBWDiscountUpgradeFeeCredit_InboundCC
Update TradeInRetailTreatmentEligibility proposition filter to add the below 2 Retail treatments and set to “Default criteria” for
eligibility
TradeInUpgradeFeeCredit_Retail
TradeInUpfrontCredit_Retail
WBWDiscountUpfrontCredit_InboundCC
NBA Funnel updates for Annual Upgrade Promise
Update strategy PopulateOutputPropertiesForGetNBA
Between “External Input” and “SetPropertyforAction“ set property add a filter with below condition:
.ParentChild = "P"
In SetPropertyforAction set property, add the below target mapping
.Identifier = .TreatmentID
In SetOutputPropertiesItemandPrice set property, update the below target mapping
.Identifier = .TreatmentID


1116
In SetOutputPropertiesItemWithoutPrice set property, update the below target mapping
.Identifier = .TreatmentID


1117
NBA FW - Record Model Use in IH
 Impact in Other areas
 Dependencies

Add to IH Reporting Table
New Properties for VFUK-FW-AOMFW-Data-InteractionHistoryReporting class
New Properties for PegaMKT-Data-Event class345609 Record Model Use in IH
PM Tool No
PM Tool KT Documentation No
Knowledge Transfer No
App Yes Extend IH Reporting Class
Extend Event Class and Update TriggerPMEvent activity
DB Yes  Add “ModelDetails” to IH Reporting tableArea Yes/No Comments
PM Tool No
App Yes E2E testing needs App changes to be completed
DB Yes  E2E testing needs the new field to be added to IH Reporting tableArea Yes/No Comments
ModelDetails IH Reporting Yes No New TextIHReporting AttributeName Destination IH Extract IH View Status Type
ModelDetails TextProperty Name Data Type
ModelDetails TextProperty Name Data Type


1118
New parameter for TriggerPMEvent activity and relevant changes to populate EventPayload page
New SR Property
Create new SR Property
ModelDetails - Text
Model use at Intent stage
Modify strategy IdentifyModelBasedIntents
Update data join - Join on Model Id to get ModelRunTimestamp
Add ModelDetails property with the below formula in SetvaluesforModelId9 set property
.ModelDetails = @if(.BDCModelId!=""&&.ModelRunTimestamp!="",@if(.ModelDetails="","
["+"'"+.BDCModelId+"'"+":"+"'"+@FormatDateTime(.ModelRunTimestamp,"yyyyMMddhhmmss","","")+"'"+"]",.ModelDetails+","+"
["+"'"+.BDCModelId+"'"+":"+"'"+@FormatDateTime(.ModelRunTimestamp,"yyyyMMddhhmmss","","")+"'"+"]"),"")
Example: ['1':'20210421112600'],['2':'20210421112600'],['3':'20210421112600'],['4':'20210421112600']
If one or more of the models is not present then the string will only have the ones that are available as per this example:
['1':'20210421112600'],['3':'20210421112600'],['4':'20210421112600']
Modify strategy IdentifyOffersForEligibleIntents
Update data join - Join on Offer to get ModelDetails
Update data join - Join on Business Purpose to get ModelDetails
Model use at Offer (and variant) stage

Modify strategy GetBDCPropensity
Update data join - Valid ModelID Check to get BDCModelID & ModelRunTimestamp
Add ModelDetails property with the below formula in SetModelPropensityIfitisZero set property
.ModelDetailsTemp = @if(.BDCModelId!=""&&.ModelRunTimestamp!="","


.ModelDetailsTemp = @if(.BDCModelId!=""&&.ModelRunTimestamp!="","
["+"'"+.BDCModelId+"'"+":"+"'"+@FormatDateTime(.ModelRunTimestamp,"yyyyMMddhhmmss","","")+"'"+"]","")ModelDetails TextProperty Name Data Type


1119
Modify strategy SetOfferLevelPropensity
Update data join - Set Model Propensity from BDC to get ModelDetailsTemp
Create new Set Property - Set Offer Level Model Details
.ModelDetailsOffer = @if(.ModelDetailsTemp !="",
@if(.ModelDetails="",.ModelDetailsTemp ,.ModelDetails+","+.ModelDetailsTemp),.ModelDetails)

Modify strategy ApplyOfferDataToOfferToOfferVariations
In data join Map Offer Data To Offer To Offer Variations, add the below property mapping
.ModelDetailsOffer = .ModelDetailsOffer

Modify strategy SetOfferVariationLevelPropensity
Update data join - Set Model Propensity from BDC to get ModelDetailsTemp
Create new Set Property - Set OfferVariant Level Model Details
.ModelDetailsOfferVariant = @if(.ModelDetailsTemp !="",
@if(.ModelDetails="",.ModelDetailsTemp ,.ModelDetails+","+.ModelDetailsTemp),.ModelDetails)

Modify strategy ApplyOfferVariationsDataToTreatments
In data join MapOfferVariationsDataToTreatments, add the below property mapping
.ModelDetailsOfferVariant = .ModelDetailsOfferVariant


1120
Modify strategy SetPropensityForTreatments
Update Set Property - Set Offer Level Propensity
.ModelDetails = .ModelDetailsOffer
Update Set Property - Set OfferToOfferVariation Level Propensity
.ModelDetails = .ModelDetailsOfferVariant
Model use at Channel Preference stage
Modify strategy PickBestTreatmentForOfferByChannelModel
Update  SetChannelPropensity set property
.ModelDetailsChannel = @if(ValidModelScores.ModelId!=""&&ValidModelScores.ModelRunTimestamp!="","
["+"'"+ValidModelScores.ModelId+"'"+":"+"'"+@FormatDateTime(ValidModelScores.ModelRunTimestamp,"yyyyMMddhhmmss","","")+
"'"+"]","")
Create new set property - Set Model Details
.ModelDetailsOffer = @if(.ModelDetailsChannel != "",
@if(.ModelDetailsOffer="",.ModelDetailsChannel ,.ModelDetailsOffer+","+.ModelDetailsChannel),.ModelDetailsOffer)
.ModelDetailsOfferVariant = @if(.ModelDetailsChannel != "",
@if(.ModelDetailsOfferVariant="",.ModelDetailsChannel
,.ModelDetailsOfferVariant+","+.ModelDetailsChannel),.ModelDetailsOfferVariant)
Model use at Product Recommendation stage
Modify strategy GetDeviceRecommendationFromBDCModel
Create new set property - Set Model Details before Results page
.ModelDetailsTemp = "["+"'"+.ModelId+"'"+":"+"'"+@FormatDateTime(.ModelRunTimestamp,"yyyyMMddhhmmss","","")+"'"+"]"

Modify strategy GetListOfValidTariffsFromBDCModel
Update set property - Set Recommended Tariff Details
.ModelDetailsTemp = "["+"'"+.ModelId+"'"+":"+"'"+@FormatDateTime(.ModelRunTimestamp,"yyyyMMddhhmmss","","")+"'"+"]"

Modify strategy GetRecommendedDevice
Create Set property Reset Model Details Temp before data join - DeviceRec
.ModelDetailsTemp = ““


Create Set property Reset Model Details Temp before data join - DeviceRec
.ModelDetailsTemp = ““
Update data join - DeviceRec to get ModelDetailsTemp
Update set property - DeviceDetails
.ModelDetails = @if(.ModelDetailsTemp !="",@if(.ModelDetails="",.ModelDetailsTemp
,.ModelDetails+","+.ModelDetailsTemp),.ModelDetails)

Modify strategy GetListOfBDCandCatalogTariffsForPickNMix
Create Set property Reset Model Details Temp before data join - Join BDC Model and Active Tariffs


1121
.ModelDetailsTemp = ““
Update data join - Join BDC Model and Active Tariffs to get ModelDetailsTemp
Create set property - Set Model Details after data join - Join BDC Model and Active Tariffs
.ModelDetails = @if(.ModelDetailsTemp !="",@if(.ModelDetails="",.ModelDetailsTemp
,.ModelDetails+","+.ModelDetailsTemp),.ModelDetails)

Modify Strategy CalculateDeal
Update data join - Get Deal Details to get ModelDetails
.ModelDetails = .ModelDetails
 Add new property to IH
Modify strategy SetDefaultValuesToIHProperties
Add .ModelDetails = "N/A" in DefaultValuesforIH set property
Add .ModelDetails = @if(.ModelDetails!="",.ModelDetails,DefaultValuesforIH.ModelDetails) in SetDefaultValuesforIHIfNotPopulated set
property
Update strategies for the new field:
Update strategy - ApplyTreatmentDataToTreatments
Update data join component - All Treatments With Properties
ModelDetails
Update strategy - ApplyEventPayloadToTreatments
Update data join component - Treatments With All Properties to map the property
ModelDetails
Update Data Flow - ProcessSMSForT2S
Update following parameter to primary destination activity - Trigger PM Event
ModelDetails
Update Data Flow - GetNBA
Update following parameter to primary destination activity - Trigger PM Event


1122
ModelDetails
Update strategy - ProcessDiallerOutcomes
Update data join component - Join with Latest Interaction to map the property
ModelDetails
Update Data Flow - ProcessDiallerOutcomes
Add a convert shape to change the class to VFUK-FW-AOMFW-Data-InteractionHistoryReporting
Select “auto copy properties with identical names”
Set the below values:
.InteractionId = .pxInteractionID
.OutcomeTime = .pxOutcomeTime
.SubscriptionId = .pySubjectID
Add a dataset output for InteractionHistoryReporting


1123
NBA FW - Multiple Offers in Intent To Offer Mapping
Dependencies
Update IntentToOffer Decision Data:
Add existing SR property to form fields - Intent
Update UniqueId pyName = Generate Unique ID for Intent & OfferName combination. This will allow to configure multiple offer for the
same Intent in this decision data.
PM UI change should be discussed with PM tool team
Matt to pick up with Venkat
Update IdentifyOffersForEligibleIntents strategy:
Import the existing Substrategy IdentifyExecutionMode to get the execution mode and add the new set property SetexecutionMode. In
the set property set ExecutionMode=IdentifyExecutionMode.ExecutionMode
Connect the external input to the set property SetexecutionMode and Join the set property to the Substrategy ,
AssignIntentToOfferOrBusinessPurpose
Update AssignIntentToOfferOrBusinessPurpose strategy:
Use the “ExecutionMode” coming in from external input to filter out the offers before “JointogetOfferName“ data join to only consider the
offers which are available for the incoming “ExecutionMode”
Import the existing Substrategy ImportAllOffers and join the ImportAllOffers and External Input records by the data join “Match Offers for
Current Execution Mode“ with the condition .OfferExecutionMode=.ExecutionMode and .pyName=.pyName
Join “Intent To Offer“ to the component “Match Offers for Current Execution Mode“ by the data join, “Match Intent Offers for Current
Execution Mode“ with the condition .OfferName=.pyName and check the box for the Exclude source component results that do not
match join condition.
In the data join “Join to get Offer Name“ update the following:
Join with “Match Intent Offers for Current Execution Mode“ component
when .pyName = .Intent
 AOM-2887 Change Intent To Offer mapping so that multiple Offers can be mapped


AOM-2887 Change Intent To Offer mapping so that multiple Offers can be mapped
PM Tool Yes Decision Data population will be validated once PM changes are complete and passed testing
App No
DB No  Area Yes/No Comments


1124
Assisted Upgrade -Calculate PreS15 for Handset Customers

Update Decision Data- RangeMapping
Configure a new RangeType  from PM tool
RangeType : HandsetAmortisation

Assumption is Range Names will be configured as  Amortisation percentage , logic will extract it. (No control on UI)

Update Strategy GetCurrentTariff
Update ProductFulfilmentCode > Set IsCustomerDirect =Ture/False  according to consr_indirect_comns_partner
Source  Handset Cost Parameters
New Filter from ProductRoot FullfilmentItemCode=Handset
 Source Current HandsetBuyout cost & Current Upfront Cost from GPSL ,set BuyoutCost  &  UpFrontCost
Calculate CurrentHandsetCost
Update “TariffDetails” set component  ,If CustomerType =PaymHandset & IsCustomerDirect =True   set CurrentHansetCost =
(BuyoutCost-UpFrontCost)/CurrentTariffTenure. (BuyoutCost & UpFrontCost sources from step above as refrence  )
Update Strategy- CalculateS15MafandBand
UpdateStrategytocalculatePreS15forHansetCustomers(Direct/InDirect).361572 Calculating the Pre S15 for handset customer
PM Tool Yes  Adding new range type to Range definition
screen
PM Tool KT Documentation No
Knowledge Transfer No
App No
DB No  Area Yes/No Comments
0 30 60%
30.01 40 45%
40.01 55 40%
55.01 999 35%InitialValue FinalValue RangeName


1125
Update Strategy to calculate PreS15 for HansetCustomers (Direct/InDirect).
Still PreS15 is not  calculated for PaymLoan customer if not available from flexi
Update PreS15 calculations. PreS15 calculation will be different according to  Customer Type and Direct vs Indirect
Flexi PreS15Maf > no change to formula
AOM PreS15Maf >  no change to formula rename it AOM PreS15Maf SIMO
PreS15Maf >   rename component PreS15Maf Not available
New AOM PreS15Maf SIMO Handset Direct
PreS15Maf=(.CostExVAT-.S15TariffDiscount)-.CurrentTariffEntertainmentCost+.S15AddonCost+CurrentHandsetCost
New  AOM PreS15Maf SIMO Handset InDirect
PreS15Maf=(.CostExVAT-.S15TariffDiscount)-.CurrentTariffEntertainmentCost
Add Data import RangeMapping, filter Tange type = HandsetAmortisation
 Populated related percentage from Decision data according PreS15Maf
Set CurrentHandsetCost = PreS15Maf*(Amortisation percentage/100)
Set PreS15Maf=PreS15Maf+CurrentHandsetCost+.S15AddonCost
Update “Switch for PreS15Maf” condtion
Select Flexi PreS15Maf >Primary.SubscriptionFlexAttribute.CustomStringField207="Y" and
Primary.SubscriptionFlexAttribute.CustomNumberField208 ! empty and !0
Select AOM PreS15Maf SIMO> (Primary.SubscriptionFlexAttribute.CustomStringField207!="Y" or
Primary.SubscriptionFlexAttribute.CustomNumberField208 empty or 0 ) && ExternalInput.CustomerType="PaymSIMO"


Select AOM PreS15Maf  Handset Direct> (Primary.SubscriptionFlexAttribute.CustomStringField207!="Y" or
Primary.SubscriptionFlexAttribute.CustomNumberField208 empty or 0 ) && ExternalInput.CustomerType="PaymHandset" &&
Customer is direct customer
Select AOM PreS15Maf  Handset InDirect> (last component where PreS15Maf is set)
(Primary.SubscriptionFlexAttribute.CustomStringField207!="Y" or Primary.SubscriptionFlexAttribute.CustomNumberField208 empty
or 0 ) && ExternalInput.CustomerType="PaymHandset" && Customer is Indirect customer
else PreS15Maf Not available


1126
Assisted Upgrade- Upgrade LifeCyle Conditions

HL Requirements
Requirement is to make sure for some  cases  Logic/Commercial recommendation made from AOM increases customer S15 (in total)

New DecisionData - UpgradeLifeCyleS15RuleConfig
This Decision data will contain  where S15 Grow is required from Pre to  Post361573 Update the current S15 Threshold logic when S15 is not available for
handset361001 If the customer is in early upgrade, the tariff used in the
recommendation must be above the customer's  current  Pre S15
Net MAF
PM Tool Yes  New Screen to configure rules. (separate
ADO)
PM Tool KT Documentation No
Knowledge Transfer No
App No
DB No  Area Yes/No Comments


1127
If there is no grow condition, it will not be configured in decision data.
It will be configured in PM tool

Unique key = FromCustomerType,ToCustomerType,RecommendedDeviceStatus
Example Data:
Update Strategy -GetCurrentTariff
Calculate Customer Contract Tenure & Contract Due  in days
Source Contract Start Date/Endate from GPSL/Spines
Set Contract Tenure= Today-Contract Start Date (positive)
 Set Contract Due =Today-Contract End Date (negative if future positive if past date)
Update Strategy CalculateUpgradeDeal
InputForRecCal > Populate Contract Tenure & Contract DueFromCustomerType Text Indicating customer current
customer typePaymSIMO/PaymLoan/PaymHa
ndset
ToCustomerType Text Indicating recommended tariff
customer typePaymSIMO/PaymLoan/PaymHa
ndset
RecommendedDeviceStatus Tex
NoDevice> for scenarios where
customer moves to a Bingo plan
without device, or SIMO plan
without device
WithDevice>for scenarios where
customer moves to a Bingo plan
with  deviceNotApplicable/NoDevice/WithDe
vice
ContractEndDateFrom Integer(+/-) Range Initial value > How many
days are remaining to end of
contract. (mandatory)
ContractEndDateto Integer(+/-) Range Final value > How many
days are remaining to end of
contract.(mandatory)    Possible Values
PaymSIMO PaymSIMO NoDevice -270 -120
PaymSIMO PaymLoan NoDevice -270 -120
PaymHandset PaymLoan WithDevice -270 -120FromCustomerType ToCustomerType RecommendedDeviceSta
tusContractEndDateFrom ContractEndDateto


1128
New Strategy -CheckUpgradeLifeCyleS15Rule
This strategy is to validate
From / To  Recommended Tariff  Customer Type
Recommended device  information
Contract Due
 to check if there is a grow S15 rule .
If there is a matching rule  , existing ApplyS15 control should be applied  with threshold( making sure growth )
If there is not any Grow Rule ,flow will run as is.
Input > List of Tariffs with Recommended device information (CustomerType(current),Contract
Due(Current),RecommendedTariffCustomerType,RecommendedDeviceCode attributes populated )
Import UpgradeLifeCyleS15RuleConfig
Match  records from External Input &  Decision data according to
Current Customer Type
Recommended Customer Type
Recommended Device Availability  (if  configured as WithDevice RecommendedDeviceCode!=null , if configured with NoDevice
RecommendedDeviceCode=null)
Contract Due
For matching records
Set GrowS15=True
Means logic needs to make sure recommended tariff will grow the S15 (considering discount +addons test)
Override SkipS15 =False  (So T1/T2/T3 logic will return all tariffs, but ApplyS15 Control makes sure the grow)
For not matching records no action- return records.
Logic Recommendation Changes
HL Updates :


1129

Update Strategy-GetRecommendedTariff
Add Sub strategy call “CheckUpgradeLifeCyleS15Rule“  after “Check SkipS15Threshold” component.

Update Strategy -ApplyS15Check
Logic needs to make sure if any matching Upgrade Life Cycle rule available  , customer post S15 need to grow
Add a filter condition after “S15Details” set Component (Check Grow)
If GrowS15=True select only records DeltaS15Maf>=0 else return all records.
The remaining flow will run as is
Update -Higher Data than Rec1 (T4Logic)
Logic needs to make sure if any matching Upgrade Life Cycle rule available , customer post S15 need to grow for deals selected fro T4
logic.
Make Sub strategy call to CheckUpgradeLifeCyleS15Rule after “Skip S15Threshold” Components


1130
Commercial Recommendation Changes


1131

Update Strategy-IdentifyCommercialRecommendations
Logic needs to make sure if any matching Upgrade Life Cycle rule available , customer post S15 need to grow for selected commercial
recommendation.
Update “Group By Rec ID”  (To populate attributes needed CheckUpgradeLifeCyleS15Rule, which are available in different rows )
Set RecommendatedDeviceCode = Max RecommendatedDeviceCode
Set RecommendedTariffCustomerType =Max RecommendedTariffCustomerType
Update Set Weight
Set DeltaS15Maf=.PostS15Maf-.PreS15Maf
Make Sub Strategy call to CheckUpgradeLifeCyleS15Rule
Add a filter condition ( Check Grow)
If GrowS15=True select only records DeltaS15Maf>=0 else return all records.
Make sure DeltaS15Maf  is populated to main math.


1132
Assisted Upgrade - Get Product List

Impact in Other areas

Dependencies

A. New Data Flow - PrepareDataForProductList
This data flow will be created in Subscription class.
Source - Abstract (calling activity will populate the Subscription (Primary) page similar to GetRecommendation API call with all relevant data
for ProductList API)342836 UI to select Tariff from the edit icon
359889 Edit Offer: Device Tab Ordering
360009 Edit Offer: Tariff Tab Ordering
361562 Edit Tariff - Tariff MAF rules in Early Upgrade
360658 Selected Deal: Loan Lending Principles in the Device Tab341014 Display edit recommendation screen
PM Tool No
PM Tool KT Documentation No
Knowledge Transfer No
App Yes New Data  Sellable handset data page
with all attributes needed in output
(configureable)

Configure D_EligibleTariffsForDept
with all attributes needed in output for
Tariff
DB No  Area Yes/No Comments
PM Tool No
App No
DB No  Area Yes/No Comments


1133
Destination - GetRecommendationFromBDC DF
B. New Data Flow - GetProductList
This data flow will be created in Subscription class.
Source - PrepareDataForProductList DF
Strategy - GetProductList (detailed below)
Destination - Abstract
C. New Strategy - GetProductList
This strategy will be created in Subscription class.
C1. If Primary.Context(ProducType) = “Handset” (check with ignore case), call sub-strategy GetDeviceList (detailed below)
C2. Else, if Primary.Context(ProducType) = “Tariff” (check with ignore case), call sub-strategy GetTariffList (detailed below)
C3. Else, return nothing

D. New Strategy - GetDeviceList
This strategy will be created in Subscription class.


1134

The design above assumes that all sellable Handsets from Product Catalogue will be sourced within the Strategy FW using a new
Data Page from App team (a combination of D_SellablePayMHandsetIds & D_PayMHandset).
However, this approach will load around 1800 handsets in the strategy canvas and may have performance impact. The reason of
1800 record is Endate of handset data is not configured correct. VF is working on this area to make sure Endate of only active
records are configured as future date.
D1. Call sub-strategy - CheckHandsetLoanEligibity and -
if Customer is eligible for handset loan, execute steps D2 onwards,
else do nothing and return
D2. Get all device recommendations from BDC by calling sub-strategy - GetDeviceRecommendationFromBDCModel   (changes to this
strategy is detailed below)
D3. Check if the basket (from Product List API Request - class/page name TBD) contains a handset -
LineItem.ProductLine = “Device”
D4. If yes to D3, mark the Handset as Position 0 in Device List
D5. Check if the Handset in basket is in the Handset Recommendations from BDC
D6. If yes to D5, remove the Handset in basket from Handset Recommendations from BDC and order the remaining by RecRank
(ascending) and tag them as “Recommended” (including the Handset in basket)
D7. If no to D5, select  Handset Recommendations from BDC and order by RecRank (ascending) and  tag them as “Recommended”
(excluding the Handset in basket)


(excluding the Handset in basket)
D8. If no to D3, select  Handset Recommendations from BDC and order by RecRank (ascending) and mark the handsets as   tag them as
“Recommended”

D9. Get All sellable handsets from Product catalogue (D_SellablePayMHandsets )
D10. Match handsets with sellable handsets from Product catalogue and get all required handset information  (exclude the ones not in PC
list)
D11. Select Top 5 device from  list.
D12. Match sellable handsets with all recommended handsets from BDC and  tag them as “Recommended”
D13. Mark the sellable handsets as Position 6 onwards ordering by HandsetModel alphabetically


1135
D14. Call sub-strategy PopulateOutputPropertiesForDevice ((changes to this strategy is detailed below) ) for all handsets to prepare output
SR pages as per ProductList API Response requirements

E. Update Strategy- GetDeviceRecommendationFromBDCModel
Remove Top1 selection
F. Update Strategy-GetRecommendedDevice
Select top1 record from output of GetDeviceRecommendationFromBDCModel

F. New Strategy - PopulateOutputPropertiesForDevice
Most of the attributes should be avalyaibe before this strategy. (populated from PC).
Some atributes needs formating or calculation should be set here.
F1. For Position 1-5 handsets, call sub-strategy GetStockDetails to get stock information
G. New Strategy - GetTariffList
This strategy will be created in Subscription class. ProductId ProductId SKU of Handset
ProductType ProductRecommendationType Handset
Classification Classification EMPTY
PriceIncludingVAT CostIncludingVAT HandsetLoanPrice of the handset
PriceExcludingVAT CostExVAT Calculate accordng to HandsetLoanPrice -
(HandsetLoanPrice * Vat code) of device
VATAmount VATAmount CostIncludingVAT-CostExVAT
PriceType PriceType Set as TOTAL_COST
DisplayName DisplayName Set as ProductName
ProductName Should be avabile before this
strategySpec Attribute SR Attribute Details


1136

G1. Get all tariff recommendations from BDC by calling sub-strategy - GetListOfValidTariffsFromBDCModel
G2. Get tariff details from basket (from Product List API Request - class/page name TBD)
LineItem.ProductLine = “Tariff” .
G3. Mark the Tariff as Position 0 in Device List
G4. Check if the Tariff in basket is in the  Tariff Recommendations from BDC
G5. If yes to G4, remove the Tariff in basket from  Tariff Recommendations from BDC and order the remaining by RecRank (ascending) and
mark the Tariff as  as “Recommended” (including the Tariff in basket)
G6. If no to G4, select  Tariff Recommendations from BDC and order by RecRank (ascending) and mark the Tariff  as “Recommended”
(excluding the Tariff in basket)
G7. Check if the basket (from Product List API Request - class/page name TBD) contains a handset -
LineItem.ProductLine = “Device”
G8. If yes to G7,  . select the Tariffs with SIMOnly = N and Segment = Loan  and MBBFlag =N  (Handset Tariffs)
G9. If no to G7 and CREType="NORMALSIMOFLEX" OR CREType="NORMAL”, Select both SIMonly tariffs & handset tariffs.  (SIMOnly =
N and Segment = Loan  and MBBFlag =N) or (SIMOnly = Y and Segment = CBU  and MBBFlag =N) .  if CRE type condition not match, do
not return record.


not return record.
G10. Make sub strategy  call to GetListofActiveTariffs to get list of eligible tariffs for department. (according to criteria G8 /G9) (Update to
GetListofActiveTariffs detailed in below)
G11. If handset available  in the basked make sub strategy call EvaluateTariffToHandsetCompatibility, else skip.
G12. For tariffs from Product catalogue , call sub-strategy ApplyTariffMAFRules (detailed below) and get the tariffs which satisfies MAF
Rules (Higher or Equal Post S15 MAF)
G13. Mark the tariffs that satisfied  MAF Rules as Position 6 onwards ordering by Tenure (Highest to lowest), Package Band  (Highest to
lowest) (Band values contains Gold,Silver,Bronze , Gold is highest  bronze is lowest) , Price (Highest to lowest)
G14. Match Recommended handsets + basket  with tariffs from Eligible Product catalogue + compatible wit handset + S15 rules satisfied
and get all required tariff information, exclude the ones not eligible from recommendation list. (for top 5 list flow)
G15. Call sub-strategy PopulateOutputPropertiesForTariff ((details of this strategy is avaliable below) ) for all tariffs to prepare output SR
pages as per ProductList API Response requirements


1137

H. Update Strategy - GetListofActiveTariffs
Update strategy to populate tariff attributes from D_EligibleTariffsForDept (not from Tariff data page, configure D_EligibleTariffsForDept
according to  attributes  populated currently  )
Update logic to cover Tenure filter. This strategy is sued both for Logic rec & Tariff list. Logic rec. filter tariffs with specific tenure but tariff
list require all tariffs. Tenure filter should work only if ExternalInput. RecommendedTenure 1=””/0.

I. New Strategy - ApplyTariffMAFRules

I1. For all input Tariffs, do following -
I2. Call sub-strategy - IdentifyAutoAddedDiscount to check if the tariff has any auto-added discounts (to be used for Post S15 MAF
calculation)
I3. Call sub-strategy - IdentifyAutoAddedAddOn to check if the tariff has any auto-added discounts (to be used for Post S15 MAF
calculation)
I4. Call sub-strategy CheckLifeCycleUpgradeConditions
This step will refer to the output of GetCurrentTariff for CustomerType, ContratTenure,ContractDue
This step will refer to basket to populate RecommnedenHansetCode if handset available in basket.
I5. Calculate Post S15 MAF
PostS15 = .RecommendedTariffMafExVaT- (if HasAutoAddedDiscount=true AutoAddedDiscountCostExVat else 0)- (if Recommended
Tariff Group contains Entertainment Entertainment cost else 0 ) + (if HasAutoAddedAddon=true AutoAddedAddonCostExVat else 0)
I6. From output of I4, check if Grow S15 =True


I6. From output of I4, check if Grow S15 =True
check if Post S15 MAF (for the tariff) > =Pre S15 MAF (of customer sourced from GetCurrentTariff )
return only tariffs satisfies condtion.
I7. If No to I4, return the tariff as-is

J. New Strategy - PopulateOutputPropertiesForTariff


1138
Most of the attributes should be avalyaibe before this strategy. (populated from PC).
Some atributes needs formating or calculation should be set here.
For all tariffs, do following
Populate Item attributes represent the tariff
ResponseType=Item
Index=RankPosition  ( will be used to relate items & child items)

ProductID ProductCode No action > populated in
GetListofActiveTariffs
ProductName ProductName RecommendedTariffName is populated
with in GetListofActiveTariffs , Set
ProductName=RecommendedTariffName
ProductType ProductRecommendationType Set as “Tariff”
PriceIncludingVAT CostIncludingVAT RecommendedTariffMAF is populated with
in GetListofActiveTariffs
set
CostIncludingVAT=RecommendedTariffMA
F
PriceExcludingVAT CostExVAT RecommendedTariffMafExVaT is populated
with in GetListofActiveTariffs
set
CostExVAT=RecommendedTariffMafExVaT
VATAmount VATAmount Set VATAmount= CostIncludingVAT-
CostExVAT
PriceType PriceType Set as MONTHLY_RECURRING_COST
DisplayName DisplayName Set as ProductName
ProductName
Data Data RecommendedTariffData is populated with
in GetListofActiveTariffs
Set Data = RecommendedTariffData
Tenure Duration RecommendedTenure is populated with in
GetListofActiveTariffs
Set Duration=RecommendedTenure
S15PostMAFDelta DeltaS15Maf PostS15MAf-PreS15Maf
Entertainment EntertainmentFlag If RecommendedTariffGroup contains
entertainment set as true else falseSpec Attribute SR Attribute Action in
PopulateOutputPropertiesForTariff


1139

if HasAutoAddedDiscount =true ,Call sub-strategy - GetAutoAddedDiscountListDetails > Populate child items for each row
 if HasAutoAddedAddon =true Call sub-strategy - GetAutoAddedAddOnListDetails Populate child items for each row
Populate ChildItem attributes for auto added products. (most of them set with in
GetAutoAddedDiscountListDetails/GetAutoAddedAddOnListDetails)
ResponseType=ChildItem
Index=Position (coming from Tariff data)
ParentProductID= RecommendedTariffCode

Speck reference
Out of Scope Items for 2.5
VF Together indicator for Tariff
Roaming indicator for tariff
 (RecommendedTariffGroup is populated
with in GetListofActiveTariffs  )
Classification Classification AUTO-ADD
VATAmount VATAmount CostIncludingVAT-CostExVAT
PriceType PriceType Set as MONTHLY_RECURRING_COST for
Addons
DISCOUNT for discounts
DisplayName DisplayName Set as ProductName
ProductName Should be avabile before this
strategyProductType ProductRecommendationType Addon/Discount
GetProductList …
30 Apr 2021, 06:21 AM.1.xlsx


1140
Assisted Upgrade-GetRecommendation API Integration
HL Requirement
Currently assisted logic is triggered with a test harness
Solution is changing to be triggered with a service. Which will require logic to populate outputs according to service spec.
Also existing realtime customer data preparation logic need to changes, because service trigger will pass all customer data through
subscription object, logic only needs to attached some of the spines not included in.
Subscription data will be prepared by related activity , combining customer spines + GPSL data.

Prepare Data Changes
New DF - PrepareDataForGetReccomendation
Input =Subscription (Abstract)
InteractionHistoryList > populate for for  Owner Account &  subscription InteractionHistory
TealiumAggregatedEvents> populate from   TealiumAggregatedEvents for subscription
CustomerAggregatedEvents>populate from CustomerAggregatedEvents for subscription
Destination GetRecommendationFromBDC DF
New DF -IdentifyCustomerIntentsForGetReccomendation
source  PrepareDataForGetReccomendation
Make call to EvaluateCustomerIntents
Destination is Subscription (Abstract)
Update DF -GetAssistedUpgrade
Update Source to IdentifyCustomerIntentsForGetReccomendation
Update on ProductRoot
HL Requirement
GPSL service will be providing multiple RootProducts. Logic needs to access to related root product type when querying data.PM Tool No
PM Tool KT Documentation No
Knowledge Transfer No
App Yes  New API
DB No  Area Yes/No Comments


1141

Strategies listed below import Primary.ProductRoot to get tariff data or list of child product of Tariff (like addons etc)
Previously the only PricePlan from GPSL was populated to Primary.ProductRoot, but with latest changes Multiple root products will be
populated.
FulfilmentItemCode has the indicator of what is the type of root product is listed.
Possible Values :
Fixed Line
Mobile Service
Fixed Broadband Service
Fixed Service
Mobile Broadband Service
Handset
Insurance
GetProductChild Rename Strategy as
GetProductChildsForTariff (retire old one)
Filter record from
FulfilmentItemCode=Mobile Service
Update all strategies make reference to
GetProductChild with new name.Assisted
CalculateCustomerDiscountFlag Filter record from ProductRoot
FulfilmentItemCode=Mobile ServiceAssisted
CalculateLatestMonthlyCost Filter record from ProductRoot
FulfilmentItemCode=Mobile ServiceNotAssisted
EvaluateCohortByContractDate Import ProductRoot
Filter record from ProductRoot
FulfilmentItemCode=Mobile Service
Populate contract date
Update Reset Start Date Times &Reset End
Date Times use this information.Assisted
EvaluateCohortByTariff Import ProductRoot
Filter record from ProductRoot
FulfilmentItemCode=Mobile Service
Set CurrentTariffCode for this information.Assisted
GetCurrentTariff Filter record from ProductRoot
FulfilmentItemCode=Mobile ServiceAssisted
GlobalRules1 Filter record from ProductRoot
FulfilmentItemCode=Mobile ServiceNotAssisted
IdentifyEligibileHBBOffers Filter record from ProductRoot
FulfilmentItemCode=Mobile ServiceNotAssistedImpacted Strategy


1142

Update On Input Parameters
Input parameters still will be provided by context.
But some of the context parameter names have changed, logic needs to consume data from new names.
There are some new additional attributes, not used by logic yetRetentionRules Filter record from ProductRoot
FulfilmentItemCode=Mobile ServiceNotAssisted
SubscriptionId String Mandatory
AgentId String Mandatory
Division String Mandatory Renamed
ParentDivision String Optional Not used
ParentPosition String Optional Not used
StoreId String Optional
Channel String Mandatory
OrderType String Mandatory Not used
OrderId String Optional Not used
CaseId String Mandatory
DealId String Optional Not used
LoanEligibilityStatus String Optional
MaxOpenLoans Number Optional Not used
OpenLoans Number Optional Not used
ProblemLoans Number Optional Not used
ConcurrentLoans Number Optional Not used
ConcurrentServiceLoans Number Optional Not used
PrimaryContext String Mandatory
SecondaryContext String Mandatory
HandsetManufacturer String Optional Not used
HandsetModel String Optional Not used
Has5G Boolean Optional Not used
TariffTenure Boolean Optional
SIMO Boolean Optional
Entertainment Boolean Optional  OwnerAccountNumber String Mandatory Not used


1143

*New  >Mid Sprint Candidate
With new api structure , CRE attributes will not come as context attributes anymore
Logic currently consume RetentionEligibilityType attribute from Context.
 Listed strategies in below nee update to source RetentionEligibilityType from Subscrition.RetentionEligibility.Type insted of
Subscription.Context

New Attributes to Populate
Update Strategy-GetHandsetLoanDetails
Populate listed handset/loan details
BenefitProduct=benefit_outright
BenefitAdvt=benefit_advt
DefaultUpFrontCost=MinUpfrontCost
CostIncVat=HandsetLoanPrice
Calculate CostExVAT according to HandsetLoanPrice  & VatCode
Manufacturer
Update Strategy -GetStockDetails
Set StockLocation from output of GetStockAvailability
Update Strategy-PickBestPathway
Set PathwayMessageNearlyNew Boolean Optional Not used
Unlimited Boolean Optional
GetRecommendedDevice
GetTariffList
PickBestPathway
Retention Rules 3Impacted Strategies
337321 Display device upfront and tenure for HS
337052 Display Tariff Benefits

338121 Display enrichment icon for Recommended package356105 On click of device benefits display message