2120
GPL-Assisted Second Line Private Pricing: Entertainment in AOM response to
indicate if a product/tariff is content enabled.

Impact in Other areas
Dependencies
Logic Changes:
Update Strategy GetAllTariffs:
Set .EntertainmentFlag=@if(.EntertainmentFlag,true,false) in existing set property,“Set Tariff Details“
Map property .EntertainmentFlag=.EntertainmentFlag in the existing data join called, “Join Offers with DataSIMO tariffs“
Map property .EntertainmentFlag=.EntertainmentFlag in the existing data join called, “Join Offers with SIMO tariffs“
Map property .EntertainmentFlag=.EntertainmentFlag in the existing data join called, “Join Offers with non SIMO eligible tariffs“

Update strategy GetEligibleTariffsForSKU:
Note:  It has dependency wiht app team. App team will populate EntertainmentFlag in the D_EligibleTariffsForHandset data page.
Set .EntertainmentFlag=@if(.EntertainmentFlag,true,false) in existing set property,“Set Tariff Details“
Map property .EntertainmentFlag=.EntertainmentFlag in the existing data join called, “Join Eligible Tariff Data“
Note: Make EntertainmentFlag is populated in gpl end to end test
Note: App will assign .EntertainmentFlag to .Entertainment

 1323312 To send correct value in AOM response to indicate if a
product/tariff is content enabled.
PM Tool No
PM Tool KT Documentation No
Knowledge Transfer No
App Yes
DB No  Area Yes/No Comments
PM Tool No
App Yes
DB No  Area Yes/No Comments


2122
GPL Assisted Second Line- To send relevant values for unlimited data, SMS and
Voice plans in AOM response

Impact in Other areas
Dependencies
Logic Changes:
Logic Changes:
Update Strategy GetAllTariffs:
In data import, "EligibleTariffs" map .Texts=.SMS
In data import, "EligibleTariffs" map .RecommendedMinutes=.Minute
Map property .Texts=.Texts in the existing Data Join called, "Join Offers with DataSIMO tariffs"
Map property .Texts=.Texts in the existing Data Join called, "Join Offers with SIMO tariffs"
Map property .Texts=.Texts in the existing Data Join called, "Join Offers with non SIMO eligible tariffs"
Map property .RecommendedMinutes=.RecommendedMinutes in the existing Data Join called, "Join Offers with DataSIMO tariffs"
Map property .RecommendedMinutes=.RecommendedMinutes in the existing Data Join called, "Join Offers with SIMO tariffs"
Map property .RecommendedMinutes=.RecommendedMinutes in the existing Data Join called, "Join Offers with non SIMO eligible
tariffs"
Update Strategy GetEligibleTariffsForSKU:
In data import called "EligibleTariffsforHandset" map .Texts=.SMS
Map property .Texts=.Texts in the existing Data Join called, "Join Eligible Tariff Data"
Map property .RecommendedMinutes=.RecommendedMinutes in the existing Data Join called, "Join Eligible Tariff Data"1323217 To send relevant values for unlimited data, SMS and
Voice plans in AOM response
PM Tool No
PM Tool KT Documentation No
Knowledge Transfer No
App Yes
DB No  Area Yes/No Comments
PM Tool No
App Yes
DB No  Area Yes/No Comments


2123
Update Strategy PopulateOutputPropertiesForAdditionalLine:
Note: As per changes for Data, Voice and Minutes done in acceptance criteria on 16th May 2023 below conditions modified
In set property called "Item", set .Data = @if(.RecommendedTariffData=9437184,"Unlimited",""+.RecommendedTariffData)
In set property called "Item", set .Minutes = @if(.RecommendedMinutes=999999999,"Unlimited",""+.RecommendedMinutes)
In set property called "Item", set .Texts = @if(.Texts=999999999,"Unlimited",""+.Texts)
Note: There is a dependency on the app team. The app team must map data, minutes and SR property texts to SMS at the application
layer.
Note: Property Texts of type Integer saved as to AOMFW-Artifacts:01-09-01 and marked as Withdrawn. Property Texts of type Text created
in AOMFW-Artifacts:01-13-01


2124
GPL Assisted Second Line: To send short tariff name in AOM response call

Impact in Other areas
Dependencies

Logic Changes:
Update Strategy GetAllTariffs:
Create SR property ShortName of type Text
In data import, "EligibleTariffs" map .ShortName=.ProductAttributes(ShortName)
Map property .ShortName=.ShortName in the existing data join called, "Join Offers with DataSIMO tariffs"
Map property .ShortName=.ShortName in the existing data join called, "Join Offers with SIMO tariffs"
Map property .ShortName=.ShortName in the existing data join called, "Join Offers with non SIMO eligible tariffs"
Update Strategy GetEligibleTariffsForSKU:
In data import called "EligibleTariffsforHandset" .ShortName=.ProductAttributes(ShortName)
Map property .ShortName=.ShortName in the existing data join called, "Join Eligible Tariff Data"
Update Strategy PopulateOutputPropertiesForAdditionalLine:
In set property called "Item", update DisplayName property
Update .DisplayName = @if(.ShortName!="",.ShortName,.RecommendedTariffName) 1323155 To send short tariff name in AOM response call
PM Tool Yes
PM Tool KT Documentation No
Knowledge Transfer No
App Yes
DB No  Area Yes/No Comments
PM Tool Yes
App Yes
DB No  Area Yes/No Comments


2125
GPL-To send missing qualifying criteria and rewards data attributes in the offer
block in AOM response

Impact in Other areas
Dependencies
Logic Changes:
Update Strategy GetEligibleVFTogetherOffersForSecondLine
Create SubscriptionStatus property of type Text in VFUK-AOMFW-SR class
SubscriptionType and ServiceNumber are already exists in VFUK-AOMFW-SR class
Note: Check with app team if  ServiceNumber, SubscriptionStatus and SubscriptionType are passed in Data Page
Map properties .SubscriptionType=.SubscriptionType, .ServiceNumber=.ServiceNumber and .SubscriptionStatus=.SubscriptionStatus in
the existing Data Join called "Match VF Together Offer Details"
Update Strategy SetOutputPropertiesForVFTRewardData
Create RewardSubType of type Text in VFUK-AOMFW-SR class
RewardsValue already exists in VFUK-AOMFW-SR class
Note: Property RewardType of type TrueFalse saved as to AOMFW-Artifacts:01-11-01 and marked as Withdrawn. Property RewardType of
type Text created in AOMFW-Artifacts:01-13-01
Note: Check with app team if RewardsSubType, RewardsValue and RewardType are passed in Data Page
Map properties .RewardSubType =.RewardSubType, .RewardsValue =.RewardsValue and .RewardType =.RewardType in the existing
Data Join called "Map Output properties from Reward"
Map .RewardSubType = .RewardsSubType in "Eligible Rewards" Data Import1323389 To send correct value in AOM response to indicate if a
product/tariff is content enabled.
PM Tool No
PM Tool KT Documentation No
Knowledge Transfer No
App Yes
DB No  Area Yes/No Comments
PM Tool No
App Yes
DB No  Area Yes/No Comments


2127
Upgrades - MBB Connected Tablet
HL Requirement
Business want to Ensure that Tablet Connectivity Plan Upgrade path is blocked in VADR

Introduce new product attributes.
As part of the new implementation, we will refer to plans with plan type (Unique name for the type e.g. Basic Plans) along with product level
band and plan band.
1. Recommendation Flow:
 Update the strategy CalculateUpgradeDeal, we will get the current tariff code from get the current tariff strategy.
add a new filter for recommendation flow  to allow journey only
if current tariff is not  IsConnectedTabletPlan
Get new product attributes from Tariff data page in get current tariff strategy.
 1252830Ensure that Connected Tablet Journey is blocked in VADR
Logic Yes  Logic update to include exclusion for few
discount codes.
PM Tool No  Team Task Comments
IsConnectedTabl
etPlanBoolean to identify the
planSingle Value false Tariff TrueName Type Description  Single/Multiple Default Product Type Sample Lovs


2128
Note:with this implementation we are avoiding upgrades for tablet connectivity plans in recommendation flow. we have to test to
get recommendations for normal  plans.
2.Recommendation Flow:

Update strategy Get tariff list
Apply the same logic in this strategy for  GPL flow.
add a new filter for  flow  to allow journey only
if the current tariff is not IsConnectedTabletPlan

Note:with this implementation we are not showing any tariffs in the tariff tab  for one number plans in  flow. we have to test to get
tariffs for normal  plans.
Test cases to verify:
since no recommendation
-agent shouldn’t be able to edit the deal.
Creating new recommendation
-device tab load with all devices.
-tariff tab should not load with tariffs.
-all other tabs should be functional AsIs
-since we can’t add any tariff to the basket.  the agent should not be able to save and close.


2129
Upgrades - S15 NET MAF value in Cohorts Screen
HL Requirement
Business want to Ensure to handle multiple values for PaymSIMOPreS15MafBand/PaymHansetPreS15MafBand properties in the
Cohorts screen.
1. Upgrades  Flow:
Upgrades Strategy EvaluateCohortByPreS15Maf
Update condition in  SetEligible set properly
OLD condition
(
((.PaymSIMOPreS15MafBand=GetCurrentTariff.RangeId||.PaymSIMOPreS15MafBand="")&&
(GetCurrentTariff.CustomerType="PaymSIMO"||GetCurrentTariff.CustomerType="MBBSIMO"))
||
((.PaymHansetPreS15MafBand=GetCurrentTariff.RangeId||.PaymHansetPreS15MafBand="")&&
(GetCurrentTariff.CustomerType!="PaymSIMO"||GetCurrentTariff.CustomerType!="MBBSIMO"))
)?"True":"False"
 Now PaymSIMOPreS15MafBand/PaymHansetPreS15MafBand value from DD will get multiple values DD CustomerCohorts.

The updated condition will be like using DoesStringExistsInList  function
PaymSIMOPreS15MafBand is list of values.
GetCurrentTariff.RangeId range id value will be single one.
test the below condition, verify the results how it is behaving.
(
((@DoesStringExistsInList(.GetCurrentTariff.RangeId,PaymHansetPreS15MafBand ||.PaymSIMOPreS15MafBand="")&&
(GetCurrentTariff.CustomerType="PaymSIMO"||GetCurrentTariff.CustomerType="MBBSIMO"))
||


||
((@DoesStringExistsInList(.GetCurrentTariff.RangeId,PaymHansetPreS15MafBand ||.PaymHansetPreS15MafBand="")&&
(GetCurrentTariff.CustomerType!="PaymSIMO"||GetCurrentTariff.CustomerType!="MBBSIMO"))
)?"True":"False"

 1315631Usage of S15 NET MAF value in Cohorts Screen
Logic Yes  Logic update to include
PM Tool Yes pm tool screen will alow multiple values.Team Task Comments


2130
Upgrades - Exclude Unlimited Lite Plans
HL Requirement
Business wants to list out Unlimited Lite Plan should be excluded from Logic Recommendation and it should not be recommended
anymore because this kind of plan is going to be the end of life due to slow speed.
 Configurations in PM Tool
Product Attributes
1. Recommendation flow:

Update Strategy GetListofActiveTariffs
We have to avoid recommending unlimited lite plans only in the logic recommendation flow.
Map the new product attribute in the Data Import to make use in the strategy.
create a new filter Skip Unlimited Lite before the eligible tariff group filter.
Check if IsUnlimitedLite is not True, if yes allow the plan to proceed else don't allow it.
 1203032 AU -Exclude Unlimited Lite Plan from Logic Recommendation
Logic Yes  Logic update - exclusion for plan codes in
logic recommendation.
PM Tool Yes   Pm tool config is required in business Meta
data config screen to manage unilimted lite
plans.Team Task Comments
IsUnlimitedLite Boolean To flag unlimited
lite plansSingle Value False Tariff True Name Type Description  Single/Multiple Default Product Type Sample Value


2131

Note:There are no specific logic changes required for the logic in the GPL and commercial recommendation flow journey So, all of
the Combinations with the new configuration should be dev-tested.
Unit test cases:
the logic recommendation should not give Unl.lite plans
the commercial recommendation should not give Unl.lite plans
GPl flow should  get Unl.lite plans


2132
Upgrades -HomeBroadBand Eligibility Rules

Impact in Other areas
HL Requirement
Logic Changes
A. Introduce new product attributes.1263556
B.Campaign Config Data
C. HBB Subscription Lifecycle Band 1263568 (pm tool config needed)
D. Eligibility Rules 1255725
E. remove PackageRankForProductBand DD (1263777)
F. 1266137: Additional Logic triage values
Impact in Other areas
HL Requirement
Business wants to Introduce New HBB Matrix with new eligibility rules.
So, all the HBB Jouneys which are supported are replaced with new rules. and new matrix will be configured as part of this
implementation.
HBB implementation is within GetProductlist API.
Logic Changes
A. Introduce new product attributes.1263556
As part of the new implementation, we will refer to plans with plan type (Unique name for the type e.g. Basic Plans) along with product level
band and plan band.1263556 Digital HBB: Create Plan Types
1263568 Digital HBB: Create Discount Customer Life Cycle Band
1263771 HBB Upgrades: Being able to manage the HBB Eligibility configuration, Discount configuration and plan order
configuration at channel level
1266137 HBB Upgrades: Update the logic Triage fields to include new errors
  1255725 Digital HBB: Update the HBB Eligibility
App/UI No
logic Yes Updating the HBB Logic to support new Eligibility rules and matirx.
PM Tool Yes  changes will be needed to support new HBB Configuration.Area Yes/No Comments


2133

B.Campaign Config Data
In order to support the capability to identify whether the subscription is within a certain campaign type a new configuration for
campaigns needs to be managed. This will be used to determine what campaign type an upgrading subscription is in and allocate the
appropriate discount/churn value etc, Initially, only the 'winback' and 'fault' campaigns will be included in this configuration.
Create a new decision table GetCampaignDetails with below config.

Campaign Name - Unique name for the type - which we need to return based on campaign code and cell code.
 Campaign Code - The unique campaign code for the outbound campaign - this is a mandatory field.
Campaign Cell Code Prefix - The cell code prefix for the campaign - this is an optional field.
Churnoverride: business provided data where they can choose to override churn for this campaign value in priority calculation.

Initial configuration as below
set target property ChurnOverRide and value as Y for now both win back and fault(outcome).
need to set churn override in the results tab based outcome of the decision table. PlanType Text Unique name for
the typeSingle Value empty Tariff Basic , Pro, Pro II
, Default
HBB Plan Group
- Text This is the plan
group that a HBB
plan belongs to Single Value empty Tariff Fibre 1Name Type Description  Single/Multiple Default Product Type Sample Lovs
TMR5991 4 Winback
TMR5992 5 FaultIf Campaign Code If Campaign Cell Code Prefix  return Campaign Name


2134
The above configuration needs to use to derive the campaign Type which is the campaign name
update strategy GetCurrentPlanDetails
get the active tariffs from the unica campaign and derive the campaign type by checking
when campaign code and cell code from unica campaign is matched with data from DD.
-get the campaign type from the campaign name
we have  .IsHBBProRetPlan which will tell us if the campaign is active.
these two values will be used in Discount and Prioritization logic.

C. HBB Subscription Lifecycle Band 1263568 (pm tool config needed)
An update to HBB life cycle  configuration needs to be delivered to be able to set bands that can be used within the discount and priority
configuration and AOM HBB logic.
 The following data must be able to be configured for each band - all fields are mandatory.
we will be using old Range mapping DD
Band Number - Unique auto-generated number for the band to be used in discount and priority configurations.
Band Type - This is the type of subscription lifecycle band and determines which configurations are used in the AOM logic processing i.e.
Discount or Priority.
Band Name - Name of the band e.g. Greater than 6 months left on contract - for display and user purposes only.
Lower Band Limit - The number of days from the contract end date that denotes the lower limit of the band. This can be a negative
number (before the contract end date), a positive number (post-contract end date) or zero (the end of contract date).
Upper Band Limit - The number of days from the contract end date that denotes the upper limit of the band. This can be a negative
number (before the contract end date), a positive number (post-contract end date) or zero (the end of contract date).


The range mapping dd for HBB Life Cycle will be  like the below:
1 Priority In-Life -10000 -270BandID Description (Bandtype)Range Name
(BandName)start value
(LowerBandLimit)end value
(UpperBandLimit)


2135
D. Eligibility Rules 1255725
New  strategy HBBUniversalInclusionRules
rule1: if the current product holding plan type(prod attr) is pro then he can upgrade only  to pro plan types
rule2: if the current product holding plan type is Basic, then upgrade only to plan type pro2
Rule3: if the current and recommended plan type is the same then a speed upgrade is possible(Product level band)
Rule4: Customer can move to anything as long as their lifecycle band is out of contract
new strategy HBBUniversalExclusionRules
Rule1:if the current product holding plan type is Basic, do not upgrade the plan type to pro.
Rule2: Pro customers can only move to the Pro II plan when they are out of contract
Rule3: if the current plan band and product level band is the same as recommended plan band and recommended product level band
upgrade should happen only when life cycle is last 6 months.

Update EligibleHBBPlans DDs with new exceptional eligibility rules.
<TBC by Tasneem team in opti stage> Only configuration needed.
Update to this DD
include current plan type and recommended plan type, channel to this DD. The configuration will support exceptional cases when a
channel, from/to product level band, and plan bands are matched with DD attributes.
update Strategy GetEligibleHBBPlans
call newly created strategies in this GetEligibleHBBPlans strategy.
delete UniversalRuleforSpeedDowngrade and UniversalRuleforAllandLateralRenewal strategies
add newly created strategies HBBUniversalExclusionRules and HBBUniversalInclusionRules. 2 Priority EndofContract -269 -1
3 Priority OutofContract 0 10000
4 Discount In-Life -10000 -270
5 Discount EOC 9-6 -269 -180


4 Discount In-Life -10000 -270
5 Discount EOC 9-6 -269 -180
6 Discount EOC6-3 -179 -90
7 Discount EOC 3-0 -89 -1
8 Discount OutofContract 0 1000
9 Eligibility EndofContract -269 -1
10 Eligibility OutofContract 0 10000


2136

Update Strategy GetListOfEligibleHBBTariff
1. Remove the logic using the package ranking concept, Remove the DD related to package rank.
2. update the condition in data join check with.CurrentHBBLifeCycleBand instead of .IsOutofContract.
the new condition will be like .CurrentHBBLifeCycleBand = .HBBLifeCycleBand

E. remove PackageRankForProductBand DD (1263777)
in GetCurrentPlanDetails


2137
in GetListofEligibleHBBTariff

remove mapping CurrentPackageRank in all references
-SetCurrentPlanDetails

F. 1266137: Additional Logic triage values
We have to set the Logic triage attribute for HBB flow in different stages.
Update strategy GetCurrentPlanDetails Set LogicTriageAttribute as and when
  Upgrading Subscriber in Campaign (USIC) - this logic triage code captures that the upgrading subscriber was part of a campaign
impacting the discount selection and priority ordering
LogicTriageAttribute = if .CampaignCode!=””  then set USIC else ““.
·         Current Plan Type Not Found (CPTNF) - this logic triage code captures that the current plan type was not found and will inform
why the value tier the discount was set to zero.
LogicTriageAttribute = if ..CurrentPlanType=””  then set CPTNF else ““.
Update strategy GetRankForHBB Set LogicTriageAttribute as and when
·         Hero Plan 1 Not Found (HP1NF) - this logic triage code captures that the first hero plan could not be found in the HBB plan list
LogicTriageAttribute = if HeroPlanId1.ProductId=””, then HP1NF else ““
·         Hero Plan 2 Not Found (HP2NF) - this logic triage code captures that the second hero plan could not be found in the HBB plan list
LogicTriageAttribute = if HeroPlanId2.ProductId=””, then HP2NF else ““
·         Hero Plan Current Plan Not Sellable (HPCPNS) - this logic triage code captures that the current plan set for the hero plan was not
successful as the current plan was not sellable at the point of the upgrade.


successful as the current plan was not sellable at the point of the upgrade.
LogicTriageAttribute = if HeroPlanId2.ProductId=””, then HPCPNS else ““

keep annotation where ever we have complex logic or place statments which defines details about heavy expressions


2138
Upgrades -HomeBroadBand Discount Calculation

Impacted Areas
HL Requirement
Logic Changes
A. Config Retention Discount
Impacted Areas
HL Requirement
Business wants to Introduce a New Approach to Discount calculation.
So, all the HBB plans will be verified to get HBB Discounts based on a couple of configurations.
HBB implementation is within GetProductlist API. so, if we have an eligible discount we will get a response with a plan+disocunt
combination. otherwise only hbb plans.
Logic Changes
A. Config Retention Discount
Update Strategy GetTariffDiscountForHBB
Step 1: All eligible HBB plans(Eligible HBB Tariffs) are inputs for this strategy.
Step 2: For each eligible plan, calculate an auto-added HBB Discounts
 Enable external input and connect an external input to new sub-strategy (Invoke IdentifyAutoAddedHBBDiscount) 1255757 Digital HBB: Use the new Retention Discount Configuration Table to source the 'Retention Discount'
1255775 Digital HBB: Being able to manage the Value Tier Discounts
1255778 Digital HBB: Creating Pre MAF Value Tier Bands
1263367 Digital HBB: Source the VFT Discount
1263449 Digital HBB: Apply Pre to Post MAF Dilution and Growth Threshold Business Rules
1263534 Digital HBB: Being able to manage the Pre to Post MAF Thresholds values
1263540 Digital HBB: Create Pre MAF Threshold Bands1255734 Digital HBB: New Discount Logic and Ordering Logic
App/UI No
logic Yes New HBB configuration for HBB.
PM Tool Yes  new screens and updates to old ones for HBB Configuration.Area Yes/No Comments


2139
For calculation, re-use the existing strategy: IdentifyAutoAddedHBBDiscount
Note: output of IdentifyAutoAddedHBBDiscount sub-strategy gives Acquisition Price and Acquisition discount
Set acquisition discount =.DiscountDecimal ( from IdentifyAutoAddedHBBDiscount)
If no default auto-add discount is configured against the plan, set the value to zero.
Step 3: Campaign details will get from the previous strategy.
to retrieve the discount from Configuration we need either campaign type or churn in the next steps.
Step 4:
HBB Retention Discounts Configuration:
 Update Decision Data RetentionDiscount with the below config.
Channel - It should be configurable. Possible changes are Inbound CC, Web, and Retail. This is a mandatory field.
ChurnPropensityBand/Campaign Type - This field is mandatory.
HBBLifeCycleBand - This field is mandatory
Remove the existing matching condition with the Plan band and product level band. matching should be only HBBlifecycleband and
channel.
churn/campaign type, and the campaign/Churn check will happen in the next filter.
Discount Amount - The amount of the discount to apply in monetary value i.e. pounds, for the rule. This field is mandatory.

Initial configuration example as below

Churn Propensity Band Configuration:
DeriveChurnPropensity Existing strategy will give the Churn value.
Set  ChurnPropensity and use it to get the discount from the configuration.
Web High EOC 9-6 2
Web winback Out of contract 4
InboundCC High EOC 9-6 2
InboundCC winback Out of contract 4
Retail High EOC 9-6 2
Retail winback Out of contract 4Channel ChurnPropensityBand
/Campaign TypeHBBLifeCycleBand Discount Amount


2140
 ChurnPropensityBand is coming from range mapping existing  DD with model id 7
RetentionDiscount will come from the Retention Discount DD will carry into further calculations.

 Step 6: Calculate the subscriber pre-upgrade Monthly Access Fee (MAF)
SET Pre-upgrade MAF = Pre-upgrade plan line rental - line rental discount - VFT discount.
plan line rental is - current plan Cost Inc VAT (get from GetCurrentPlanDetails )
line rental discount - Amount (inc.Vat) current holding discount.(get from CalculateTariffDiscount existing strategy )
VFT discount- discount (amount)
Calculate VFT discount. Re-use existing logic GetEligibleVFTogetherOfferforHBB and modify some components to fetch VFT Discount
Calculate the VFT discount for all eligible HBB plans and assign respective VFT discounts. This VFT discount amount is used in further
strategies in logic

Step 7: Configuring HBB MAF Bands:
The business needs to manage a set of MAF bands that can be used in HBB retention discount configurations. The business needs to
define different MAF bands based on the pre-upgrade plan type, e.g. Basic (non-pro) or Pro, and the process type e.g. Tier discount
process or threshold process.
The following data must be able to be configured for each band - all fields are mandatory.
Band Number - Unique auto-generated number for the band to be used in discount configurations.
MAF Type Type  - This is the plan type ID for the MAF Band e.g. Basic (Non-Pro) or Pro plans


2141
Process Type - This is the logic process that the configuration is used for.
MAF Lower Boundary - The lower boundary of the MAF tier in pounds and pence
MAF Upper Boundary - The upper boundary of the MAF tier in pounds and pence
The lower and upper limits for bands in the same plan type and process type cannot overlap and must be unique. Data validation needs to
ensure that
multiple bands for the same plan type and process type do not span the same MAF values.

The Bandin and MAF Type derived will be used to get values from different other configurations in the later stages of deriving the discount.
set MAF type based on the Pre- upgraded MAF value. this MAF type will be used in Step 8 for tier discounts and step 11 for threshold
discounts.
Step 8 HBB Value Tier Discounts
This configuration will provide the ability to configure the HBB value-based retention discount to be allocated to subscribers in addition to
the core HBB
retention discount. It must be possible to configure the following data for each rule:
Create a new DD GetDiscountsByPlanType
Plan Type - Name of the value tier. This field is mandatory.
Channel - The channel that this configuration is applicable to i.e. Inbound CC, Web, Retail etc. This field is mandatory.
MAF Band - The MAF band the configuration is for. This uses the MAF Bands of type = 'Tier' - refer to Step 7: Configuring HBB MAF
Bands: This field is
mandatory.
Discount Amount - The amount of the discount to apply in monetary value i.e. pounds, for the rule. This field is mandatory.Basic low Tier £0.00 £23.99
Basic medium Tier £24.00 £29.99


Basic medium Tier £24.00 £29.99
Basic  high Tier £30.00 £500.00
Pro low Tier £0 £29.99
Pro medium Tier £30.00 £34.99
ProII  high Tier £35.00 £500.00
Default low Threshold £0.00 £23.99
Default medium Threshold £24.00 £29.99
Default  high Threshold £30.00 £500.00Plan Type MAF Type ProcessType MAF-LowerBoundary MAF-UpperBoundary
Non-Pro WEB (Basic) low 0
Non-Pro WEB (Basic) medium 1
Non-Pro WEB (Basic) high 2
Pro WEB (Pro&ProII) low 0
Pro WEB (Pro&ProII) medium 1PlanType Channel MAF-Band Discount Amount


2142
set discount amount by matching the MAF type from step 7  with MAF-BAND in the above configuration w.r. t to type and channel.

Step 9: According to the respective channel and using calculated pre-upgrade calculated MAF get the MAF band from refer to Step 7:
Configuring HBB MAF Bands and the pre-upgrade plan type(product Attribute) i.e. Basic (Non-Pro) plan or Pro/ProII plan.
Increase the retention discount derived in step 5 by the additional tier discount from step 8.
now  HBB Retention Discount = Retention discount + discount amount (GetDiscountsByPlanType DD)
If the plan does not have a plan type configured the additional tier discount value will be defaulted to 'zero'
Firstly before identifying Tier Discount, need to identify Plan Type Name from Prod Attributes and MAF Band. step 7.
Step 10: Calculate the final HBB retention discount for the plan using the acquisition discount and the Set Final HBB Retention discount =
HBB plan acquisition discount (from Step 1)+ HBB retention discount. (from step9)
Set the min discount and max discount values using the HBB acquisition discount and the HBB retention discount
Min discount = HBB acquisition discount (from Step1)
Max discount = HBB retention discount  (from step 10).
Step 11: Calculate the pre to post-MAF threshold
This calculation needs 3 MAF configurations (churn, pre-upgrade MAF, and pre-upgrade plan type) to find the highest discount which meets
the threshold requirement.
a. Create a new DD GetPreToPostMAFThreshold
This configuration will provide the ability to configure the allowed thresholds for MAF increase and decrease at the point of upgrade.


This configuration will provide the ability to configure the allowed thresholds for MAF increase and decrease at the point of upgrade.
Channel - The channel that this configuration is applicable to i.e. Inbound CC, Web, Retail, etc. This field is mandatory.
HBB Subscription Lifecycle Band - Band defining where the subscription is within the lifecycle of the contract.
Lifecycle Band. This field is mandatory if the Campaign value is not set.
Threshold Name: This property will decide which threshold Band we need to use for calculation.
sample values Churn, Campaign, Pre Upgrade MAF, Pre upgrade plan
 Threshold Type- this attribute is defined
for the churn propensity value of the subscription.  -LOW, Medium,High.
For Pre upgrade Plan Types values will be (Pro&Pro II) high,(Pro&Pro II) Medium,(Pro&Pro II)low and High(Basic ), Medium(Basic), and
Low(Basic).
for Pre-Upgrade MAF values will be Default High, Default Medium, Default low
Different Threshold Values are provided based on the Threshold Type.
Threshold Value - The threshold value to apply for the rule (this can be negative or positive). This field is mandatory.
The configuration example Pro WEB (Pro&ProII) high 2
web OOC Churn propensity
BandNA High -5
web OOC Churn propensity
BandNA medium -3Channel HBB Subscription
Lifecycle BandThreshold Name Campaign Type Threshold Type Threshold Value (£)


2143

a. based on channel and life cycle band we will derive the threshold values w.r.t to threshold type.

Filter Threshold Name  Churn propensity Band
Match the condition with DD
current customer  life cycle band = HBB Subscription Lifecycle Band (from DD)
if not an active campaign
customer churn propensity = Threshold Type (DD)
if it is an active campaign
customer churn propensity (derived in current details strategy )= Campaign Type(DD)
derive a Threshold value that match the above condition and set it to
Set Churn Threshold Value. (example -5)
a.(i)based on the Churn  Propensity value which we derived earlier, set the churn threshold value
b.set Pre-upgrade MAF Threshold value=
b.(i) Based on the value we calculated pre-upgrade Monthly Access Fee in step 6, we need to derive from the MAF type.
b. (ii) based on band type in b(i),  set MAF threshold value
c. Set Pre-Upgrade Plan Threshold
c.(i)based on the recommended Plan type value from product attributes, (it can be Pro (pro or ProII)  / Basic(non-Pro).
c. (ii) based on plan type in b(i),  set the plan threshold value for

D.Set  FinalPreToPostThresholdValue= Churn Threshold Value a(i)+ Pre-upgrade MAF Threshold value b(ii)+ Pre-Upgrade Plan Threshold
value c(ii).web OOC Churn propensity
BandNA low 3
web inlife Churn propensity
BandWinback null -5
web inlife Churn propensity
BandFault null -5
web inlife 3-6 Pre Upgrade MAF
bandwinback default High -5
web OOC Pre Upgrade MAF


bandwinback default High -5
web OOC Pre Upgrade MAF
bandNA default medium -3
web OOC Pre Upgrade MAF
bandNA default low 3
web OOC Pre upgrade plan
typeNA Pro 1
web OOC Pre upgrade plan
typeNA  Basic 0


2144

Step12:
Retrieve all the compatible discounts for the plan between (and including) the min and max discount values (from step 10:
filter discounts which
 -have the 'FBB EOC Discount' product class.(filter highlighted in image)
 -be eligible with the 'eShop' division as per Siebel eligibility configuration (data import in image)
 -be sellable in the upgrading channel (i.e. web), and for the upgrade order type in AOM configuration
 -be compatible with the HBB plan.
If no compatible discounts are found and the min discount value is zero, a single discount record of zero needs to be passed to the next
phase of processing i.e. HBB plan with zero discount
for step 12 use GetAutoAddedFBBEOCDiscount existing strategy which satisfies all the above rules (testing required).
set UpgradingRetentiondiscount = discount amount from FBBOOC .
step 13: get VFT discount for upgrading plan from GetEligibleVFTogetherOfferforHBB
if we have an eligible VFT discount, set UpgradingRetentiondiscount= UpgradingRetentiondiscount+VFT discount.

For each UpgradingRetentiondiscount,
 set    PreToPostThreshold True if
Post upgrade retention price - Subscribers pre-upgrade MAF => Final Pre to Post Threshold Value
1. PostUpgradeRetentionPrice = costIncVAT (recommended tariff ) - UpgradingRetentiondiscount
2. Subscribers pre-upgrade MAF =  value which is derived in step 6.
3.FinalPreToPostThresholdValue = value derived from step 11
get the highest of UpgradingRetentiondiscount which PreToPostThreshold is true.
recommend that tariff and discount combination.
if the  UpgradingRetentiondiscount is zero, recommend only tariff without discount.


if the  UpgradingRetentiondiscount is zero, recommend only tariff without discount.

Step 14:Remove the plan from the processing as none of the compatible discounts pass the MAF threshold rules in step 13.

Detailed flow diagram with example calculation is given below


2145

keep annotation where ever we have complex logic or place statments which defines details about heavy expressions


2146
Upgrades -HomeBroadBand Prioritization

Impact in Other areas
HL Requirement
Logic Changes
A.  HBB Priority configuration (1257043)
B. Introduce HBB Hero Plans and Priority Rules (1257059)
Impact in Other areas
HL Requirement
Business wants to Introduce New HBB Matrix with new eligibility rules.
So, all the HBB Jouneys which are supported are replaced with new rules. and new matrix will be configured as part of this
implementation.
HBB implementation is within GetProductlist API.
Logic Changes
A.  HBB Priority configuration (1257043)
This configuration will provide the ability to configure 2 hero plans to present as the first 2 plans within the HBB digital journey. It must be
possible to
Update DD HBBPlanPrioritisation
remove old attributes and add below new attributes. (structural changes required)
configure the following data for each rule:
Channel - The channel that this configuration is applicable to i.e. Inbound CC, Web, Retail etc.
HBB Subscription Lifecycle Band - Band defining where the subscription is within the lifecycle of the contract. Different discounts are
provided
Churn Propensity Band - Band defining the churn propensity value for the subscription. Different discounts are provided based on the
churn1257059 Digital HBB: Ordering the List of Plan to send to the Digital Platform
1263771 HBB Upgrades: Being able to manage the HBB Eligibility configuration, Discount configuration and plan order
configuration at channel level1257043 Digital HBB: Being able to configure Hero Plans to use in the plan ordered list
App/UI No
logic Yes Updating the HBB Logic to support new Eligibility rules and matirx.
PM Tool Yes  changes will be needed to support new HBB Configuration.Area Yes/No Comments


2147
HBB Plan technology - This is the HBB technology that the plan is associated with. e.g. SOGEA, FTTH, FTTP, as configured in business-
owned
Hero Plan ID 1 - This is the Siebel product ID for the first hero plan**.
Hero Plan ID 2 - This is the Siebel product ID for the second hero plan**.
HBB Plan Type Order - This is the order of the plan types after the 2 hero plans. This can either be ascending (starting with the basic plans
and
ending with the pro II plans) or descending (starting with the Pro II plans and ending with the basic plans).
HBB Plan Price Order - This is the order of the plans by either price ascending (Asc) or descending (Dec)
B. Introduce HBB Hero Plans and Priority Rules (1257059)
Update the strategy GetRankForHBB
Update HBBPlanPrioritisation DD with the Above(section A) configuration.
the input of this strategy will be a list of plans.
Match the eligible plans with DD based on
Channel  = Channel from API customer's current life cycle,
If churn over ride from campaign configuration is Y consider churn as High always.  else consider customer churn value form model 7
ChurnPropensityBand= Customer current churn,
PlanTechnology = recommended plan Technology
map all attributes from DD to access them in strategy.
step1:  verify any hero plan is configured in DD
if yes, verify if they are matching with eligible plans.
Step 2:  check if it is a current plan or just a plan id.
a.if it is plan id- set the rank position based on hero plan id.
heroplanID1 will be to position 1 and heroplanid2 will be set to position 2 respectively.


Allocate each of the hero plan(s) to the correct priority as per the configuration i.e. positions 1 and 2 in the list.
b. if it is the current plan - identify the current plan based on GetCurrentTariff details strategy and place that Tariff plan in its respective
position.
step 3: the non hero plans in the eligible list should be ordered in Plan type and price type respectively.
step4: order based on plan type. set rank(temp variable) as below
Pro II - rank 1 Highest
Pro- with rank 2
basic- rank 3 leastWeb Out   of
contractlow FTTP/H 116967 Current plan Descending Ascending
Web Inlife medium FTTP/H 116658 114588 Ascending DescendingChannel HBBSubscript
ionLifecycleB
andChurnPropen
sityBandPlanTechnolo
giesHeroPlanID1 HeroPlanID2 HBBPlanType
OrderHBBPlanPrice
Order


2148
get the plan type for all eligible tariffs and ordered based on the configuration in DD.
the configuration can be either ascending or descending.
Step5 Once we have the order based on the plan types we need to order based on the price for each plan type.
Prioritize the plans based on plan cost (costIncVat) based on the configuration. it can be either ascending or descending.
Note: refer OrderDeviceList strategy for a similar pattern.
the output of this strategy placed below with sample data.

HBB Reproting 1266133
As part of HBB journey we need set some reporting attributes for business usage. which will later extract for other applications.
Please map the below attributes throughout the solution where we are setting and map it to IH reporting table.


2149
Update PopulateOutputPropertiesHBBTariffsforWeb with the below attributes.
update tariff and discount properties respective set properties.
1 PreS15MAF This stores the Pre upgrade MAF of the HBB
upgrading subscription. This is an existing
field in the interaction history table and already
transferred to the EDW reporting area.Existing Mandatory 23.67 decimal
2 CustomerChurn
BandThis stores the customer churn band at the point of
upgrade. This is an existing field in the
interaction history table and already transferred to
the EDW reporting area.Existing Mandatory Medium text
3 HBBRetentionDi
scountThis is the HBB retention discount calculated by the
logic based on the discount configuration at the
point of the upgrade interaction.New Mandatory 4 decimal
4 HBBValueTierDi
scountThis is the HBB value tier discount calculated by the
logic based on the discount configuration at the
point of the upgrade interaction.New Mandatory 0 decimal
5 HBBCampaign
CodeThis is the campaign code used within the HBB
discount and priority logic processing at the point of
the upgrade interaction.New Optional TMR599
1text
6 HBB
CampaignCellC
odeThis is the cell code used within the HBB discount
and priority logic processing at the point of the
upgrade interaction.New Optional 4 decimal
7 HBBChurnThre
shold ValueThis is the HBB churn threshold value calculated by
the logic based on the threshold configuration at the
point of the upgrade interaction.New Mandatory 1 decimal No Data Field Description Existing
/ NewMandatory/
optionalSample
Value
(s)pega
propertytype


2150
Note:
Test the above properties are populated in IHReporting dataset
 8 HBBPreUpgrad
eMAFThreshold
ValueThis is the HBB pre upgrade MAF threshold value
calculated by the logic based on the threshold
configuration at the point of the upgrade interaction.New Mandatory 2 decimal
9 HBBPreUpgrad
ePlanTypeThres
holdValueThis is the HBB pre upgrade plan type threshold
value calculated by the logic based on the threshold
configuration at the point of the upgrade interaction.New Mandatory 1 decimal
10 HBBTariffVolum
ePreThresholdThis is the number of HBB tariffs prior to the MAF
threshold filtering logic for the HBB subscriber at the
point of the upgrade interaction.New Mandatory 10 decimal
11 HBBTariffVolum
ePostThresholdThis is the number of HBB tariffs after to the MAF
threshold filtering logic for the HBB subscriber at the
point of the upgrade interaction.New Mandatory 3 decimal
12 PreUpgradeTarif
fCodeThis is the subscribers pre upgrade tariff (plan)
code.New Optional 121856 text
keep annotation where ever we have complex logic or place statments which defines details about heavy expressions


2151
Release 4.06


2152
NBA - AppPush Via Process Event
Impact on Other Areas
Dependencies
Logic Changes:
Note: It requires a Catalogue For Dev tests
A. Update Strategy AllTreatmentsForEligibleOffers
Add a connection from "Treatments For ExecutionMode – ProcessEvent" to "AppPush Treatments"
Add a connection from "AppPush Treatments" to "OutboundTreatmentsByEvents"
B. Update Strategy IdentifyBestTreatmentForProcessEvent
 Add a filter 'AppPush' with the condition
with condition @equalsIgnoreCase(.Channel,"AppPush")
Connect 'Max Offers' to 'AppPush'
Add a prioritize component 'Prioritize AppPush'
prioritize on.PriorityScore. Order by Highest First with Output All. 1272222 AppPush Via Process Event
PM Tool No
PM Tool KT Documentation No
Knowledge Transfer No
App No
DB No  Area Yes/No Comments
PM Tool No
App No
DB No  Area Yes/No Comments


2153
Connect 'AppPush' to 'Prioritize AppPush'
Connect 'Prioritize AppPush' to 'Max Offers for Channels'
C. Update Strategy PopulateDedupeScoreForT2S
Add a Filter 'AppPush' with the condition
with condition @equalsIgnoreCase(.Channel,"AppPush")
Connect 'Set Default values' to 'AppPush' Filter
Connect 'AppPush' Filter to results
D. Create Strategy PopulateOutputPropertiesForAppPushByEvents
Save as Strategy 'PopulateOutputPropertiesForAppPushByTrigger' and name it as 'PopulateOutputPropertiesForAppPushByEvents'
E. Update Strategy PopulateOutputPropertiesForT2S
Add a Filter 'AppPush' with the condition
with condition @equalsIgnoreCase(.Channel,"AppPush")
Add a New Sub Strategy 'PopulateOutputPropertiesForAppPushByEvents' and get it connected from 'AppPush' Filter
Connect Sub Strategy to 'ApplyControlGroupsByTrigger' Sub Strategy


2154
F. Create new Data Flow ProcessAppPushForT2S
Save as Data Flow 'ProcessAppPush'  and name it as 'ProcessAppPushForT2S'
Delete the 'DVT Mode Check' Branch. (Note: as of now DVT check is not applied to T2S)
G. Update Data Flow GetBestTreatmentByProcessEvent
Add a new Branch and a Filter for AppPush Channel
with condition @equalsIgnoreCase(.Channel,"AppPush")
Add Data Flow 'ProcessAppPushForT2S' as a destination for the new Branch
and connect the Data Flow from 'AppPush' Filter


2155
NBA -Treatment Level Self Contention

Impact in Other areas
 Dependencies
Logic Changes:
A. Update Treatments decision data structure for all Issues + PM Changes
Add the below new SR properties to Treatment DDS
ApplyTreatmentSelfContentionStrategy (Text)
FallowPeriodForDismissedResponse (Integer)
FallowPeriodForEngagedResponse (Integer)
ImpressionRatePeriod
MaximumImpressions
Note: There are around 10 Squads and Each squad has 10 channels. Let us know is this change is only for some channels or for all the
channels
Note: Properties must be controllable from PM tool screens. FallowPeriodForDismissedResponse and
FallowPeriodForEngagedResponse need to be grouped together in PM tool Screen

B. Update GetIHAtCustomerLevel Strategy
For Treatment Self Contention for Shown:
Import Treatments Sub Strategy and connect to a filter 'Active Treatments' with condition
.pyIsActive&& .Enabled1308311 Treatment Level Self Contention
PM Tool Yes  Need new columns in Treatment Screen
PM Tool KT Documentation No
Knowledge Transfer No
App No
DB Yes  New columns for new simulation funnelsArea Yes/No Comments
PM Tool Yes   Need new columns in Treatment Screen
App No
DB No  Area Yes/No Comments


2156
Add a Data Join 'Join Treatments' and connect from 'Selection By Shown Outcome' Filter component and from Treatments Sub Strategy.
Match based on:
.OfferName =.OfferName
.TreatmentName = .pyName
And map:
ImpressionRatePeriod
MaximumImpressions
 and do Exclude check
Create a new Set Property 'Save OutcomeDate By Shown Outcome' and get connected from the above Data Join and Set as below
.ValueText =.OutcomeDate
Add new Filter 'Batch Selections By Shown Within ImpressionRatePeriod' and add below condition
@if(.ImpressionRatePeriod>=0,@CalculateNumberOfDaysFromToday(.OutcomeDate)<.ImpressionRatePeriod, false) and connect
from the above Set Property
Add a Group By 'Get CountSinceImpressionRatePeriod for Batch Selection By Shown' and add as below and get Connected from
above Filter

Add new Filter 'Get CountSinceImpressionRatePeriod for Batch Selection By Shown Validation' as
.pyName !=""  and connect from above component
Add a Set Property 'CountSinceImpressionRatePeriod for Selection By Shown' and connect to Results

For Treatment Self Contention for Engaged:


2157
Add a Group By 'Get Latest Batch Treatment Selection By Subscription Engaged' with conditions as below, and connect from existing
Set Property 'Save Batch Outcome Date By Subscription Engaged'
Add a Set Property 'Reset Batch Treatment Outcome Date By Subscription Engaged' and connect from above Group By. Set:
.OutcomeDate = .ValueText
Add a Set Property 'Latest Batch Treatment Selection By Subscription Engaged' and connect from above Set Property. Set:
.DaysSinceLastEngagedResponse = @AOMUtilities.CalculateNumberOfDaysFromToday(.OutcomeDate)
Connect 'Latest Batch Treatment Selection By Subscription Engaged' to the Results component.


2158
For Offer Self Contention for Engaged:
Add a Group By 'Get Latest Batch Offer Selection By Subscription Engaged' with conditions as below, and connect from existing Set
Property 'Save Batch Outcome Date By Subscription Engaged'
Add a Set Property 'Reset Batch Offer Outcome Date By Subscription Engaged' and connect from above Group By. Set:
.OutcomeDate = .ValueText
Add a Set Property 'Latest Batch Offer Selection By Subscription Engaged' and connect from above Set Property. Set:
.DaysSinceLastEngagedResponse = @AOMUtilities.CalculateNumberOfDaysFromToday(.OutcomeDate)
Connect 'Latest Batch Offer Selection By Subscription Engaged' to the Results component.
For Treatment Self Contention for Dismissed:
Add a Group By 'Get Latest Batch Treatment Selection By Subscription Dismissed' with conditions as below, and connect from existing
Set Property 'Save Batch Outcome Date By Subscription Dismissed'


2159
Add a Set Property 'Reset Batch Treatment Outcome Date By Subscription Dismissed' and connect from above Group By. Set:
.OutcomeDate = .ValueText
Add a Set Property 'Latest Batch Treatment Selection By Subscription Dismissed' and connect from above Set Property. Set:
.DaysSinceLastDismissedResponse = @AOMUtilities.CalculateNumberOfDaysFromToday(.OutcomeDate)
Connect 'Latest Batch Treatment Selection By Subscription Dismissed' to the Results component.
For Offer Self Contention for Dismissed:
Add a Group By ‘Get Latest Batch Offer Selection By Subscription Dismissed' with conditions as below, and connect from existing Set
Property 'Save Batch Outcome Date By Subscription Dismissed'


2160
Add a Set Property 'Reset Batch Offer Outcome Date By Subscription Dismissed' and connect from above Group By. Set:
.OutcomeDate = .ValueText
Add a Set Property 'Latest Batch Offer Selection By Subscription Dismissed' and connect from above Set Property. Set:
.DaysSinceLastDismissedResponse = @AOMUtilities.CalculateNumberOfDaysFromToday(.OutcomeDate)
Connect 'Latest Batch Offer Selection By Subscription Dismissed' to the Results component.


2161

C. Update Strategy ApplyTreatmentSelfContention
Remove everything from the strategy and update as below
Start with external input and add 2 filter components
Name the first Filter as 'No Treatment Contention Check' as below and connect it to the results
.ApplyTreatmentSelfContentionStrategy="Yes"
Name the second filter as 'Apply Treatment Contention Check' as below
.ApplyTreatmentSelfContentionStrategy!="Yes"
Add a Data Join 'Join with Shown Response' from the above Filter and call Sub Strategy 'GetIHAtCustomerLevel', component
'CountSinceImpressionRatePeriod for Selection By Shown'. Join it based on OfferName and .TreatmentName =.pyName, and the map
.CountSinceSaturationRatePeriod = .CountSinceSaturationRatePeriod
Add Filter 'Check MaximumImpressions Rate' with below condition and connect from the Data Join
@if(.MaximumImpressions>0,.CountSinceSaturationRatePeriod<.MaximumImpressions,true)
Add a Data Join 'Join with Dismissed Response' from the above Filter and call Sub Strategy 'GetIHAtCustomerLevel', component 'Get
Latest Batch Selection By Subscription Dismissed'. Join it based on OfferName and .TreatmentName =.pyName, and map as below
 .DaysSinceLastDismissedResponse = .DaysSinceLastDismissedResponse
 .ValueText3 = "Dismissed IH Present"
Add a Filter 'Fallow Period For Dismissed Response' with below condition and connect from the Data Join
 @if(.ValueText3="Dismissed IH Present",
@if(.FallowPeriodForDismissedResponse>0,.DaysSinceLastDismissedResponse>.FallowPeriodForDismissedResponse,true),true)
Add a Data Join 'Join with Engaged Response'


Add a Data Join 'Join with Engaged Response'
Add a Data Join from the above Filter and Call Substrategy 'GetIHAtCustomerLevel', component 'Get Latest Batch Selection By
Subscription Engaged' and Join it based on OfferName and .TreatmentName =.pyName, and map as below
.DaysSinceLastEngagedResponse  = DaysSinceLastEngagedResponse
 .ValueText3 = "Engaged IH Present"
Add a Filter 'Check Fallow Period For Engaged Response 'as below
 @if(.ValueText3="Engaged IH Present", @if(.FallowPeriodForEngagedResponse >0, .DaysSinceLastEngagedResponse >
.FallowPeriodForEngagedResponse, true ), true)


2162
Connect to Results.

D. Create Strategy ApplyTreatmentSelfContentionForSimulation
Save as existing strategy 'IdentifyBestOfferVariantForOfferForSimulation' as 'ApplyTreatmentSelfContentionStrategyForSimulation'
Change Sub Strategy call to call 'ApplyTreatmentSelfContention'
Update 'Record Dropped Propositions' to set
.AdhocText1 = @if(.ValueInteger=1,"",@AOMUtilities.CaptureSimulationDropOff("Treatment Self Contention", myStepPage))

Note: Add the below Annotation in each of the below strategies, while adding the New Sub Strategy
E. Update Strategy IdentifyBestAppTreatmentsForSubscription
Add new Sub Strategy 'ApplyTreatmentSelfContentionForSimulation' between 'Identify Eligible App Treatments’ and
'IdentifyTreatmentSubChannel'. Name it 'ApplyTreatmentSelfContention'
F. Update Strategy IdentifyBesteCareTreatmentsForSubscription
Add new Sub Strategy 'ApplyTreatmentSelfContentionForSimulation' between 'Identify Eligible eCare Treatments’ and
'IdentifyTreatmentSubChannel'. Name it 'ApplyTreatmentSelfContention'
G. Update Strategy IdentifyBestIVRTreatmentsForSubscription
Add new Sub Strategy 'ApplyTreatmentSelfContentionForSimulation' between 'Identify Eligible IVR Treatments’  and
'IdentifyTreatmentSubChannel'. Name it 'ApplyTreatmentSelfContention'
H. Update Strategy IdentifyBestTobiTreatmentsForSubscription


2163
Add new Sub Strategy 'ApplyTreatmentSelfContentionForSimulation' between  'Identify Eligible Tobi Treatments’  and
'IdentifyTreatmentSubChannel'. Name it 'ApplyTreatmentSelfContention'
I. Update Strategy IdentifyBestTreatmentsByTriggers
Add new Sub Strategy ‘ApplyTreatmentSelfContentionForSimulation' between  'IdentifyEligibleTreatmentsByTriggers' and
'IdentifyBestTreatment'. Name it 'ApplyTreatmentSelfContention'
J. Update Strategy ProcessEvent
Add new Sub Strategy 'ApplyTreatmentSelfContention' between 'EligibleTreatmentsByEvents' and 'IdentifyBestTreatmentsForOffers'
Note: simulations cannot be run for Process Event Execution Mode
K. Update  Strategy IdentifyBestOBTreatmentsByBatch
Add new Sub Strategy 'ApplyTreatmentSelfContentionForSimulation' between  'IdentifyEligibleOBTreatments' and
'IdentifyBestTreatmentsForOffers'. Name it 'ApplyTreatmentSelfContention'
L. Update Offer decision data structure for all Issues + PM Changes
Add the below SR properties to Offer DDs
ApplyOfferSelfContentionStrategy (Text)
FallowPeriodForDismissedResponse (Integer)
FallowPeriodForEngagedResponse (Integer)
Note: Properties must be controllable from PM tool screens. FallowPeriodForDismissedResponse and
FallowPeriodForEngagedResponse need to be grouped together in PM tool Screen
M. Update Strategy ApplyOfferSelfContention
Update existing Filter 'LowConfidenceScore Path' with condition:
(.ConfidenceScoreRange!="High" || @contains(@String.toUpperCase(.Intent),"UNKNOWN"))&& .OfferRelevancy ="Irrelevant"
Update existing Filter 'HighConfidenceScore Path' with condition:


Update existing Filter 'HighConfidenceScore Path' with condition:
.ConfidenceScoreRange="High"&& .OfferRelevancy !="Irrelevant" && !@contains(@String.toUpperCase(.Intent),"UNKNOWN")
Disconnect existing Set Property 'Set OfferRelevancy By Representation Rate' from results component.
Add a Data Join 'Join with Dismissed Response' and connect from existing Set Property 'Set OfferRelevancy By Representation Rate'.
Call sub-strategy GetIHAtCustomerLevel, component 'Get Latest Offer Batch Selection By Subscription Dismissed' and Join it based on
OfferName, and map
.DaysSinceLastDismissedResponse = .DaysSinceLastDismissedResponse
.ValueText3 = "Dismissed IH Present"
Add a Filter ‘Fallow Period For Dismissed Response’ with below condition and connect from previous Data Join
@if(.ValueText3="Dismissed IH Present",
@if(.FallowPeriodForDismissedResponse>0,.DaysSinceLastDismissedResponse>.FallowPeriodForDismissedResponse,true),true)
Add a Data Join 'Join with Shown Response' and connect from previous Filter.  Call sub-strategy GetIHAtCustomerLevel, component
'Get Latest Offer Batch Selection By Subscription Engaged' and Join it based on OfferName, and map
.DaysSinceLastEngagedResponse = DaysSinceLastEngagedResponse
.ValueText3 = "Engaged IH Present"
Add a Filter 'Check Fallow Period For Engaged Response' as below
@if(.ValueText3="Engaged IH Present", @if(.FallowPeriodForEngagedResponse >0, .DaysSinceLastEngagedResponse >
.FallowPeriodForEngagedResponse, true ), true)
Connect to Results.


2164

N. Create Strategy ApplyT2TVSelfContentionForSimulation
Save as existing Strategy 'IdentifyBestOfferVariantForOfferForSimulation' as 'ApplyTreatmentSelfContentionStrategyForSimulation'
Change Sub Strategy call to call 'ApplyT2TVSelfContention'
Update 'Record Dropped Propositions' to set
.AdhocText1 = @if(.ValueInteger=1,"",@AOMUtilities.CaptureSimulationDropOff("T2TV Self Contention", myStepPage))
O. Update IdentifyTreatmentVariations
Update Sub Strategy ApplyT2TVSelfContention so it now calls ApplyT2TVSelfContentionForSimulation, but the name
ApplyT2TVSelfContention remains the same.


2165
NBA - Introduce SIMO Xtra plans to second line journeys
Impact in Other areas
Dependencies
Logic Changes:
A. Update EvaluateTariffTypes Decision Table
Update the Decision table as below to add red row 1337752 Introduce SIMO Xtra plans to second line journeys
PM Tool No
PM Tool KT Documentation No
Knowledge Transfer No
App No
DB No  Area Yes/No Comments
PM Tool No
App No
DB No  Area Yes/No Comments
if N N Loan  @String.notEqualsIgnoreC
ase(.PromotionType,"Seco
ndary Plan") Handset
else if N Y Loan  @String.notEqualsIgnoreC
ase(.PromotionType,"Acces
s Plan") Tablet
else if N Y CBU @String.notEqualsIg
noreCase(.Package
Band,"Dongle")&&!
(@String.contains(@
String.toUpperCase(
.PackageBand),"GIG
ACUBE")) @String.notEqualsIgnoreC
ase(.PromotionType,"Acces
s Plan") BundleTabletLabel SIMOnly MBBFlag Segment
ofTariffPackageBand PromotionType Proposition RETURN


2166
 else if Y N Loan  @String.notEqualsIgnoreC
ase(.PromotionType,"Acces
s Plan") &&
@String.notEqualsIgnoreC
ase(.PromotionType,"Seco
ndary Plan") SIMOnly
else if Y N CBU  @String.notEqualsIgnoreC
ase(.PromotionType,"Acces
s Plan") SIMOnly
else if Y Y CBU  @String.notEqualsIgnoreC
ase(.PromotionType,"Acces
s Plan") DataSIMOnly
else if N Y CBU @String.equalsIgnor
eCase(.PackageBan
d,"Dongle")  Dongle
else if N  Loan  @String.equalsIgnoreCase(
.PromotionType,"Secondar
y Plan")@String.con
tains(@Strin
g.toUpperC
ase(.Proposi
tion),"WATC
H")Watch
else if Y  Loan  @String.equalsIgnoreCase(
.PromotionType,"Access
Plan")@String.con
tains(@Strin
g.toUpperC
ase(.Proposi
tion),"WATC
H")Watch
else if Y  Loan  @String.equalsIgnoreCase(
.PromotionType,"Access
Plan") TabletAccess
else if Y  CBU  @String.equalsIgnoreCase(
.PromotionType,"Access
Plan")@String.con
tains(@Strin
g.toUpperC
ase(.Proposi
tion),"WATC
H")WatchAccess
else if Y  CBU  @String.equalsIgnoreCase(
.PromotionType,"Access
Plan") TabletAccess
else if  Y CBU @String.contains(@
String.toUpperCase(
.PackageBand),"GIG
ACUBE")  Gigacube
otherwise      Default


2167
NBA - Introduce Best Account Contact details to the NBA Framework

Impact on Other Areas
Dependencies
Logic Changes:
Create New Property ' B e s t A c c o u n t C o n t a c t L i s t' of Type PageList (App will create this )
Create below New  properties
PreferredContactSubscriptionId
AlternateContactSubscriptionId
Note: Above names may change based on the App team changes in the class Mapping of AccountTable
A. Update DataFlow  PrepareRealtimeData
Add a new Compose after ‘GetOldestSubscription' Compose and name it as Get B e s t A c c o u n t C o n t a c t L i s t'’
Add subscription Dataset as source
and update compose as below
CustomerID = @if(.PreferredContactSubscriptionId != "" ,.PreferredContactSubscriptionId , if(.AlternateContactSubscriptionId != ""
,.AlternateContactSubscriptionId,.AccountOldestSubscriptionId))1264486 NBA-Introduce Best Account Contact details to the NBA
Framework
PM Tool No
PM Tool KT Documentation No
Knowledge Transfer No
App Yes  App need to Expose New columns to Pega and create New PageList Property
DB No  Area Yes/No Comments
PM Tool No
App Yes  Need app changes for E2E
DB No  Area Yes/No Comments


2168
B. Update DataFlow  PrepareBatchData
Add a new Compose after ‘GetOldestSubscription' Compose and name it as Get B e s t A c c o u n t C o n t a c t L i s t'’
Add subscription Dataset as source
and update compose as below
CustomerID = @if(.PreferredContactSubscriptionId != "" ,.PreferredContactSubscriptionId , if(.AlternateContactSubscriptionId != ""
,.AlternateContactSubscriptionId,.AccountOldestSubscriptionId))
C. Update DataFlow  PrepareRealtimeDataForGetNBASimulation
Add a new Compose after ‘GetOldestSubscription' Compose and name it as Get B e s t A c c o u n t C o n t a c t L i s t'’
Add subscription Dataset as source
and update compose as below
CustomerID = @if(.PreferredContactSubscriptionId != "" ,.PreferredContactSubscriptionId , if(.AlternateContactSubscriptionId != ""
,.AlternateContactSubscriptionId,.AccountOldestSubscriptionId))
D. Update DataFlow  PrepareRealtimeDataForTILSimulation
Add a new Compose after ‘GetOldestSubscription' Compose and name it as Get B e s t A c c o u n t C o n t a c t L i s t'’
Add subscription Dataset as source
and update compose as below


2169
CustomerID = @if(.PreferredContactSubscriptionId != "" ,.PreferredContactSubscriptionId , if(.AlternateContactSubscriptionId != ""
,.AlternateContactSubscriptionId,.AccountOldestSubscriptionId))
E. Update DataFlow  PrepareRealtimeDataForProcessEvent
Add a new Compose after ‘GetOldestSubscription' Compose and name it as Get B e s t A c c o u n t C o n t a c t L i s t'’
Add subscription Dataset as source
and update compose as below
CustomerID = @if(.PreferredContactSubscriptionId != "" ,.PreferredContactSubscriptionId , if(.AlternateContactSubscriptionId != ""
,.AlternateContactSubscriptionId,.AccountOldestSubscriptionId))


2170
NBA -IH Extension to Include 'Division' column in 'IH Reporting' for eCare
treatments

Impact on Other areas
Dependencies
Logic Changes:
A. Update Strategy SetCommonIHPropertiesForAllChannels
update the component 'Set Common IH Properties' as below
.ValueText = "container"
.Division  = @if(.TreatmentAttributes!="",@GetValueFromJSONObject(.TreatmentAttributes,.ValueText),.Division)
.ValueText = ""
 1254424 IH Extension to Include 'Division' column in 'IH
Reporting' for eCare treatments
PM Tool No
PM Tool KT Documentation No
Knowledge Transfer No
App Yes
DB No  Area Yes/No Comments
PM Tool no
App Yes  need app changes for E2E testing

DB No  Area Yes/No Comments


2171
Upgrades -Removing Airtime plans in MobileService Journey

Impact in Other Areas
HL Requirement
Logic Changes
A. Introduce EvaluateT ariffTypes  Decision table for Upgrades. 1329615/1329670
B.  Create New Strategy GetListOfT ariffsbyT ariffTypes. (ADO-1329615/1329670)
C. Update strategy GetListOfActiveT ariffs 1329615/1329670
D. Edit Screens
Assisted Upgrade Business Config: 1329650
E. Digital GPL  flow DD (1329664)
E. Renegotiation (1329632)
Impact in Other Areas
HL Requirement
Business wants to remove Evo Airtime Plans from the Recommendation flow and Edit Screen(GPL)  in a SIMO Mobile journey in Assisted.
This will be for both inbound cc and Retail channels.
Add a table( to impact).1329626 Remove Evo Airtime Plans from the Edit Screen in a SIMO Mobile journey in Assisted
1329632 Being able to Renegotiate a SIMO or SIMO Xtra Deal
1329650 Remove Evo Airtime Plans from the Edit Screen in a SIMO Mobile journey in Assisted Business Go Live
1329664 Ensure that only SIMO or SIMO Xtra Plans are sent as part of the ordered List of Plans when the digital platform
requests a SIMO pathway
1329670 Ensure that only SIMO or Xtra Plans are sent to the Digital Platform as part of a bundled recommendation when the
SIMO pathway is used1329615 Remove Evo Airtime Plans from Simo Logic Recommendations in the Assisted Mobile journey
App/UI No
logic Yes Updating the Logic to remove airtime plans in simo journey for mobile service in
upgrades.
PM Tool Yes  Business Configuration required. no new screen Area Yes/No Comments


upgrades.
PM Tool Yes  Business Configuration required. no new screen Area Yes/No Comments
1329615 inboundcc/Retail Mobile Service GetRecommendation
1329626 inboundcc/Retail Mobile Service GetproductlistStory channels journeys API


2172
Logic Changes
A. Introduce EvaluateTariffTypes Decision table for Upgrades. 1329615/1329670
1.As part of the new implementation, we will refer EvaluateTariffTypes Existing Decision table to identify Tariff times.
all the tariffs with tariff type SIMOnly are SIMO tariffs. and Tariff type Handset are Airtime plans for Mobile journeys.
Note:
a.The configuration is being updated as part of 1337752 in 4.6 Release by 2nd line private pricing logic no need to update by
upgrades.
Please find the NBA design in below location.
NBA - Introduce SIMO Xtra plans to second line journeys
b. The above derivation of SIMO plans depends on CMT data change. In case of delay in CMT data load Business want to
derive SIMOXtra plans by configuring in AOM via Product Metadata.
2. New ProductAttribute :
Create a new attribute in Metadata for Tariff

B.  Create New Strategy GetListOfTariffsbyTariffTypes. (ADO-1329615/1329670)
 Add External input will have all list of tariffs.
Add 2 Filters After the External input
Name the first one as “MobileServiceType Check“ and add below conditions
.SubscriptionType = “MobileService“
Name the 2nd filter as  Not MobileServiceType Check' and add the below conditions
.SubscriptionType != “MobileService“
and connect it to a set property component name AllTariffs  and connect it to the results
Add Decision table ‘EvaluateTariffType' and get it connected from the filter 'MobileServiceType Check’
Add 2 filters after the decision table
Name the first one as “SIMOnly TariffType Check“ and add the below conditions


Name the first one as “SIMOnly TariffType Check“ and add the below conditions
.TariffType = “SIMOnly“ || IsSimoPlan
Name the 2nd filter as 'Airtime Plans Check' and add the below conditions
.TariffType = “Handset“ &&  !IsSimoPlan
Connect Both filters to Results1329632 inboundcc/Retail Mobile Service Validatebasket(renegotiation)
1329650 inboundcc/Retail Mobile Service Getproductlist
1329664 Digital Mobile Service Getproductlist
1329670 Digital Mobile Service GetRecommendation
IsSimoPlan Tariff True/False Boolean/singleProperty Name Product Value Type


2173
Note: we will use this strategy in different places to retrieve SIMO or Airtime plans based on business requirements. and in the future, we
can extend this to multiple tariff types for other journeys.

C. Update strategy GetListOfActiveTariffs 1329615/1329670
A. Add two new sub-strategy after GetEligibleTariffs data join referring SIMO Tariffs and AllTariffs from Strategy
GetListOfTariffsbyTariffTypes.
B. Add a Switch with conditions

Add a Switch with the conditions below and name it as 'Check SIMO Plans'
Select SIMO Substratgey when
(.ToPathway = “ToSIMO“ || .ToPathway = “ToSIMO30“ )&& .subsciptionType=”MobileService”
Select Airtime Plan when
.ToPathway = “ToHandset“ && .subsciptionType=”MobileService”
Otherwise, Select All Plans Substratgey


2174

D. Edit Screens
Assisted Upgrade Business Config: 1329650

Update strategy GetTariffList :1329626
Add two new sub-strategy after “GetListofValidTariffsFromPC“
Add the First strategy 'SIMO' and select only SIMOnly plans component from GetListOfTariffsbyTariffTypes
Add 2nd strategy 'Airtime Plans' and select the Airtime Plans component GetListOfTariffsbyTariffTypes
Add Switch component to call three different paths as below
Select 'GetLisyOfValidTariffsFromPC' when
.subscriptionType != “MobileService“ ||
D_VFUKFWAOMFWDataAOMBusinessConfig[ConfigType:.SimoXtraPlans,ConfigName:EnableSimoXtraPlans].ConfigValue
=False
Select “SIMOOnly“ when
.subscriptionType = “MobileService“ &&
D_VFUKFWAOMFWDataAOMBusinessConfig[ConfigType:.SimoXtraPlans,ConfigName:EnableSimoXtraPlans].ConfigValue
=True && HandsetinBasket.ProductID="
Otherwise, Select 'AirtTimePlans'

SimoXtraPlansEnableSimoXtraPlans True Logic This config is used to
enable to Simo extra logic
in Edit screens.ConfigType ConfigName ConfigValue Logic/App Usage


2175

E. Digital GPL flow DD (1329664)
Update strategy GetUpgradeTariffListforWeb.
add a new sub-strategy to Call SIMO tariff only in GetListOfTariffsbyTariffTypes After the 'EVO and SIMO plans' SetProperty
update the switch component , to select the New sub-strategy , 'Simonly TraiffTypes'

E. Renegotiation (1329632)

validate the renegotiated deal.
If a deal is resumed on the same or a day other than the last saving one, the GetCustomer API will be invoked to refresh customer and
account data. VADR must check that the deal is still valid. If the deal is still valid, the renegotiated deal will be displayed in the Rec
screen with a Saved Banner whereas if the renegotiated deal is no longer valid. Business wants to display an Error message to an
agent with a Valid reason.
The renegotiated deal is based on the below.


2176
Product Pricing Validation
Product Eligibility Validation
Product Sellable Validation
Product Compatibility Validation - Handset to Tariff Validation, Handset to Insurance Validation,Tariff to Discount Validation, Tariff to
Discount Validation, Tariff to Add On Validation, Add on to Add On Validation
Promotion Expiry Date  and element validation (if the original deal had a promo)
ValidateBasketForRenegotiation Strategy is built for all product types and Tariff is one in that.
Note: dev-test needs to apply on all product validations for simoXtra plans. ( end-to-end test required for this flow).

Impacted Journeys for above implementation.
1329615 inboundcc/Retail Mobile Service GetRecommendation
1329626 inboundcc/Retail Mobile Service Getproductlist
1329632 inboundcc/Retail Mobile Service Validatebasket(renegotiation)
1329650 inboundcc/Retail Mobile Service Getproductlist
1329664 Digital Mobile Service Getproductlist
1329670 Digital Mobile Service GetRecommendationStory channels journeys API
keep annotation where ever we have complex logic or place statments which defines details about heavy expressions


2177
Upgrades -Same or Higher S15 rules based on all the current plan type

Impact in Other Areas
HL Requirement
Logic Changes
A. Update GetCurrentT ariff 1329834
B. Update strategy CheckUpgradeLifeCycleS15Rule 1329834
Impact in Other Areas
HL Requirement
Business discovered that the current PM tool screens do not support all the business scenarios
We need to be able to set up the Same or Higher S15 rules based on the current plan type
Ensure the logic is updated to support Same or Higher rules 'From Rule' for each of the combinations below
PAYM Loan with Device (Evo Airtime Plan and Device)
PAYM Loan without a Device  (Evo Airtime Plan and with no Device)
PAYM Handset  (Legacy)
PAYM SIMO (SIMO)
Logic Changes
A. Update GetCurrentTariff 1329834
As part of the new implementation, we will set the value for CurrentDeviceStatus in SetforMobileService component.
if (Handset.ProductCode!=”” )
Then
CurrentDeviceStatus = “WithDevice” , else CurrentDeviceStatus = “WithDevice”
Note: Make sure this Current Device status should pass till the end of the journey.1329842 Being to be able to set up the Same or Higher S15 rules based on all the current plan type1329834 Update the Early Upgrade MAF screen to support From /To support Evo Airtime plan only
App/UI No
logic Yes Updating the Logic to manage EUMAF with current device status.
PM Tool Yes  Business Configuration required. update required in existing  screen Area Yes/No Comments


2178

B. Update strategy CheckUpgradeLifeCycleS15Rule 1329834
1. Update DD UpgradeLifeCycleS15RuleConfig.1329842
Add new attribute CurrentDeviceStatus (which states customer is holding device or not).
"withDevice" and "WithOutDevice"are values to configure for CurrentDeviceStatus new attribute in PM Screen.

2. Verify Handset FulfilmentItemCode in ProductRoot  to get the Current status and get the Handset FulfilmentItemCode
Import Product root and add filter HandsetProduct  @String.equalsIgnoreCase(.FulfilmentItemCode,"Handset").
set CurrentDeviceStatus in SetDeviceStatusforInput component.
if (Handset.ProductCode!=”” )
Then
CurrentDeviceStatus = “WithDevice” , else CurrentDeviceStatus = “WithDevice”
Note: Make sure this Current Device status should pass till the end of the journey.
update matching condition in DD to check with
 CurrentDeviceStatus (derived) = CurrentDeviceStatus (new attribute in DD).
WithDevice PaymHandset PaymLoan WithDevice -99999 -75 All
WithOutDevice PaymSIMO PaymSIMO WithOutDevice -99999 -180 All
WithDevice PaymLoan PaymLoan WithOutDevice -99999 -75 All
WithOutDevice PaymLoan PaymLoan WithDevice -99999 -180 AllCurrent Device
StatusFromCustomerTy
peToCustomerTypeRecommendedD
eviceStatusContractEndDate
FromContractEndDate
ToTeam


2179

The logic for Same or Higher S15 rules is not changing only configuration and derivation to identify current device status is included.
Note: DEV Test Scenario to test required to apply the Same or Higher S15 MAF rules in E2E Flow for upgrades.

keep annotation where ever we have complex logic or place statments which defines details about heavy expressions


2180
Upgrades - Pre to post S15 Threshold: Remove the Tenure Restriction
Impact on Other Areas
Dependencies

HL Requirement:
The Pre to Pos S15 Threshold logic is only applied if the plan ' From' and 'To' Tenure are the same (for example 24 Months to 24 Months)
and new change is to remove this restriction with some exceptions. These changes are required for Mobile Assisted (InboundCC and
Retail) and Digital Recommendation
Logic Changes:
Update strategy: GetRecommendedTariff
Changes are required to the existing component of the set property known as "Check SkipS15Threshold".
Remove the following condition from the existing set property component known as "Check SkipS15Threshold” :
((.CurrentTariffTenure!=0)
&&
.CurrentTariffTenure!=.RecommendedTenure
 1329742 Pre to post S15 Threshold: Remove the
Tenure Restriction
PM Tool No
PM Tool KT Documentation No
Knowledge Transfer No
App No
DB No  Area Yes/No Comments
PM Tool No
App No
DB No  Area Yes/No Comments
Pre to post S15 …
30 May 2023, 10:05 AMre.xlsx


2181
Update the condition as below in the existing component of the set property named "CheckSkipS15Threshold".
Set .SkipS15Threshold with New Condition: ((.CurrentTariffTenure!=0)
&&((.CurrentTariffTenure=1&&.RecommendedTenure!=1)||(.CurrentTariffTenure!=1&&.RecommendedTenure=1)))
Reference Purpose:

Test Scenarios:
Test Pre to Pos S15 calculations for all three channels: (InboundCC and Retail) and Digital Recommendation
Please find attached sheet for tenure restrictions


2182
Upgrades - Pre to post S15 Threshold: Remove the Product Journey Restriction
Impact on Other Areas
Dependencies
Logic changes:S15JourneyLevelThreshold Decision Data.csv
User Story: 1329761
Create new decision data: S15JourneyLevelThreshold
Create two new SR properties FromProduct and ToProduct of type Text in Class: VFUK-AOMFW-SR
Create new SR property called “ApplyS15“ of type TrueFalse in Class:  VFUK-AOMFW-SR
Add SR properties: pyName,FromProduct,ToProduct and ApplyS15 in form tab of new decision data called "S15JourneyLevelThreshold"
PM Tool Changes:
PM Validations(TBC):  FromProduct and ToProduct should be considered as keys and generate unique number for pyName
FromProduct - Text
Static Values: PaymLoan/PaymSIMO/PaymHandset
ToProduct- Text
      Static Values: ToSIMO/ToHandset/ToSIMO30
ApplyS15- Boolean1329761 Pre to post S15 Threshold: Being able to
manage which Product Journey will trigger an
S15 Threshold1329751 Remove the Product Journey Restriction
PM Tool Yes
PM Tool KT Documentation No
Knowledge Transfer No
App No
DB No  Area Yes/No Comments
PM Tool Yes
App No
DB No  Area Yes/No Comments
FromProduct ToProduct ApplyS15


2183
Data for S15JourneyLevelThreshold:
Notes: For development tests, test positive and negative scenarios by modifying ApplyS15 values.
1329751: Update strategy: GetRecommendedTariff
Remove the connection between external input and existing decision data called RecommendationBlocks
Connect external input to new set property called “Set ApplyS15“ and set .ApplyS15="False"
Import new decision data called "S15JourneyLevelThreshold" and connect new set property “Set ApplyS15“ called  to newly imported
decision data.
In this decision data add conditon .CustomerType=.FromProduct and .ToPathway=.ToProduct and in the properties maping tab
enable additional mapping checkbox and map property called .ApplyS15=.ApplyS15
Connect this new decision data called "S15JourneyLevelThreshold" to an existing decision called RecommendationBlocks
Update the condition as below in the existing component of the set property named "CheckSkipS15Threshold"
Remove the following entire condition from the defined property called "CheckSkipS15Threshold":
(@String.equalsIgnoreCase(.CustomerType,"PaymSIMO")&&@String.equalsIgnoreCase(.ToPathway,"ToHandset"))||
((@String.equalsIgnoreCase(.CustomerType,"PaymLoan")||@String.equalsIgnoreCase(.CustomerType,"PaymHandset"))&&
(@String.equalsIgnoreCase(.ToPathway,"ToSIMO")||@String.equalsIgnoreCase(.ToPathway,"ToSIMO30")))
Update with new condition as below in set property component called “Check SkipS15Threshold“
New condition: Set .SkipS15Threshold= .ApplyS15?false:true
Reference Purpose:

 Text Text Boolean
PaymLoan/PaymSIMO/PaymHandset ToSIMO/ToHandset/ToSIMO30 FALSE
PaymHandset ToHandset TRUE
PaymSIMO ToHandset TRUE


PaymHandset ToHandset TRUE
PaymSIMO ToHandset TRUE
PaymSIMO ToSIMO TRUE
PaymHandset ToSIMO TRUEFromProduct ToProduct ApplyS15


2184
Upgrades - Pre to post S15 Threshold: Being Able to manage Pre to Post
Threshold at journey level
Impact on Other Areas
Dependencies

HL: The Pre to Post Targets are currently managed at Segment Strategy and Recommendation Position Level. Extend Pre to Post
Threshold Targets at Journey Level (I.e. SIMO to SIMO or SIMO to Handset). These changes are required for Mobile Assisted (InboundCC
and Retail) and Digital Recommendation
PM Tool Changes:
The PM should add two attributes called "FromProduct" and "ToProduct" to S15Threshold Screen.
PM Validations: Currently SegmentStrategy,RecommendedPosition are considered as keys for S15Threshold decision data and Add 2
additional keys: FromProduct and ToProduct also have to be considered as keys.
FromProduct - Text1329830 Pre to post S15 Threshold:  Update  PM Tool
to allow the S15 Threshold to be managed at
Journey Level1329818 Pre to post S15 Threshold: Being Able to
manage Pre to Post Threshold at journey level
PM Tool Yes
PM Tool KT Documentation No
Knowledge Transfer No
App No
DB No  Area Yes/No Comments
PM Tool Yes
App No
DB No  Area Yes/No Comments
S15Threshold …
10 Jul 2023, 01:54 PMata.csv
 Pre to post S15 …
31 May 2023, 03:42 AMed.xlsx


2185
 Static Values: PaymLoan/PaymSIMO/PaymHandset
ToProduct - Text
Static Values: ToSIMO/ToHandset/ToSIMO30

Logic changes:
Decision Data Changes(1329830): S15Threshold
Add the two new SR properties: FromProduct and ToProduct created as part of 1329751 in the form tab of existing decision data called
"S15Threshold"
Update Strategy(1329818): GetRecommendedTariff
Update existing decision data component "S15Threshold" with additional conditions
Add two more additional conditions like .CustomerType= .FromProduct(From Decision Data) and .ToPathway=.ToProduct(From
Decision Data)

 Text Text
PaymLoan/PaymSIMO/PaymHandset ToSIMO/ToHandset/ToSIMO30FromProduct ToProduct


2186
Upgrades - MBB GigaCube

Impact in Other Areas
HL Requirement
Business Would like to the revise Giga/MBB eligibility requirements and what products should be displayed in the Edit screen for Giga
customer or MBB customers moving to Giga and MBB Devices based on the customer's CRE.
Logic Changes
A. Changes for Edit Screens /GetProduct list API. (1350634)
1. Device Tab
Step 1: grouping device plans.
Create New Strategy GetMBBDeviceList, which is being called from GetDeviceList.
input for this strategy will have all Device plans.
Add Three Filters to group device plans from external input.
Filter1: No Device Plans
Condition:  False
Filter2: 5G Giga Devices
Condition :  DeviceType=Data Device  and .ConnectionType=5G and DeviceCategory=Giga Cube
ConnectionType/DeviceCategory all are Existing product attributes for Device/Handset Products.
Filter 3: all Devices.
Condition:  DeviceType=Data Device
Step 2: Getting current plan details
import current product root Primary.ProductRoot 1350634 MBB - Display the correct products in the Edit Giga screen based on the CTN eligibility rules1337970 MBB Giga: Recommendations
App/UI No
logic Yes Updating the Logic to manage CRE Eligibility for MBB in GPL  Flow/Edit screens
PM Tool No  Area Yes/No Comments


2187
set  below  attributes
PromotionId to ProductCode,
LatestContractStartDate - ContractStartDate
LatestContractEndDate- ContractEndDate
add two filters for Mobile service and Mobile broadband service
Filter for mobile service (this filter is needed to avoid erroring out data page, currently PEGA SR is raised to solve this ).
condition : @String.equalsIgnoreCase(.FulfilmentItemCode,"Mobile Service")
Filter for mobile broadband service
condition : @String.equalsIgnoreCase(.FulfilmentItemCode,"Mobile Broadband Service")
Create A set property to set Identifier
Identifier="P_"+ ProductCode
Call D_Tariff Data page with this identifier and get tariff details
set Tariff details in set property FetchCurrentTariffDetails
set CurrentPackageBand = PackageBand from data page.
.Duration=.Duration from data page
Create IsNewCustomer Boolean property. (new customer if account creation date is more than 90 days)
IsNewCustomer =
if(@AOMUtilities.CalculateNumberOfDaysFromToday(D_LiveAccountInformation[AccountNumber:Primary.OwnerAccountNumber].Creation
DateTime) >90, true,false)
add Filter to allow MBB Plan only.
Condition :
@String.equalsIgnoreCase(.FulfilmentItemCode,"Mobile Broadband Service")

Step3: selecting grouped plans in Step 1 based on current details derived in step 2
Create a switch condition and connect three filters based on the below conditions.
if  MBBFlag =Y and simonly=Y and CRE type is Normal and the customer start date is 30-90 days connect to Filter1, No device plans.
else if  (CurrentPackageBand contains GigaCube and MBBFlag=Y and CRE type is SIMOFlex or FlexiUpgrade) connect to Filter 2, (5G
Giga Devices)


Giga Devices)
 Else if ((CurrentPackageBand band is not GigaCube and MBBFlag=Y and CRE type is SIMOFlex or FlexiUpgrade)  or (CRE type is
Normal and  !IsNewCustomer )
connect to Filter 3 All Devices.


2188

Update GetDeviceList
Add a New Substrategy GetMBBDeviceList after PopulateAsRecommended data join
Connect Substrategy to SetRecommendedDeviceCodeforStock set property and MostSoldDevices Data join

2. Tariff Tab

GetListofActiveTariffs
Add Two Filters to separate MBB and Non-MBB Plans.
Create a filter for MBB:  with  condition MBBFlag = Y
Create a filter for Non-MBB: with condition MBBFlag!= Y
connect MBB Filter with data join GetEligibleTariffsforGetProductListAPIMBB
and connect Non-MBB filter with GetEligibleTariffsforGetProductListAPI


2189
GetListOfValidTariffsFromPC
Update existing Filters CRETypeCheckHandset and CRETypeCheckSIMOTariffs
remove conditions related to data devices and conditions for MBBFlag!= Y
add new filter MBB Plans MBBFlag=Y
Update Switch condition: if SubscriptionType=MobileService connects with SelectTariffList set property else to connect with MBBPlans
Filter.
Update Strategy GetTariffList

Add Two Filters to maintain different paths for MBB and Non-MBB plans. after CurrentTariffDetails set property.
Create a filter for MBB:  with  condition MBBFlag = Y
Create a filter for Non-MBB: with condition MBBFlag!= Y
Call Substrategy ApplyCREToMBBTariffs in MBB Path
Create a switch to select MBB Flow and not MBB Flow
Switch condition: if SubscriptionType=MobileService connects with Non-MBB filter else connect with ApplyCREToMBBTariffs strategy.


2190
Create a new Strategy ApplyCREToMBBTariffs

External input will have all MBB Tariffs.
Create 4 Filters to group MBB plans into 4 groups.
Filter1: 5g GigaCube 24 tenure plans.
Condition :  PackageBand contains "5G GIGACUBE PKG" && TariffTenure="24"
Filter2: device plans only
Condition :  MBBFlag= Y and .SIMOnly = N
Filter 3: all giga cube simo plans only .no device plans and no MBB Plans.
Condition:  PackageBand contains "SIMO GIGACUBE PKG" and .SIMOnly = Y
Filter4: All plans
Condition:  MBBFlag= Y

Create a switch condition and connect these 4 filters based on the below conditions.
if the current package band is gigacube and the CRE type is Flexi or simoflex, Connect to Filter 1
else if  (current package band is not GigaCube and ismbb=Y and CRE type is simoflex or flexi upgrade) connect to Filter 2
else if the current package band is GigaCube and CRE type is Normal and the customer start date is 30-90 days
connect to Filter 3
else CRE type is Normal then Connect to Filter 4

B. Changes for  Recommendation API. (1337970)
Update Strategy ApplyCREConditionForRecommendation


2191

Update Switch condition
@String.equalsIgnoreCase(Primary.RetentionEligibility.Type,"Normal")&&
(@String.equalsIgnoreCase(DataDevice.DeviceCategory,"Dongle")||@String.equalsIgnoreCase(DataDevice.DeviceCategory,"Mobile
Wifi"))||(@String.equalsIgnoreCase(GetCurrentTariff.SIMOnly,"Y")&&GetCurrentTariff.CurrentTariffTenure>1)||
(@String.equalsIgnoreCase(GetCurrentTariff.SIMOnly,"Y")&&GetCurrentTariff.CurrentTariffTenure=1&&AccountCreationDateTimefromtoday
.ValueInteger>30&&AccountCreationDateTimefromtoday.ValueInteger<90)||
//If it is Gigacube customer and CREType Normal
@String.equalsIgnoreCase(Primary.RetentionEligibility.Type,"Normal")&&
(@contains(@string.toUpperCase(GetCurrentTariff.CurrentPackageBand),"GIGACUBE"))&&@AOMUtilities.CalculateNumberOfDaysFromT
oday(Primary.LatestContractEndDate)>0

Note: section B  changes are already applied as part of the Defect fix in SIT.


2192
Release 4.07


2193
NBA-Create Logic to Define Business Properties for use in NBA decisioning
Impact on Other Areas:
Dependencies:
Logic Changes:
A. Create SR Properties
Create the following SR properties in the Business Artifacts ruleset.
DaysRemainingInContract of type Integer
DaysSinceContractStart of type Integer
CreditApprovalStatus of type Text
MobileTariffGroup of type Text
AccountHasHomeBroadband of type Boolean

B. Create new Decision Table EvaluateMobileTariffGroup
Save as 'EvaluateTariffTypes' as 'EvaluateMobileTariffGroup'
Update as below:1400370 Create Logic to Define Business Properties for use in NBA
decisioning
PM Tool No
PM Tool KT Documentation No
Knowledge Transfer No
App No
DB No  Area Yes/No Comment
PM Tool No
App No
DB No  Area Yes/No Comment
N N @String.equalsIgnoreCase(.
Segment,"Loan")  !@String.contains(@
String.toUpperCase(.
ProductDescription3)
,"WATCH") && EvoHandsetSIMOnly MBBFlag SegmentofTariff PackageBand ProductDescriptio
n3MobileTariffGroup


2194
!@String.contains(@
String.toUpperCase(.
ProductDescription3)
,"ONE NUMBER")
N Y @String.equalsIgnoreCase(.
Segment,"Loan")  !@String.contains(@
String.toUpperCase(.
ProductDescription3)
,"WATCH") &&
!@String.contains(@
String.toUpperCase(.
ProductDescription3)
,"ONE NUMBER") EvoTablet
Y N @String.equalsIgnoreCase(.
Segment,"Loan")  !@String.contains(@
String.toUpperCase(.
ProductDescription3)
,"WATCH") &&
!@String.contains(@
String.toUpperCase(.
ProductDescription3)
,"ONE NUMBER") EvoSIMO
N N @String.notEqualsIgnoreCas
e(.Segment,"Loan") not in
("Watch","OneNumb
er")BundleHandset
N Y @String.notEqualsIgnoreCas
e(.Segment,"Loan")!@String.contains(@
String.toUpperCase(.
PackageBand),"GIG
ACUBE") &&
@String.notEqualsIg
noreCase(.Package
Band,"Dongle")!@String.contains(@
String.toUpperCase(.
ProductDescription3)
,"WATCH") &&
!@String.contains(@
String.toUpperCase(.
ProductDescription3)
,"ONE NUMBER") BundleTablet
Y N @String.notEqualsIgnoreCas
e(.Segment,"Loan") !@String.contains(@
String.toUpperCase(.
ProductDescription3)
,"WATCH") &&
!@String.contains(@
String.toUpperCase(.
ProductDescription3)
,"ONE NUMBER") SIMO
   @String.contains(@
String.toUpperCase(.
PackageBand),"GIG
ACUBE") Gigacube
    @String.contains(@
String.toUpperCase(.
ProductDescription3)
,"WATCH") ||
@String.contains(@OneNumber


2195

C. Create Strategy CommonBusinessPropertiesForCBUCustomers
Create a Strategy CommonBusinessPropertiesForCBUCustomers in Business Artifacts ruleset.
Enable External Input
Add a Data Import 'Tariff Details'
Which calls the Data Page: D_Tariff[Identifier:@if(Primary.SubscriberTariffProductCode!= "",
"P_"+Primary.SubscriberTariffProductCode,"*")].Page
Add Properties Mappings:
 .SegmentofTariff = .SegmentOfTariff
.MBBFlag = .MobileBroadbandIndicator
Add a Set Property 'Set ProductDescription3'
Set ProductDescription3
=D_VFUKFWAOMFWDataProductReference[ProductCode:Primary.SubscriberTariffProductCode].ProductDescription3
Connect from 'Tariff Details'
Call Decision Table 'EvaluateMobileTariffGroup' and connect from 'Set ProductDescription3'
Add a External Substrategy call to 'Get Product Reference For Product Holding' Primary.ProductHoldingList as below
Add a Filter component 'Active ProductHoldings' with condtition:
@stringEqualsIgnoreCase(.StatusCode, "Active") && (@isNullOrEmpty(.EffectiveEndDate) ||
@CalculateNumberOfDaysFromToday(.EffectiveEndDate)<0)
Add a Filter component 'Filter for 105691 and 100085' with filter condition:
.ProductCode="105691" || .ProductCode="100085")
Add a Set Property 'CommonBusinessPropertiesForCBUCustomers'
Below Test Properties provided by Matt
.DaysRemainingInContract = -1*@CalculateNumberOfDaysFromToday(Primary.LatestContractEndDate)String.toUpperCase(.
ProductDescription3)
,"ONE NUMBER")
 Y    MBB
     Unknown


2196
Proposition Filter Condition - offer is valid if property value is greater than 90. (.DaysRemainingInContract > 90)
.DaysSinceContractStart = @CalculateNumberOfDaysFromToday(Primary.LatestContractStartDate)
Proposition Filter Condition - offer is valid if property value is greater than 30. (.DaysSinceContractStart > 30)
.CreditApprovalStatus = @if(Filterfor105691and100085.ProductCode="","Approved","Declined")
Proposition Filter Condition -  offer is valid if property value = "Approved"
.MobileTariffGroup = EvaluateMobileTariffGroup.MobileTariffGroup
Proposition Filter Condition -  offer is valid if property value started with "Evo"
AccountHasHomeBroadband = Primary.CustomerAccount.FLBBSubscriptionCount>0
Proposition Filter Condition -  offer is valid if property value = false
Connect External Input to Set Property 'Set ProductDescription3'  and Set Property 'Set ProductDescription3' to Results.

D. Create Strategy CommonBusinessPropertiesForEBUCustomers
Create a Strategy CommonBusinessPropertiesForEBUCustomers in Business Artifacts ruleset.
Enable External Input
Add a Set Property 'CommonBusinessPropertiesForEBUCustomers'
As of now, we Keep it as empty as a place holder, opti will add the required mapping
For Dev Test, Matt will provide some Test Offer and properties (this need to be removed in the design after Dev tests)
Connect External Input to Set Property and Set Property to Results.

E. Create Strategy CommonBusinessPropertiesFor AllCustomers
Create a Strategy CommonBusinessPropertiesForAllCustomers in Business Artifacts ruleset.
Enable External Input
Add a Set Property 'CommonBusinessPropertiesForAllCustomers'
As of now, we Keep it as empty as a place holder, opti will add the required mapping


As of now, we Keep it as empty as a place holder, opti will add the required mapping
For Dev Test, Matt will provide some Test Offer and properties (this need to be removed in the design after Dev tests)
Connect External Input to Set Property and Set Property to Results.

F. Create Strategy CommonBusinessProperties
Create a Strategy 'CommonBusinessProperties' in Business Artifacts ruleset.
Enable External Input
Call External Sub Strategy 'CommonBusinessPropertiesForAllCustomers' and connect from the External Input.
Add a Filter 'Consumer Business Unit Customer' with Filter condition
@String.startsWith(.CustomerSegment,"Consumer") and connect from 'CommonBusinessProperties'
Add a Filter 'Enterprise Business Unit Customer' with Filter condition
@String.startsWith(CustomerSegment.CustomerSegment,"Enterprise") and connect from 'CommonBusinessProperties'
Call External Sub Strategy 'CommonBusinessPropertiesForCBUCustomers' and connect from 'Consumer Business Unit Customer'
Filter
Call External Sub Strategy 'CommonBusinessPropertiesForEBUCustomers' and connect from 'Enterprise Business Unit Customer'
Connect Strategies 'CommonBusinessPropertiesForCBUCustomers' and 'CommonBusinessPropertiesForEBUCustomers' to the
Results Component.

G. Update Strategy IdentifyEligibleOffers


2197
Update the Strategy 'IdentifyEligibleOffers' to call the External Sub Strategy 'CommonBusinessProperties' between
'ControlQuarantinePeriod from BusinessPurpose' and 'Offers For Eligible Customer Segment'

 H. Create Strategy ApplyOfferDataToOfferToOfferVariationsForPFBusinessProperties
Save as existing Strategy 'ApplyOfferDataToOfferToOfferVariations' as
'ApplyOfferDataToOfferToOfferVariationsForPFBusinessProperties'  to the Business Artifacts ruleset
Remove all existing properties mapping in 'Map Offer Data To Offer To Offer Variations 1'
Add mappings for:
.DaysRemainingInContract = .DaysRemainingInContract
.DaysSinceContractStart = .DaysSinceContractStart
.CreditApprovalStatus = .CreditApprovalStatus
.MobileTariffGroup = .MobileTariffGroup
.AccountHasHomeBroadband = .AccountHasHomeBroadband
New property mappings will need to be added to this Data Join every time a new Customer property is added in one of the
'CommonBusinessProperties' strategies.
I. Update Strategy ApplyOfferDataToOfferToOfferVariations
Add a Sub Strategy call to 'ApplyOfferDataToOfferToOfferVariationsForPFBusinessProperties' between 'Map Offer Data To Offer To Offer
Variations 1' and the Results component
Connect Filter 'Offers Data' to 'ApplyOfferDataToOfferToOfferVariationsForPFBusinessProperties'

 J. Create Strategy ApplyOfferVariationsDataToTreatmentsForPFBusinessProperties
Save as existing Strategy 'ApplyOfferVariationsDataToTreatments' as 'ApplyOfferVariationsDataToTreatmentsForPFBusinessProperties'
to the Business Artifacts ruleset
Remove all existing properties mapping in 'Map Offer Variations Data To Treatments'
Add mappings for:


Remove all existing properties mapping in 'Map Offer Variations Data To Treatments'
Add mappings for:
.DaysRemainingInContract = .DaysRemainingInContract
.DaysSinceContractStart = .DaysSinceContractStart
.CreditApprovalStatus = .CreditApprovalStatus
.MobileTariffGroup = .MobileTariffGroup
.AccountHasHomeBroadband = .AccountHasHomeBroadband
New property mappings will need to be added to this Data Join every time a new Customer property is added in one of the
'CommonBusinessProperties' strategies.
K. Update Strategy ApplyOfferVariationsDataToTreatments
Add a Sub Strategy call to 'ApplyOfferVariationsDataToTreatmentsForPFBusinessProperties' between 'Map Offer Variations Data To
Treatments' and the Results component
Connect Filter 'Offer Variations Data' to 'ApplyOfferVariationsDataToTreatmentsForPFBusinessProperties'

 L. Create Strategy ApplyChannelEligibilityForPFBusinessProperties
Create a new Strategy 'ApplyChannelEligibilityForPFBusinessProperties' in the Business Artifacts ruleset.
Add a Filter component 'Unique Channel'
With condition .ValueText2="Channel"
Connect from External Input


2198
Add a Filter component 'ChannelBusinessPurpose' with condition:
With condition .ValueText2!="Channel"
Connect from External Input
Add a Data Join 'Add Proposition Filter BusinessProperties'
Connect from Filter component 'ChannelBusinessPurpose' and join with 'Unique Channel'
Join on:
.Channel = .Channel and
.BusinessPurpose = .BusinessPurpose
Enable Exclude
Add mappings for:
.DaysRemainingInContract = .DaysRemainingInContract
.DaysSinceContractStart = .DaysSinceContractStart
.CreditApprovalStatus = .CreditApprovalStatus
.MobileTariffGroup = .MobileTariffGroup
.AccountHasHomeBroadband = .AccountHasHomeBroadband
New property mappings will need to be added to this Data Join every time a new Customer property is added in one of the
'CommonBusinessProperties' strategies.
Connect Data Join to Results component.
M. Update Strategy ApplyChannelEligibility
Add a Sub Strategy call to 'ApplyChannelEligibilityForPFBusinessProperties' between 'Identify Channel Business Purpose In Context'
and the 'Check Channel Business Purpose Eligibility by Prop Filter'
Connect Group By 'Unique List Of Channel Business Purpose' to 'ApplyChannelEligibilityForPFBusinessProperties'
Update Group By 'Unique List Of Channel Business Purpose' to add Aggregates property .ValueText2="Channel"

N. Create Strategy ApplyTreatmentVariantEligibilityForPFBusinessProperties
Create a new Strategy 'ApplyTreatmentVariantEligibilityForPFBusinessProperties' in the Business Artifacts ruleset.
Add a Filter component 'Unique Treatments'
With condition .ValueText2="Treatment"
Connect from External Input
Add a Filter component 'Treatment to Treatment Variations' with condition:
With condition .ValueText2!="Treatment"
Connect from External Input


With condition .ValueText2!="Treatment"
Connect from External Input
Add a Data Join 'Add Proposition Filter BusinessProperties'
Connect from Filter component 'Treatment to Treatment Variations' and join with 'Unique Treatments'
Join on:
.Channel = .Channel and
.BusinessPurpose = .BusinessPurpose
Enable Exclude
Add mappings for:
.DaysRemainingInContract = .DaysRemainingInContract
.DaysSinceContractStart = .DaysSinceContractStart
.CreditApprovalStatus = .CreditApprovalStatus
.MobileTariffGroup = .MobileTariffGroup
.AccountHasHomeBroadband = .AccountHasHomeBroadband


2199
New property mappings will need to be added to this Data Join every time a new Customer property is added in one of the
'CommonBusinessProperties' strategies.
Connect Data Join to Results component.
O. Update Strategy ApplyTreatmentVariantEligibility
Add a Sub Strategy call to 'ApplyTreatmentVariantEligibilityForPFBusinessProperties' between Data Join 'Identify Treatment Variants
For Treatment' and Sub Strategy 'Apply FUT Check'
Connect from Group By 'Remove Duplicates' to 'ApplyTreatmentVariantEligibilityForPFBusinessProperties'
Update Group By 'Remove Duplicates' to add Aggregates property .ValueText2="Treatment"

P. Create Strategy ApplyTreatmentVariantCoreEligibilityForPFBusinessProperties
Create a new Strategy 'ApplyTreatmentVariantCoreEligibilityForPFBusinessProperties' in the Business Artifacts ruleset.
Add a Filter component 'Unique Treatment Variants from T2TV'
With condition .Type="Treatment To Treatment Variations Data"
Connect from External Input
Add a Filter component 'Treatment Variations' with condition:
With condition .Type="Treatment Variations Data"
Connect from External Input
Add a Data Join 'Add Proposition Filter Business Properties'
Connect from Filter component 'Treatment Variations' and join with 'Unique Treatment Variants from T2TV'
Join on:
.pyName = .TreatmentVariant and
.pyIssue = .pyIssue
Enable Exclude
Add mappings for:
.DaysRemainingInContract = .DaysRemainingInContract
.DaysSinceContractStart = .DaysSinceContractStart
.CreditApprovalStatus = .CreditApprovalStatus
.MobileTariffGroup = .MobileTariffGroup
.AccountHasHomeBroadband = .AccountHasHomeBroadband


.MobileTariffGroup = .MobileTariffGroup
.AccountHasHomeBroadband = .AccountHasHomeBroadband
New property mappings will need to be added to this Data Join every time a new Customer property is added in one of the
'CommonBusinessProperties' strategies.
Connect Data Join to Results component.
Q. Update Strategy ApplyTreatmentVariantCoreEligibility
Add a Sub Strategy call to 'ApplyTreatmentVariantCoreEligibilityForPFBusinessProperties' between Data Join 'Identify Active Treatment
Variants For Treatment' and Sub Strategy 'ApplyTreatmentVariationsCoreEligibility'
Connect from Group By 'Unique List of Treatment Variants' to 'ApplyTreatmentVariantCoreEligibilityForPFBusinessProperties'


2200
NBA-Run AOM batch during business hours, single or multiple times

Impact on Other Areas
Dependencies
Problem Statement
Solution Approach
Logic Changes:
A. Create New  DataFlow  IdentifyBestOBT reatmentsByBatch1
Impact on Other Areas
Dependencies
Problem Statement
  In Batch, we run 2 DFs
DF1  - here we compose the Data From all spines.
DF2 - here we do the decision.
As DF1 is taking more time and going beyond business hours and business making it stop, so that won't impact other services during
business hours. Due to this, we are not able to run DF2 and not make Deicosins.1393706 Run AOM batch during business hours, single or multiple
times
PM Tool No
PM Tool KT Documentation No
Knowledge Transfer No
App Yes
DB No  Area Yes/No Comments
Area Yes/No Comments
PM Tool No
App Yes  Need App changes for E2E
DB No  Area Yes/No Comments