2019
Reference:

Create New Strategy: ArbitrateBBGWBWEnhancedPrice
Enable External Input
Connect external Input to four new filters.
In first filter called “Non AUP And other  Offers“ add condition as .ParentChild="Parent"&&!@String.contains(.OfferName,"WBW")
Connect external Input to second filter called “AUP Offer Check“ and add condition as .ParentChild="Child"&&!
(@String.contains(.OfferName,"Device"))
Join external Input to third filter called “WBW Device Child Offers“ and add condition as
.ParentChild="Child"&&@String.contains(.OfferName,"Device")
Join external input to fourth filter called “BBG Child Offers“ and add condition as
.ParentChild="Child"&&@String.contains(.OfferName,"BBG")
Connect third filter called “WBW Device Child Offers“ and fourth filter  called “BBG Child Offers“ to new filter. Name this new filter as
“Arbitrate TradeInMonthlyCredit Child Offers“ and add condition as
(.BundleParentTreatment!=""&&@String.contains(.BundleParentTreatment,"TradeInMonthlyCredit"))
Join filter “Arbitrate TradeInMonthlyCredit Child Offers“ to new filter called “TradeInMonthlyCredit WBWDevice Child Offer“ and  add
condition as @contains(.pyName,"WBWDeviceDiscount")
Connect filter “Arbitrate TradeInMonthlyCredit Child Offers“ to new filter called “TradeInMonthlyCredit BBG Child Offer“ and add
condition as @contains(.pyName,"BBG")
Create new setproperty called “Calculate TradeInMonthlyCredit BBG or WBW Child by Price“ and in set property set .pyName =
@if(TradeInMonthlyCreditWBWDeviceChildOffer.ValueDecimal>TradeInMonthlyCreditBBGChildOffer.ValueDecimal4,"WBWDeviceDisco


unt",@if(TradeInMonthlyCreditWBWDeviceChildOffer.ValueDecimal<TradeInMonthlyCreditBBGChildOffer.ValueDecimal4,"BBGTradeIn
MonthlyCredit",@if(TradeInMonthlyCreditWBWDeviceChildOffer.ValueDecimal=TradeInMonthlyCreditBBGChildOffer.ValueDecimal4,"BB
GTradeInMonthlyCredit","false")))
Connect filter “Arbitrate TradeInMonthlyCredit Child Offers“ to new filter called “Calculate TradeInMonthlyCredit Childs by Price Amount“
and add condition as @contains(.pyName,CalculateTradeInMonthlyCreditBBGorWBWChildbyPrice.pyName) and join this filter to result
component
Connect the filter called “Calculate TradeInMonthlyCredit Childs by Price Amount“ to new set property called “Set Price for BBG Child“
and set .Price="PriceInclVAT="+.BuybackGuaranteeValue+";" and set
.Identifier=@if(.ParentChild="Child",.ParentOfferName+"_"+.Channel,.pyName) Note: Set Identifier if it is not passing from parent
strategy otherwise setting identifier is not needed here.
Join “Calculate TradeInMonthlyCredit Childs by Price Amount“ to new filter called “BBG if eligible“ and add condition as
@contains(.pyName,"BBG") and connect this filter to new set property called “Set Qualifying Details“ and in this set property set below
fields and join this set property to result component

.ResponseType “QualifyingCriteria“


2020
Connect third filter called “WBW Device Child Offers“ and fourth filter  called “BBG Child Offers“ to new filter. Name this new filter as
“Arbitrate TradeInOneTimeCredit Child Offers“ and add condition as
(.BundleParentTreatment!=""&&@String.contains(.BundleParentTreatment,"TradeInOneTimeCredit"))
Join filter “Arbitrate TradeInOneTimeCredit Child Offers“ to new filter called “TradeInOneTimeCredit WBWDevice Child Offer“ and  add
condition as @contains(.pyName,"WBWDeviceDiscount")
Connect filter “Arbitrate TradeInOneTimeCredit Child Offers“ to new filter called “TradeInOneTimeCredit BBG Child Offer“  and add
condition as @contains(.pyName,"BBG")
Create new setproperty called “Calculate TradeInOneTimeCredit BBG or WBW Child by Price“ and int set property set .pyName =
@if(TradeInOneTimeCreditWBWDeviceChildOffer.ValueDecimal>TradeInOneTimeCreditBBGChildOffer.ValueDecimal4,"WBWDeviceDi
scount",
@if(TradeInOneTimeCreditWBWDeviceChildOffer.ValueDecimal<TradeInOneTimeCreditBBGChildOffer.ValueDecimal4,"BBGTradeInOn
eTimeCredit",
@if(TradeInOneTimeCreditWBWDeviceChildOffer.ValueDecimal=TradeInOneTimeCreditBBGChildOffer.ValueDecimal4,"BBGTradeInOn
eTimeCredit","false")))
Connect filter “Arbitrate TradeInOneTimeCredit Child Offers“ to new filter called “Calculate TradeInOneTimeCredit Childs by Price
Amount“ and add condition as @contains(.pyName,CalculateTradeInOneTimeCreditBBGorWBWChildbyPrice.pyName) and join this
filter to result component and join it to result component


filter to result component and join it to result component
Connect “Calculate TradeInOneTimeCredit Childs by Price Amount“ to new set property called “Set Price for BBG Child“ and set
.Price="PriceInclVAT="+.BuybackGuaranteeValue+";" and set
.Identifier=@if(.ParentChild="Child",.ParentOfferName+"_"+.Channel,.pyName) Note: Set Identifier if it is not passing from parent
strategy otherwise setting identifier is not needed here.
Join “Calculate TradeInOneTimeCredit Childs by Price Amount“ to new filter called “Eligible BBG Offer“ and add condition as
@contains(.pyName,"BBG") and connect this filter to new set property called “Set Qualifying Data“ and in this set property set below
fields and join this set property to result component.Price "PriceInclVAT="+.BuybackGuaranteeValue+";"
.Identifier @if(.ParentChild="Child",.ParentOfferName+"_"+.Channel,.pyName)
.AssetIntegrationId .AssetIntegrationId
.Value .Value (ProductId of Current Holding)
.Price "PriceInclVAT="+.BuybackGuarantee+";"
.AssetIntegrationId .AssetIntegrationId
.Identifier @if(.ParentChild="Child",.ParentOfferName+"_"+.Channel,.pyName)
.Value .Value (ProductId of Current Holding).ResponseType “QualifyingCriteria“


2021

Update Strategy EnhancedPriceForWBWDeviceOffers:
Connect External Input to new filter component called “BBG Devices“ and add condition in this filter component as
@String.equalsIgnoreCase(.ParentChild,"Child") && @String.contains(.OfferName,"BBG")
Add new sub strategy ArbitrateBBGWBWEnhancedPrice in this strategy.
Disconnect join from existing filters “Parent Not matched“ ,”AUP Offer Check” ,”Drop AUP WBW Device Child Offers if AUP child is
eligible” and set property “Reset Price“ with result component
Connect existing filters “BBG Devices“, “Parent Not matched“ ,”AUP Offer Check” ,”Drop AUP WBW Device Child Offers if AUP child is
eligible” and set property “Reset Price“ to new sub strategy “ ArbitrateBBGWBWEnhancedPrice“
Connect the sub strategy “ArbitrateBBGWBWEnhancedPrice“ to result component.

Update Dataflow : GetBestTreatmentsByGetNBA
Add new branch under IH Reporting and new path.
Add new filter called “BBG IH Reporting“ and below conditions as
Connect filter to convert shape and set below details


2022
Connect convert shape to destination data set  called InteractionHistoryReporting
Note: Below image is for reference purpose only


2023
Trade-In - PriceGuarantee
Impact in Other areas
Dependencies

1195832 (Epic)Cobra Price Guarantee CR
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
Cobra Final T ra…
28 Apr 2023, 08:24 AMue.xlsx
 Cobra Buyback …
28 Apr 2023, 08:22 AMee.docx


2024
Release 4.03


2025
Upgrades - Extending Refine by Params

HL Requirement
Introducing Storage and colour as New refine by parameters.
Business want to rerun the recommendation based on the customer's needs with storage and colour
Add Refine By Criteria to allow Storage and colour  Filterable, So that Agent can able to get recommendations based on respective
plans.
A.GetRecommendation Flow:
Make sure this storage and colour are passing till GetRecommendation API end. which we can do in PopulateOutputPropertiesForNBAA.
we are setting the connection type in line item level. this should work for UI/APP Team.
Refine by flow:
B.Update Strategy GetRecommendedHandset/GetRecommendedMBBDevice will be updated for MBB flow same logic for both AU
and MBB.
this will be impacting only devices(handsets/watches/mbb devices) so need to be updated.
App team will be sending Storage and colour as context parameters.
update the SetProperty'ContextProperties' as below
.HasColour =Primary.Context("HasColour")
.HasStorage =Primary.Context("HasStorage")
Update the Filter'RefineByFilter' as below1082409 Refine by: Being able to refine by Device colour and storage MBB
1082398  - pm tool story Ensuring the Refine By Colour, Storage and Size (watch only) drop
downs are dynamically updated and that the data is sourced from the
same place than Edit
1082431 Refine by: Being able to refine by Device colour and Size for Watch1082405 Refine by: Being able to refine by Device colour and storage Mobile
Logic Yes  Logic update to include this in Get
Recommendation,refineby and GPL flow.
PM Tool Yes   Pm tool config is required in business
config screen to manage new parameters


PM Tool Yes   Pm tool config is required in business
config screen to manage new parameters
APP/logic Yes  app/lto update the logic to consider new
attributes and refiney selection.
DB No  Team Task Comments


2026
@if(ContextProperties.HasStorage="" && ContextProperties.HasColour="",
@if(@String.equalsIgnoreCase(ContextProperties.HasColour,.DeviceColour)
&&
@String.equalsIgnoreCase(ContextProperties.HasStorage,.DeviceStorage),true,false))

Note : condition should use same wording/value configured in Product attributes and refine by param. example : DeviceColour and
DeviceStorage
 Watch flow
GetRecommendedWatch will get updated for watch flow
update the SetProperty'ContextProperties' as below
.HasColour =Primary.Context("HasColour")
.HasSize =Primary.Context("HasSize")
@if(ContextProperties.HasSize="" && ContextProperties.HasColour="",
@if(@String.equalsIgnoreCase(ContextProperties.HasColour,.DeviceColour)
&&
@String.equalsIgnoreCase(ContextProperties.HasSize,.DeviceSize),true,false))

GPL Flow: GetDeviceList
make sure Device storage and colour is moved to end , in the above strategy, so that UI/App can access these properties for the
devices section on UI.


2027
Upgrade - Managing HBB rules strategy
HL Requirement
Business wants to move a few HBB strategies which are identified for Rule implementations.
with this business will get access to update/extend them on a need basis.
Impacted Areas

Logic Changes:
no new logic implementation required. need to move the strategies to business artifact rulesets so that BAU will be easy to implement future rules.
Logic Recommendations:

.

note: ruleset and rule version will be based on the release. targeting for 4.03 release.1041050 HBB Upgrades Business Artifacts - for Logic Changes
App No
Logic Yes
PM Tool No
UI/VADR No  Area Yes/No Comments
new strategy UniversalRuleforAllandLateralRenewal
new strategy  UniversalRuleforSpeedDowngradestrategy for HBB Eligibility ,  to be moved to Business Artifact ruleset

Create a new strategy GetEligibleHBBPlans where we will execute
these two rules in  new strategies and send results back to parent
straegy.

this three strategies will be in business ruleset. Impacted Strategy GetListofEligibleHBBTariff  Change


2029
Upgrades - Special Addons
HL Requirement
Business want to consider Special Addons to display in Addon TAB, under Get product list API.
Impacted Areas
New ProductAttribute :
Create new attribute in Meta data for Addon

Logic Changes:
Update Strategy- GAddOGetAddOnListForEditDealLFrEdtDeal
1. Call strategy GetTariffDetailsFromPc to get details of the tariff in the basket. input to this strategy should be  RecommendedTariffCode.
2. update strategy GetTariffDetailsFromPc to get new product attributes from the D_Tariff data page.1157113 Being able to easily create below the line promotions in VADR using 'Special Add Ons'
1157135 Being able to select an 'Special Add On' in the Edit Tab if the Add on belongs to a Promotion
1157150 Being able to manage the Below the Line Promos1157127 Being able to select which teams have access to the BTL promotion
App Yes Update the Discount on  addon product.
DB No
Knowledge Transfer No
Logic Yes Update Existing flow
PM Tool Yes  configuration changes.-New product attribute configuration needed to extend
Addon Meta Data.
PM Tool KT Documentation No
UI/VADR No  Area Yes/No Comments
IsSpecialAddon Addon True/False Boolean/single
SpecialAddonCode Tariff N/A Text/single
SpecialAddonTeam Tariff N/A Text/multi-selectProperty Name Product default value Type


2030
3. update data page D_ServicesForTariff to get the IsSpecialAddon product attribute from the Accountservice data page.
4. after Filter component FilteroutMandatoryAutoAddedProducts add new two paths for spl addons and non spl addons.
5.spl addons should compare with tariff attributes
addoncode = SpecialAddonCode and SpecialAddonTeam = team(from context).
the result should connect to combine all addons to conitue the existing flow.
6.the non spl addons along with ATL addons should flow AsIs old flow.
7.if we have two spl addons compatible and one of them is already in ATL, suppress the second one.


2031
Upgrades - Calculate SecuredNetDiscountCost
HL Requirement
Design Change For Secure Net discount calculations. in both GetcustomerAPI and Getrecommendation API.
logic will do for GETRecommendation. app will do for GetCustomer API.
Impacted Areas
Dependencies
New ProductAttribute :
Create new attribute in Meta data for Addon

Logic Changes:
Update Strategy- CalculateNetRevenue (existing logic)
Check If tariff includes Secured Net Discount & Calculate SecuredNetDiscountCost
Query D_ServicesForTariff for each recommended tariff1163813 Ability to Identify and Process Discounts against an Add On Product
App Yes Update the Discount on  addon product.
DB No
Knowledge Transfer No
Logic Yes Update Existing flow
PM Tool Yes  configuration changes.
PM Tool KT Documentation No
UI/VADR No  Area Yes/No Comments
PM Tool Yes  New product attribute configuration needed to extend Addon Meta Data.
App Yes  APP team addon discount calculation will be part of GETCustomer API. independent of logic. they have
more product attributes for different products.
DB NA  Area Yes/No Comments
AddOnDuration 3 IntegerProperty Name default value Type


2032
Check if Secured Net (S_109908- which is AOM Business config parameter ) is part of tariff auto added add-on
(.RelationshipType="O"&&(.DefaultInd="Y"||.RexAutoAddInd="Y"))
Set CostExVAT= CostIncludingVAT/(1+VatCode)
Set SecuredNetDiscountCost=  CostExVAT *3
this calculation is changed, we need to multiply with new product attribute AddOnDuration which is added to every addon product.
Set SecuredNetDiscountCost=  CostExVAT * AddOnDuration
Set NetRevenue= PricePlanCost+ AddonCost+ InsuranceMonthlyCost*0.75*PricePlanTenure+ DiscountCost-SecuredNetDiscountCost
note: only highlighted changes in red need to implement


2033
Upgrades - Logic to recommend EVO products.
HL Requirement
Business want to change all laptops and tablets into  Evo Products. so, current logic need to work for these when they are EVO.
Impacted Areas
Logic Testing:
1088797:
Current implementation of MBB we have used segment of tariff to differentiate Bundle and evo based on CBU and
loan respectively.

so, Currently Tablets and Laptops are Bundled products only but in coming releases they will change into EVO products.  at that time our
logic should work asis.
This story is to test all those functionalities and rules when Tablets and evo are changed from CBU to Loan.
1082383:
 this is similar to 1088797 we will be testing CRE rules for MBB and Gigacube for EVO products.
the CRE eligibilities are available in respective eligibility rules  please find the sheets -->MBB CRE Rules sheet
946119
Currently refine by will give device type as Tablets/Laptops/Dongle and etc all MBB products.
so, in current implementeation when we got tablet. we will give Bundle tablets. 946119 Logic for Selecting Evo specific Device using the Refine by option1088797 MBB: Being able to sell Tablets and Laptops pre Evo
App Yes Update the Discount on  addon product.
DB No
Knowledge Transfer No
Logic Yes test only - conditional changes if required.
PM Tool No
PM Tool KT Documentation No
UI/VADR No  Area Yes/No Comments


2034
in future when tablets got updated to Evo we need to give Evo tablets only.

NOTE: for testing we can test both the products . but in reality.  device category can be either Bundle or EVO.
means: all Tablets/Laptops can be bundle or EVO.


2035
Upgrades - Display Name change for Watch Device
HL Requirement

At present  in the watch journey, the name of the watch displayed in the Edit Screen and in the Recommendation Card are not detailed
enough and do not contains the watch band colour or material.
Business would like to use the device long name provided by the CMT product catalogue in the Watch Edit and Recommendation Screen
which will impact both GetcustomerAPI and Getrecommendation API.
Impacted Areas
We have to change the display name for both Get recommendation API and Getproductlist  API
Logic Changes: GetRecommendation flow
Update Strategy- GetRecommendedWatch
Check D_SellablePaymHandsets populate  Name is the property from CMT that should be available.
update strategy PopulateOutputPropertiesForNBAA
under Reco flow RecommendationName needs to update with Name(from datapage) for only watch products.
the condition looks like this (please update if needed)
@if(.DeviceName!="",
if(!(.IsWatchSubscription),.DeviceName,.Name) + " " +.RecommendedTariffDisplayName,
.RecommendedTariffDisplayName)
Logic Changes: GetProductlist flow
Update Strategy- GetDeviceList
Check D_SellablePaymHandsets populate  Name is the property from CMT that should be available.1027866 Watch Journey: Update the Model Name in the Edit Screen and Recommendation to be sourced from CTM instead of
Metadata
App No
DB No
Knowledge Transfer No
Logic Yes Update Existing flow
PM Tool No  No
PM Tool KT Documentation No
UI/VADR No  Area Yes/No Comments


2036
update strategy PopulateOutputPropertiesForDevice
under SetItemDetails
DisplayName should be updated for watch products with name/Product name attribute.
the condition looks like this (please update if needed)
if(.DeviceName!="",
if(!(.IsWatchSubscription),.DeviceName,.ProductName),
.ProductName)

. we have to verify responses for watch products how the display name is getting displayed.


2037
NBA - Bundle Event Tech Debt - Introduce Multiline Messaging
Impact on Other areas
Dependencies
Logic Changes:
A. Update T2TV decision data structure for all Issues + PM Changes
Add the below SR property to All T2TV DDs under each Squad.
Create SR Property 'GenerateAccountOwnerCopy(Boolean)'.
Create SR Property 'AccountOwnerCopy(Text)'
Create new SR property of ContactRole (Text) - this for IH1033727 Bundle Event Tech Debt - Introduce Multiline Messaging
PM Tool Yes  Need new columns in T2TV Screen
PM Tool KT Documentation No
Knowledge Transfer No
App No
DB No  Area Yes/No Comments
PM Tool Yes   Need new columns in T2TV Screen
App No
DB No  Area Yes/No Comments
TreatmentToTreatmentVariations Care TreatmentToTreatmentVariations
TreatmentToTreatmentVariations CrossSell TreatmentToTreatmentVariations
TreatmentToTreatmentVariations Engagement TreatmentToTreatmentVariations
TreatmentToTreatmentVariations HBB TreatmentToTreatmentVariations
TreatmentToTreatmentVariations Loyalty TreatmentToTreatmentVariations
TreatmentToTreatmentVariations Renew TreatmentToTreatmentVariations
TreatmentToTreatmentVariations Retain TreatmentToTreatmentVariationsDecision Data Issue Group


2038
B. Update  Strategy IdentifyBestTreatmentVariantForTreatment
After Embedded Strategy add Set Property 'One Treatment Variant'
After 'One Treatment Variant' add a Filter and name as 'Subscription Is Restricted'
if(Primary.Context(AnonymousSpendControl) != "", Primary.Context(AnonymousSpendControl) = "Restricted",
Primary.MyAccountControlFlag ="Y")
Add one more filter, after above and name the Filter as 'OwnerAccountCopyVariants' and add the below condition and connect to the
new Set Property.
.GenerateOwnerAccountCopy ="true"
Add New Set Property 'Account Owner' and connect it to the Results.
Set .ContactRole to "AccountOwner"
Connect existing Set Property 'Output Of For Each' after 'One Treatment Variant'
Add a new Set Property 'End User' from 'Output Of For Each' and connect to results
set .ContactRole to "End User"
C. Update  Strategy PopulateOutputPropertiesForTrigger
Update SetProperty 'Set Common Output Properties'
.ContactDetail = if(.ContactRole ="AccountOwner", if(Primary. Context(AccOwnerMSISDN)!= "", Primary.
Context(AccOwnerMSISDN),Primary.CustomerAccount.OldestSubscription.ServiceNumber, Primary.ServiceNumber))
.TreatmentDynamicVariable1= if(.ContactRole ="AccountOwner",.AccountOwnerCopy ,.TreatmentDynamicVariable1))
D. Update  Strategy ApplyTreatmentToTreatmentVariationsDataToTreatments
Update Data Joins ‘Eligible Treatment Variants For Eligible Treatment’ and ‘Eligible Treatment Variants For Eligible Treatment - Assisted’
to add property mappings:
.GenerateAccountOwnerCopy = .GenerateAccountOwnerCopy,
.AccountOwnerCopy = .AccountOwnerCopy
.ContactRole = .ContactRole
 E. Update  Strategy SetGenericIHReportingAttributes


.ContactRole = .ContactRole
 E. Update  Strategy SetGenericIHReportingAttributes
After ExternalInput add 2 Filters
Name the First filter as ‘EndUserCopyVariants' and connect to SetProperty 'Set IH Reporting Properties'.
.ContactRole !="AccountOwner"
Name the 2nd Filter as 'OwnerAccountCopyVariants' and add the below condition and connect to the new SetProperty.
.ContactRole ="AccountOwner"
Add New SetProperty 'SetIHReportingAttributesforOwnerAccountCopy'
Follow the below pattern for all properties which use Subscription Data SetProperty (get Data from the OldestSubscription page
.PrepayPostpayType = If(.ContactRole ="AccountOwner", if(Primary.Context(AccOwnerMSISDN)=
Primary.CustomerAccount.OldestSubscription.ServiceNumber, Primary.CustomerAccount.OldestSubscription.PrepayPostpayType,
""),.Primary.PrepayPostpayType)TreatmentToTreatmentVariations Retention TreatmentToTreatmentVariations
TreatmentToTreatmentVariations Service TreatmentToTreatmentVariations
TreatmentToTreatmentVariations TradeIn TreatmentToTreatmentVariations
TreatmentToTreatmentVariations                 Upsell TreatmentToTreatmentVariations


2039

F. Update  Strategy IdentifyBestTreatmentVariantForTreatmentForSimulation
Update ‘Match Eligible Propositions’ to add the property mapping .ContactRole=.ContactRole
G. Update Proposition Filter ChannelBusinessPurposeEligibility
Remove 'GBL018 Account owner controls not set to restricted' rule from SMS-Upsell


2040
NBA - Introduce Dual Running For Evo and Non Evo MBB Plans
Impact on Other areas
 Dependencies
Logic Changes:
A. Update Decision table EvaluateTariffTypes
Update the Decision table below1078873 Introduce Dual Running For Evo and Non Evo MBB
Plans
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  Handset
else if N Y Loan  Tablet
else if N Y CBU @String.notEqual
sIgnoreCase(.Pa
ckageBand,"Don
gle")&&!
(@String.contains
(.PackageBand,"
GigaCube"))BundleTablet New: To support
dual running
else if Y N CBU  SIMOnly
else if Y Y CBU  DataSIMOnly  Label SIMOnly MBBFlag SegmentofTariff PackageBand RETURN Note


2041
B. Update Strategy GetEligibleTariffsForSKU
Add a SetProperty Component 'Handle Legacy Plans'
.TariffType = @String.replaceAll(.TariffType,"Bundle","")
Update the Datajoin “Join Eligible Tariff Data“ to connect from the new SetProperty
C. Update Strategy GetAllTariffs
Add a SetProperty Component ‘Handle Legacy Plans'  and get it to connect from the Decision table and connect to the 'Exclude SIMO
Plans’ Filter
TariffType = @String.replaceAll(.TariffType,"Bundle","")
Update filter 'Exclude SIMO plans' as below
@String.notEqualsIgnoreCase(.TariffType,"DataSIMOnly") || @String.notEqualsIgnoreCase(.TariffType,"SIMO")
D. Update Strategy  ManageAdditionalLineDiscount
After External Input, Remove the Components Till 'Set TariffScore and TariffTier' SetProperty Componentelse if N Y CBU @String.equalsIg
noreCase(.Packa
geBand,"Dongle")Dongle
else if Any Y CBU @String.contains(
.PackageBand,"G
igaCube")Gigacube
otherwise     Default


2042
After External Input Add 2 SetProperty Components
Name the first one as 'Remove DP Prefix' and add the below mapping
                   .ValueText2=@replaceAll(.DefaultDiscountProductCode,"DP_","")
Name 2nd one as 'Passthrough'
Add DD import  Component Add DecisoinData ' 'Get Default Discount'' with the below conditions

After SetProperty, Add  Datajoin Component 'Get Default Discount Data'
Add Conditoins as below


2043
Add 2 DataJoin Components as below
Add first Datajoin 'Discounts With Same Value' with below conditions


2044

Add 2nd DataJoin 'DIscounts With No Tenure Value' with below conditoins


2045
Add a Switch component 'Apply Correct Default By Tenure' and as below
Add a Group By Component 'Get Max of Default Discount code' and add as below


2046

D. Update Strategy  SecondLineDiscountCompatibility
remove below filters
Add  Filter 'All Promotional Discounts'  as below
.DiscountGroup="Promotion"
Add Filter 'Not SIMO or Tablet Plans' as below
.TariffType!="SIMOnly" && .TariffType!="Tablet" && .DiscountGroup!="Promotion"
Add Filter 'SIMO Plan and NOT Promotional' as below
.TariffType="SIMOnly"&&.DiscountGroup!="Promotion"
Add Filter 'Recommended Tariff is Not a Basic Plan' and get it connected from above filter and connect to emebeded stratgey .
     !.IsBasicsPlan
Add Filter 'Tablet Plan And NOT Promotional' as below
.TariffType="Tablet" && .DiscountGroup!="Promotion"
Add one more Filter 'Remove Together Discount For Non Evo' and get it connected from the above filter
 (.DiscountAmount<30.0000&&@equalsIgnoreCase(.DiscountType,"Percentage"))||.SegmentofTariff<>"CBU"


2048
SOHO (1186502) - Add New Squads EBUService

Impact on Other areas
 Dependencies
Adding a new Business Purpose (EBUService) to the NBA funnel
Create below new proposition decision data for the “EBUService” issue:PM Tool Yes Create a new business purpose “EBUService”
PM Tool KT Documentation Yes
Knowledge Transfer Yes
App No
DB No  Area Yes/No Comments
PM Tool Yes
App No
DB No  Area Yes/No Comments
1 AppPush EBUService AppPush
2 OutboundCC EBUService OutboundCC
3 SMS EBUService SMS
5 Offers EBUService Offers
5 OfferToOfferVariations EBUService OfferToOfferVariations
6 OfferVariations EBUService OfferVariations
7 T2TVActions EBUService T2TVActions
8 T2TVAttributes EBUService T2TVAttributes
9 TreatmentVariations EBUService TreatmentVariations
10 TreatmentToTreatmentVariations EBUService TreatmentToTreatmentVariationsIndex Decision Data Business Issue Group


2049
Note: Import of New Decision Data will be covered in the Squad split on the other page
Create PropositionFilters as Below for Each Decision Data in AOMFW-Enterprise-Business-Artifacts
Update strategy ApplyOfferCoreEligibility
Add new Filter 'EBUService' and check as below
@equalsIgnoreCase(.BusinessPurpose,EBUService)
Add new PropositionFilter 'Execute EBUService Proposition Filter' and add Offers PF
Connect it to the Results
Update strategy ApplyOfferSquadEligibility
Create a new SubStratgey 'EBUServiceSquadZoneForOffer'   in AOMFW-Enterprise-Business-Artifacts
Add new Filter 'EBUService' and check as below
@equalsIgnoreCase(.BusinessPurpose,EBUService)
Add the New Substrategy 'EBUServiceSquadZoneForOffer'
and connect it to the Results
Update strategy ApplyOfferVariantCoreEligibility
Add new Filter 'EBUService' and check as below
@equalsIgnoreCase(.BusinessPurpose,EBUService)
Add new PropositionFilter 'Execute EBUService Proposition Filter' and Add offerVariant PF
Connect it to the Results
Update strategy ApplyOfferVariantSquadEligibility
Create a new SubStratgey 'EBUServiceSquadZoneForOfferVariant'  in AOMFW-Enterprise-Business-ArtifactsEBUServiceOutboundCCTreatmentEligibility
EBUServiceSMSTreatmentEligibility
EBUServiceOffersEligibility
EBUServiceOfferVariationsEligibility
EBUServiceT2TVActionsEligibility
EBUServiceTreatmentVariationsEligibility
EBUServiceTreatmentToTreatmentVariationEligibilityEBUServiceAppPushTreatmentEligibility


2050
Add new Filter 'EBUService' and check as below
@equalsIgnoreCase(.BusinessPurpose,EBUService)
Add the New Substrategy 'EBUServiceSquadZoneForOfferVariant'
and connect it to the Results

Update strategy ApplyOfferVariantEligibility
Update filter “Apply Product Holding Check“
Add condition  - || @equalsIgnoreCase(.BusinessPurpose,EBUService)
Update strategy ApplyTreatmentCoreEligibility
Create a new sub-strategy 'ApplyEBUServiceTreatmentCoreEligibility'
Add Filter 'SMS channel' and condition as.Channel ="SMS"
Add Respective Proposition Filter 'EBUServiceSMSTreatmentEligibility'
and this needs to be followed for All below Channels and PFs
EBUServiceAppPushTreatmentEligibility
EBUServiceOutboundCCTreatmentEligibility
EBUServiceSMSTreatmentEligibility

Add new Filter 'EBUService' and check as below
@equalsIgnoreCase(.BusinessPurpose,EBUService)
Add the New Substrategy 'ApplyEBUServiceTreatmentCoreEligibility'


2051
and connect it to the Results
Update strategy ApplyTreatmentSquadEligibility
Create a new sub-strategy 'ApplyEBUServiceTreatmentSquadEligibility' in AOMFW-Enterprise-Business-Artifacts
Add new Filter 'EBUService' and check as below
@equalsIgnoreCase(.BusinessPurpose,EBUService)
Add the New Substrategy 'ApplyEBUServiceTreatmentSquadEligibility'
and connect it to the Results
Update strategy ApplyTreatmentToTreatmentVariationsCoreEligibility
Add new Filter 'EBUService' and check as below
@equalsIgnoreCase(.BusinessPurpose,EBUService)
Add new PropositionFilter 'Execute EBUService Proposition Filter' and Add T2TV PF
Connect it to the Results
Update strategy ApplyTreatmentVariationsCoreEligibility
Add new Filter 'EBUService' and check as below
@equalsIgnoreCase(.BusinessPurpose,EBUService)
Add new PropositionFilter 'Execute EBUService Proposition Filter' and Add TreatmentToTreatmentVariations PF
Connect it to the Results
Update strategy ApplyTreatmentVariantSquadEligibility
Create a new sub-strategy ‘EBUServiceSquadZoneForTreatmentVariant’ in AOMFW-Enterprise-Business-Artifacts
Add new Filter 'EBUService' and check as below
@equalsIgnoreCase(.BusinessPurpose,EBUService)
Add the New Substrategy 'EBUServiceSquadZoneForTreatmentVariant'
and connect it to the Results

Update strategy IdentifyT2TVariationActions
Add new Filter ‘EBUService' after 'Data Join’ component and check as below
@equalsIgnoreCase(.pyIssue,EBUService)
Add new PropositionFilter 'EBUServiceT2TVActionsEligibility' and Add EBUServiceT2TVActionsEligibility PF
Connect it to the Set Property


2052
New strategy PopulateEBUServiceOutputProperties
Save existing strategy PopulateUpsellOutputProperties as PopulateEBUServiceOutputProperties in AOMFW-Enterprise-Business-
Artifacts
Rename set property “Set Upsell Specific Properties“ to “Set EBU Service Specific Properties“

Update Strategy PopulateSquadSpecificOutputProperties
Add new Filter 'EBUService' and check as below
@equalsIgnoreCase(.BusinessPurpose,EBUService)
Add the New Sub-strategy 'PopulateEBUServiceOutputProperties'
and connect it to the Results

New strategy SetEBUServiceIHProperties
Save existing strategy SetUpsellIHProperties as SetEBUServiceIHProperties in AOMFW-Enterprise-Business-Artifacts
Rename set property “Set Upsell Specific IH Properties“ to “Set EBU Service Specific IH Properties“

Update Strategy SetSquadSpecificIHProperties
Add new Filter 'EBUService' and check as below
@equalsIgnoreCase(.BusinessPurpose,EBUService)
Add the New Substrategy 'SetEBUServiceIHProperties'
and connect it to the Results


2053
SOHO (1186503)- Add New Squads EBUUpsell
Impact on Other areas
 Dependencies
Adding a new Business Purpose (EBUService) to the NBA funnel
Create below new proposition decision data for the “EBUUpsell” issue:
 PM Tool Yes Create a new business purpose “EBUUpsell”
PM Tool KT Documentation Yes
Knowledge Transfer Yes
App No
DB No  Area Yes/No Comments
PM Tool Yes
App No
DB No  Area Yes/No Comments
1 AppPush EBUService AppPush
2 OutboundCC EBUService OutboundCC
3 SMS EBUService SMS
5 Offers EBUService Offers
5 OfferToOfferVariations EBUService OfferToOfferVariations
6 OfferVariations EBUService OfferVariations
7 T2TVActions EBUService T2TVActions
8 T2TVAttributes EBUService T2TVAttributes
9 TreatmentVariations EBUService TreatmentVariations
10 TreatmentToTreatmentVariations EBUService TreatmentToTreatmentVariationsIndex Decision Data Business Issue Group


2054
Note: Import of New Decision Data will be covered in the Squad split on the other page
Create PropositionFilters as Below for Each Decision Data in AOMFW-Enterprise-Business-Artifacts
Update strategy ApplyOfferCoreEligibility
Add new Filter 'EBUUpsell' and check as below
@equalsIgnoreCase(.BusinessPurpose,EBUUpsell)
Add new PropositionFilter 'Execute EBUUpsell Proposition Filter' and add Offers PF
Connect it to the Results
Update strategy ApplyOfferSquadEligibility
Create a new SubStratgey 'EBUUpsellSquadZoneForOffer' AOMFW-Enterprise-Business-Artifacts:
Add new Filter 'EBUUpsell' and check as below
@equalsIgnoreCase(.BusinessPurpose,EBUUpsell)
Add the New Substrategy 'EBUUpsellSquadZoneForOffer'
and connect it to the Results
Update strategy ApplyOfferVariantCoreEligibility
Add new Filter 'EBUUpsell' and check as below
@equalsIgnoreCase(.BusinessPurpose,EBUUpsell)
Add new PropositionFilter 'Execute EBUUpsell Proposition Filter' and Add offerVariant PF
Connect it to the Results
Update strategy ApplyOfferVariantSquadEligibility
Create a new SubStratgey 'EBUUpsellSquadZoneForOfferVariant'AOMFW-Enterprise-Business-Artifacts:EBUUpsellOutboundCCTreatmentEligibility
EBUUpsellSMSTreatmentEligibility
EBUUpsellOffersEligibility
EBUUpsellOfferVariationsEligibility
EBUUpsellT2TVActionsEligibility
EBUUpsellTreatmentVariationsEligibility
EBUUpsellTreatmentToTreatmentVariationEligibilityEBUUpsellAppPushTreatmentEligibility


2055
Add new Filter 'EBUUpsell' and check as below
@equalsIgnoreCase(.BusinessPurpose,EBUUpsell)
Add the New Substrategy 'EBUUpsellSquadZoneForOfferVariant'
and connect it to the Results

Update strategy ApplyOfferVariantEligibility
Update filter “Apply Product Holding Check“
Add condition  - || @equalsIgnoreCase(.BusinessPurpose,EBUUpsell)
Update strategy ApplyTreatmentCoreEligibility
Create a new sub-strategy 'ApplyEBUUpsellTreatmentCoreEligibility'
Add Filter 'SMS channel' and condition as.Channel ="SMS"
Add Respective Proposition Filter 'EBUUpsellSMSTreatmentEligibility'
and this needs to be followed for All below Channels and PFs
EBUUpsellAppPushTreatmentEligibility
EBUUpsellOutboundCCTreatmentEligibility
EBUUpsellSMSTreatmentEligibility

Add new Filter 'EBUUpsell' and check as below
@equalsIgnoreCase(.BusinessPurpose,EBUUpsell)
Add the New Substrategy 'ApplyEBUUpsellTreatmentCoreEligibility'


2056
and connect it to the Results
Update strategy ApplyTreatmentSquadEligibility
Create a new sub-strategy 'ApplyEBUUpsellTreatmentSquadEligibility' in AOMFW-Enterprise-Business-Artifacts:
Add new Filter 'EBUUpsell' and check as below
@equalsIgnoreCase(.BusinessPurpose,EBUUpsell)
Add the New Substrategy 'ApplyEBUUpsellTreatmentSquadEligibility'
and connect it to the Results
Update strategy ApplyTreatmentToTreatmentVariationsCoreEligibility
Add new Filter 'EBUUpsell' and check as below
@equalsIgnoreCase(.BusinessPurpose,EBUUpsell)
Add new PropositionFilter 'Execute EBUUpsell Proposition Filter' and Add T2TV PF
Connect it to the Results
Update strategy ApplyTreatmentVariationsCoreEligibility
Add new Filter 'EBUUpsell' and check as below
@equalsIgnoreCase(.BusinessPurpose,EBUUpsell)
Add new PropositionFilter 'Execute EBUUpsell Proposition Filter' and Add TreatmentToTreatmentVariations PF
Connect it to the Results
Update strategy ApplyTreatmentVariantSquadEligibility
Create a new sub-strategy 'EBUUpsellSquadZoneForTreatmentVariant' in AOMFW-Enterprise-Business-Artifacts:
Add new Filter 'EBUUpsell' and check as below
@equalsIgnoreCase(.BusinessPurpose,EBUUpsell)
Add the New Substrategy 'EBUUpsellSquadZoneForTreatmentVariant'
and connect it to the Results

Update strategy IdentifyT2TVariationActions
Add new Filter 'EBUUpsell' after 'Data Join’ component and check as below
@equalsIgnoreCase(.pyIssue,EBUUpsell)


@equalsIgnoreCase(.pyIssue,EBUUpsell)
Add new PropositionFilter 'EBUUpsellT2TVActionsEligibility' and Add EBUUpsellT2TVActionsEligibility PF
Connect it to the Set Property


2057
New strategy PopulateEBUUpsellOutputProperties
Save existing strategy PopulateUpsellOutputProperties as PopulateEBUUpsellOutputProperties in AOMFW-Enterprise-Business-
Artifacts
Rename set property “Set Upsell Specific Properties“ to “Set EBU Upsell Specific Properties“

Update Strategy PopulateSquadSpecificOutputProperties
Add new Filter 'EBUUpsell' and check as below
@equalsIgnoreCase(.BusinessPurpose,EBUUpsell)
Add the New Sub-strategy 'PopulateEBUUpsellOutputProperties'
and connect it to the Results

New strategy SetEBUUpsellIHProperties
Save existing strategy SetUpsellIHProperties as SetEBUUpsellIHProperties in AOMFW-Enterprise-Business-Artifacts
Rename set property “Set Upsell Specific IH Properties“ to “Set EBU Upsell Specific IH Properties“

Update Strategy SetSquadSpecificIHProperties
Add new Filter 'EBUUpsell' and check as below
@equalsIgnoreCase(.BusinessPurpose,EBUUpsell)
Add the New Substrategy 'SetEBUUpsellIHProperties'
and connect it to the Results


2058
NBA (1186536)- Squads split between Consumer and Soho
Impact on Other areas
 Dependencies
Note: All Import Strategies should be moved to the Artifacts ruleset
Create New Strategy IdentifyCustomerSegments
Save as from EvaluateCustomerSegment and add only the below part to the new Strategy
and the final strategy looks like this belowPM Tool No
PM Tool KT Documentation Yes
Knowledge Transfer Yes
App No
DB No  Area Yes/No Comments
PM Tool Yes
App No
DB No  Area Yes/No Comments


2059
Move the 'EligibleCustomerSegments' PF to the Artifacts ruleset
Update Strategy EvaluateCustomerIntents
Add substratgey 'IdentifyCustomerSegments' at the end
Add SetProperty 'Set Customer Segemnt' before the Result Component  and connect it from Both filters and set as below
.CustomerSegment =IdentifyCustomerSegments.pyName
Create New Strategy IdentifyOffersForCustomerSegment
Save as from EvaluateCustomerSegment and add only the below part to the new Strategy
Add DataImport and import  ‘Primary.CustomerIntentList’
Update the Filter 'OffersForEligibleCustomerSegmemt' as below
@if(CustomerSegment.CustomerSegment!="",@String.contains(@String.toUpperCase(.CustomerSegment),@String.toUpperCase(
CustomerSegment.CustomerSegment)),false)
Update Strategy IdentifyEligibleOffers
Replace the ‘EvaluateCustomerSegment' SubStrategy with 'IdentifyOffersForCustomerSegment’
Update Strategy ImportAllOffers
Create a new Strategy 'ImportAllOffersForConsumer'
Save it as  ‘ImportAllOffers' and rename it to 'ImportAllOffersForConsumer’
Create a new  Strategy 'ImportAllOffersForEnterprise' and as below Squad offers
Add EBUUpsell.EBUService and TradeIn


2060
Add above 2 new stratgeies into main Stratgey
Add the filter name 'No Import' and add the below condition
False
Import CustomerIntentList  Primary.CustomerIntentList
Add a Switch component 'Select Offers By Segment'
Select ImportAllOffersForConsumer if CustomerSegment.CustomerSegment starts with "Consumer"

Else Select ImportAllOffersForEnterprise if CustomerSegment.CustomerSegment starts with "Enterprise"

Otherwise, select No Import
Move the 'ImportAllOffer' Strategy to the artifacts rulest
Update  All  Import strategies as below
Steps which are Mentioned in 'Update Strategy ImportAllOffers' need to be followed for the below Import strategies
ImportAllOfferToOfferVariations
ImportAllTreatmentVariations
ImportAllTreatmentToTreatmentVariationsImportAllOfferVariations


2061
Update Strategy ImportAllTreatments
Create a new Strategy 'ImportAllTreatmentsForConsumer'
Save it as ‘ImportAllTreatments' and rename it as 'ImportAllTreatmentsForConsumer’
Create a new Strategy 'ImportAllTreatmentsForEnterprise'
Inside the Above Strategy create SubStratgeis for Each Channel and connect them to the Results
ImportAppPushTreatmentsForEnterprise
ImportSMSTreatmentsForEnterprise
ImportOutboundCCTreatmentsForEnterprise
Above each sub-strategy should import Treatments from Below Sqauds
EBUUpsell
EBUService
TradeIn
Remove Everything from 'ImportAllTreatments' and add the below 2 Strategies
ImportAllTreatmentsForEnterprise
ImportAllTreatmentsForConsumer
Add a filter 'No Imports' with Default False condition
Import Customer IntentList Primary.customerIntentList
Add a Switch component 'Select Treatments By Segment' with the below condition
Select ImportAllTreatmentsForConsumer if CustomerSegment.CustomerSegment starts with "Consumer"

Else Select ImportAllTreatmentsForEnterprise if CustomerSegment.CustomerSegment starts with "Enterprise"

Otherwise, select No Import
connect Switch to the ResultsImportTreatmentToTreatmentVariationAttributes
ImportTreatmentToTreatmentVariationActions


2062
Impact on simulation After ImportStratgy updates
we need to update the import for PropsitoinLookup which is used in the simulation as below
Simulation - change in Import Propositions - Estimated as part of Soho


2063
Soho - Ramp up
Impact on Other areas
 Dependencies
Logic Changes:
Update Strategy ApplyRampUpRule
Import CustomerIntentList Primary.CustomerIntentList and name as “Customer Segment“
Import D_BundleEventNTIDMap[NTID:@if(Primary.Context(NTID)!="", Primary.Context(NTID),"N/A")] and the name
'BundleEventNTIDData'
Update SetProperty ‘Get RampUp Value’ as well
.RampUpValue =
@if(@contains(CustomerSegment.CustomerSegment,"Consumer"),@if(BundleEventNTIDData.ConsumerRampUpValue!="",Bundle
EventNTIDData.ConsumerRampUpValue,1),@if(@contains(CustomerSegment.CustomerSegment,"Enterprise"),@if(BundleEventNT
IDData.EnterpriseRampUpValue!="",BundleEventNTIDData.EnterpriseRampUpValue,1),0))
Update SetProperty ‘Get Process Flag’ as
.ProcessFlag = BundleEventNTIDData.ProcessFlag
 1145969 SOHO Ramp up
PM Tool Yes
PM Tool KT Documentation Yes
Knowledge Transfer No
App Yes
DB No  Area Yes/No Comments
PM Tool Yes
App Yes
DB No  Area Yes/No Comments


2064
Soho -Spend Manager - NTID 541 - Suppression OPTI STORY
Note: this ticket will be delivered as part of Soho opti
Impact on Other areas
 Dependencies
Logic Changes:
Note: below are catalogue changes, and should be in the catalogue
1. NTID 541 (event) should be mapped to ManagePlan intent.
2. Manage Plan should point to the new EBUService and EBUUpsell squads
update strategy1137717 Spend Manager - NTID 541 - Suppression
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


2065
TradeIN - Redesign WBW lookup to use Data Type instead of Decision data

Impact on Other areas
 Dependencies
Logic Changes:
Update Strategy EnhancedPriceForWBWDeviceOffers
Add a DataImport Component 'ImportWBWDeviceData'  and import the below Data Page
D_WBWDeviceMultiplierMatrix[FromDevice: if(SetFromDeviceandToDevice.FromDevice!=””,
SetFromDeviceandToDevice.FromDevice,'N/A'), ToDevice:
if(SetFromDeviceandToDevice.ToDevice!=””,SetFromDeviceandToDevice.ToDevice,'N/A')].pxResults
Remove All 'WBWDeviceMultiplierMatrix Data'  Decision Data Imports
Rename filter ‘Only ToDevice from Context'  to 'ToDevice and From Device from Context' and add the below Condition and get connect it
from the new Data Import 'ImportWBWDeviceData’
@contains(.ToDevice,SetFromDeviceandToDevice.ToDevice) &&
@contains(.FromDevice,SetFromDeviceandToDevice.FromDevice)
Update the Filter Component 'SpecificDevicetoAnyDevice' as below and get connect it from the new Data Import
'ImportWBWDeviceData’
@contains(.FromDevice,SetFromDeviceandToDevice.FromDevice) && @String.equalsIgnoreCase(.ToDevice,"Any")
Update the Filter 'AnyDevicetoSpecificDevice' as below and  get connect it from new Data Import 'ImportWBWDeviceData’
@String.equalsIgnoreCase(.FromDevice,"Any") && @contains(.ToDevice,SetFromDeviceandToDevice.ToDevice)1163201 Redesign WBW lookup to use Data Type instead of
Decision data
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


2067
Simulation - change in Import Propositions - Estimated as part of Soho
Create New strategy ImportAllOffersForSimulation
Create a new Strategy 'ImportAllOffersForSimulation' in ArtifactsRuleset
 Add Substratgey 'ImportAllOffersForConsumer'
Add substratgey 'ImportAllOffersForEnterprise'
Connect Both of them to the Results
Create New strategy ImportAllOfferToOfferVariationsForSimulation
Create a new Strategy 'ImportAllOfferToOfferVariationsForSimulation' in ArtifactsRuleset
 Add Substratgey 'ImportAllOfferToOfferVariationsForConsumer'
Add substratgey 'ImportAllOfferToOfferVariationsForEnterprise'
Connect Both of them to the Results

Create New strategy ImportAllTreatmentsForConsumerSimulation
Save strategy 'ImportAllTreatmentsForConsumer' as a new trategy 'ImportAllTreatmentsForConsumerSimulation' in Artifacts
Ruleset
 Remove the ‘Active’ filter and connect rest of components to the Results

Create New strategy ImportAllTreatmentsForEnterpriseSimulation
Save strategy 'ImportAllTreatmentsForEnterprise' as a new trategy 'ImportAllTreatmentsForEnterpriseSimulation' in Artifacts
Ruleset
 Remove the ‘Active’ filter and connect rest of components to the Results
Create New strategy ImportAllTreatmentsForSimulation
Create a new Strategy 'ImportAllTreatmentsForSimulation' in Artifacts Ruleset
 Add Substratgey 'ImportAllTreatmentsForConsumerSimulation'
Add substratgey 'ImportAllTreatmentsForEnterpriseSimulation'
Connect Both of them to the Results
Create New strategy ImportAllTreatmentToTreatmentVariationsForSimulation
Create a new Strategy 'ImportAllTreatmentToTreatmentVariationsForSimulation' in ArtifactsRuleset


Create a new Strategy 'ImportAllTreatmentToTreatmentVariationsForSimulation' in ArtifactsRuleset
 Add Substratgey 'ImportAllTreatmentToTreatmentVariationsForConsumer'
Add substratgey 'ImportAllTreatmentToTreatmentVariationsForEnterprise'
Connect Both of them to the Results
Update strategy AllPropositionsLookup
Update Substratgey component ‘ImportAllOffers' for with newStratgey  'ImportAllOffersForSimulation’
Update Substratgey component ‘ImportAllOfferToOfferVariations' for with newStratgey  'ImportAllOfferToOfferVariationsForSimulation’


2068
Update Substratgey component ‘ImportAllTreatmentsWithoutActiveCheck' for with newStratgey  'ImportAllTreatmentsForSimulation’
Update Substratgey component ‘ImportAllTreatmentToTreatmentVariations' for with newStratgey
'ImportAllTreatmentToTreatmentVariationsForSimulation’
Add a Group Before the Set Property “All Treatments“ and add the below conditions
as below
Offer
OfferVariant
Treatment
TreatmentVariant
Note: During the simulation run, we will be having Propositions from both consumers and enterprises. during the report, we need to
exclude the squads based on the EBU or consumer


2069
Remove Intent Logic from Data Flow 1

Impact in Other areas
Dependencies
Logic Changes
A. New Data Set - SubscriptionData
Create a new C* Data Set SubscriptionData on the Subscription class with the following keys -
.CustomerID
B. Update Data Flow - PrepareDataForBatchNBA
Remove Strategy Component 'EvaluateCustomerIntents'
Update the destination with the new Dataset 'SubscriptionData'
D. New Data Flow - ProcessBatchNBA860389 Remove Intent Logic from Data Flow 1
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


2070
Save as the Dataflow ‘IdentifyBestOBTreatmentsByBatch' and name it as 'ProcessBatchNBA’
update the source as  - Abstract

B. Update Data Flow - IdentifyBestOBTreatmentsByBatch
Create when rule 'Debug BatchNBA' in Local ruleset as below (Note: Local ruleset should go as part of the build) and by Default it
should be False

update the source as  - SubscriptionData
Update the strategy with new Strategy 'EvaluateCustomerIntents'
Add the Dataflow 'ProcessBatchNBA' in the first Destination
Add a filter Before 2nd Destination and add the when rule as below


2071
Update the 2nd Destination with the 'SubscriptionDataForBatchNBA' Dataset
Remove the 3rd Destination


2072
Redesign FUT to remove the datapages

Impact in Other areas
Dependencies
Logic Changes
A. New Data Set - SeedUser
Create a new data set SeedUser in class VFUK-FW-AOMFW-Data-SeedUser
Keys -
ServiceNumber
CustomerID
B. Update Data Flow - PrepareBatchData
Add a new compose at the end and compose with SeedUser data set on ServiceNumber from SeedUser data set and ServiceNumber
from the main path.
C. Update Data Flow - PrepareDataForGetRecommendation
Add a new compose at the end and compose with SeedUser data set on ServiceNumber from SeedUser data set and ServiceNumber
from the main path. 1036784 Redesign FUT to remove the datapages
PM Tool No
PM Tool KT Documentation No
Knowledge Transfer No
App Yes
DB No  Area Yes/No Comments
PM Tool Yes  Not to allow same ServiceNumber for different CustomerID
App Yes  Crete new page property “SeedUser” of type VFUK-FW-AOMFW-Data-SeedUser in Subscription
class
DB No  Area Yes/No Comments


2073
D. Update Data Flow - PrepareRealtimeData
Add a new compose at the end and compose with SeedUser data set on ServiceNumber from SeedUser data set and ServiceNumber
from the main path.
E. Update Data Flow - PrepareRealtimeDataForProcessEvent
Add a new compose at the end and compose with SeedUser data set on ServiceNumber from SeedUser data set and ServiceNumber
from the main path
F. Update Strategy - ApplyFUTCheck
Update filter “Apply FUT Check“ as follows -
@if(@AOMUtilities.IsNullOrEmpty(Primary.SeedUser.Tags), false,
@AOMUtilities.DoesStringListExistsInList(Primary.SeedUser.Tags,.FUTList,","))


2074
Release 4.04


2075
Upgrade - Include Data Usage IN IH
HL Requirement
Business wants customer usage threshold information in IH reporting for triaging the recommendation issues.
Impacted Areas
Dependencies
DB Changes:
Create new column in IH Reporting table and also extend it to Reporting table view
App Changes:664919 Update IH Recommendations Table to include Data Usage
App Yes Update Class definition
DB Yes Update IH Reporting table and extract
Knowledge Transfer No
Logic Yes Update Existing flow
PM Tool No
PM Tool KT Documentation No
UI/VADR No  Area Yes/No Comments
PM Tool No
App Yes  E2E testing can be done once app work is completed
DB Yes  E2E testing can be done once DB changes are finished.Area Yes/No Comments
DataUsage Varchar
Last3MAbsoluteDataUsage NumericProperty Name Data Type
Create new property in VFUK-FW-AOMFW-Data-InteractionHistoryReporting
ClassDataUsage and Last3MAbsoluteDataUsage IH Reporting Class: VFUK-FW-AOMFW-Data-InteractionHistoryReporting
changesMap DataUsage and Last3MAbsoluteDataUsage  property in
the external mapping tab


2076
Logic Changes:
Update Strategy- CalculateDeal
Include DataUsage and Last3MAbsoluteDataUsage in the data join mapping.
Update Strategy- CaptureDealResponseForAssistedUpgrade
P r o p e r t i e s F r o m I H R e p o r t i n g F o r O r i g i n a l D e a l, P r o p e r t i e s F r o m I H R e p o r t i n g F o r E d i t e d D e a l > Include DataUsage and
Last3MAbsoluteDataUsage in the data join mapping.


2077
Upgrade - UnPlugging the HBB old logic

HL Requirement: As part of initial HBB release, we have provided a strategic solution in Get recommendation list and later we have a new
requirement on HBB to enable in GPL flow which is currently active.
So, we are trying to remove old rules related to the initial solution as part of the logic cleanup activity.
Withdraw the following rules -

The below rules need to be updated
 1037579 Tech Debt - Remove Logic and Implementation of HBB Upgrades Non Strategic Option
EligibleHBBOffers Strategy
HBBEligibleOffersList Property
HBBProductDetails Decision Data
EligibleHBBOffers Decision Table
IdentifyEligibileHBBOffers Strategy
SetHBBIHProperties Strategy
GetRecommendationList Strategy
IdentifyBestHBBWebTreatment Strategy
HBBOfferPrioritisation Decision Data
CalculateRankForHBB Strategy
  Rule Name Rule Type
RenewOffersEligibility Propositionfilter( need to need to remove mapping for HBB propositions.
RetentionRules Strategy need to remove rules related to HBB eligibility criteria.Rule Name Rule change


2078
Upgrade - ADO 1170585
Objective
Currently, the use of UniversalTariffRecommendation & DeviceRecommendation BDC Model data is controlled by logic based on
ProfilingConsentFlag = Y. This change will retrieve the data from UniversalTariffRecommendation & DeviceRecommendation BDC Models
in the Data Flow layer only if ProfilingConsentFlag = Y which will remove any need for further checks done in logic and will provide
performance improvement in regards to not retrieving the data when there no profiling consent.

A. Update Data Flow - PrepareRealtimeData
Update Compose - UniversalTariffRecommendation
Set the following conditions in “Skip Compose Operation“
@if (
@String.equalsIgnoreCase(.Context(SecondaryContext),"RefineBy"), false,
@if(((@String.equalsIgnoreCase(.Context(SecondaryContext),"NBAA") || .Context(SecondaryContext)="") &&
@String.equalsIgnoreCase(.ProfilingConsentFlag,"N")),true,false)
)
Update Compose - DeviceRecommendation
Set the following conditions in “Skip Compose Operation“
@if (
@String.equalsIgnoreCase(.Context(SecondaryContext),"RefineBy"), false,
@if(((@String.equalsIgnoreCase(.Context(SecondaryContext),"NBAA") || .Context(SecondaryContext)="") &&
@String.equalsIgnoreCase(.ProfilingConsentFlag,"N")),true,false)
)
B. Update Data Flow - PrepareBatchData
Update Compose - UniversalTariffRecommendation
Set the following conditions in “Skip Compose Operation“
@if (
@String.equalsIgnoreCase(.Context(SecondaryContext),"RefineBy"), false,
@if(((@String.equalsIgnoreCase(.Context(SecondaryContext),"NBAA") || .Context(SecondaryContext)="") &&
@String.equalsIgnoreCase(.ProfilingConsentFlag,"N")),true,false)
)


@String.equalsIgnoreCase(.ProfilingConsentFlag,"N")),true,false)
)
Update Compose - DeviceRecommendation
Set the following conditions in “Skip Compose Operation“
@if (
@String.equalsIgnoreCase(.Context(SecondaryContext),"RefineBy"), false,
@if(((@String.equalsIgnoreCase(.Context(SecondaryContext),"NBAA") || .Context(SecondaryContext)="") &&
@String.equalsIgnoreCase(.ProfilingConsentFlag,"N")),true,false)
)

C. Update Data Flow - PrepareDataForGetRecommendation
Update Compose - UniversalTariffRecommendation


2079
Set the following conditions in “Skip Compose Operation“
@if (
@String.equalsIgnoreCase(.Context(SecondaryContext),"RefineBy"), false,
@if(((@String.equalsIgnoreCase(.Context(SecondaryContext),"NBAA") || .Context(SecondaryContext)="") &&
@String.equalsIgnoreCase(.ProfilingConsentFlag,"N")),true,false)
)
Update Compose - DeviceRecommendation
Set the following conditions in “Skip Compose Operation“
@if (
@String.equalsIgnoreCase(.Context(SecondaryContext),"RefineBy"), false,
@if(((@String.equalsIgnoreCase(.Context(SecondaryContext),"NBAA") || .Context(SecondaryContext)="") &&
@String.equalsIgnoreCase(.ProfilingConsentFlag,"N")),true,false)
)
D. Update Data Flow - PrepareDataForGetUsage
Update Compose - UniversalTariffRecommendation
Set the following conditions in “Skip Compose Operation“
@if (
@String.equalsIgnoreCase(.Context(SecondaryContext),"RefineBy"), false,
@if(((@String.equalsIgnoreCase(.Context(SecondaryContext),"NBAA") || .Context(SecondaryContext)="") &&
@String.equalsIgnoreCase(.ProfilingConsentFlag,"N")),true,false)
)
Update Compose - DeviceRecommendation
Set the following conditions in “Skip Compose Operation“
@if (
@String.equalsIgnoreCase(.Context(SecondaryContext),"RefineBy"), false,
@if(((@String.equalsIgnoreCase(.Context(SecondaryContext),"NBAA") || .Context(SecondaryContext)="") &&
@String.equalsIgnoreCase(.ProfilingConsentFlag,"N")),true,false)
)
E. Update Data Flow - PrepareRealtimeDataForGetNBASimulation
Update Compose - UniversalTariffRecommendation
Set the following conditions in “Skip Compose Operation“
@if (


Set the following conditions in “Skip Compose Operation“
@if (
@String.equalsIgnoreCase(.Context(SecondaryContext),"RefineBy"), false,
@if(((@String.equalsIgnoreCase(.Context(SecondaryContext),"NBAA") || .Context(SecondaryContext)="") &&
@String.equalsIgnoreCase(.ProfilingConsentFlag,"N")),true,false)
)
Update Compose - DeviceRecommendation
Set the following conditions in “Skip Compose Operation“
@if (
@String.equalsIgnoreCase(.Context(SecondaryContext),"RefineBy"), false,
@if(((@String.equalsIgnoreCase(.Context(SecondaryContext),"NBAA") || .Context(SecondaryContext)="") &&
@String.equalsIgnoreCase(.ProfilingConsentFlag,"N")),true,false)
)


2080
F. Update Data Flow - PrepareRealtimeDataForTILSimulation
Update Compose - UniversalTariffRecommendation
Set the following conditions in “Skip Compose Operation“
@if (
@String.equalsIgnoreCase(.Context(SecondaryContext),"RefineBy"), false,
@if(((@String.equalsIgnoreCase(.Context(SecondaryContext),"NBAA") || .Context(SecondaryContext)="") &&
@String.equalsIgnoreCase(.ProfilingConsentFlag,"N")),true,false)
)
Update Compose - DeviceRecommendation
Set the following conditions in “Skip Compose Operation“
@if (
@String.equalsIgnoreCase(.Context(SecondaryContext),"RefineBy"), false,
@if(((@String.equalsIgnoreCase(.Context(SecondaryContext),"NBAA") || .Context(SecondaryContext)="") &&
@String.equalsIgnoreCase(.ProfilingConsentFlag,"N")),true,false)
)

G. Update Strategy GetDeviceList
This strategy uses retrieves the BDC Recommendations and then uses it only if ProfilingConsentFlag = Y, based on the Filter “Consider
BDC if ProfilingConsentFlag Y“ - @String.equalsIgnoreCase(Primary.ProfilingConsentFlag,"Y").

This filter will be removed.
H. Update Strategy GetTariffList


2081
This strategy uses retrieves the BDC Recommendations and then uses it only if ProfilingConsentFlag = Y, based on the Filter - Consider
BDC if ProfilingConsentFlag Y - @String.equalsIgnoreCase(Primary.ProfilingConsentFlag,"Y")
This filter will be removed.
The Data Join - “Join with BDC Tariffs to set IsRecommended to true” will be updated the use the sub-strategy
GetListOfValidTariffsFromBDCModel.

The following strategies also use Primary.ProfilingConsentFlag but the use is not limited to retrieval of BDC Recommendations
and hence will remain unchanged.
I. Strategy CalculateUpgradeDeal
Filter - Logic Recommendation Condition -
(@String.equalsIgnoreCase(.NBAAMode,"NBA")&&@String.equalsIgnoreCase(Primary.ProfilingConsentFlag,"Y"))||@String.equalsIgnor
eCase(.NBAAMode,"RefineBy")||(.IsDigitalCampaign&&@String.equalsIgnoreCase(Primary.Context(Channel),"WEB"))
Filter - No Error for Logic Recommendation - .ErrorMessage==""&&
(@if(@String.equalsIgnoreCase(Primary.ProfilingConsentFlag,"Y"),true,@if(@String.equalsIgnoreCase(.RecommendationType,"Campa
ign"),true,false))||.NBAAMode="RefineBy")
Filter - ProfilingConsentFlag Y - @String.equalsIgnoreCase(Primary.ProfilingConsentFlag,"Y")
Filter - ProfilingConsentFlag N or null - @String.notEqualsIgnoreCase(Primary.ProfilingConsentFlag,"Y")
J. Strategy OrderUpgradeTariffsForWeb


2082
Filter - Profiling Consent - @String.equalsIgnoreCase(Primary.ProfilingConsentFlag,"Y")
Filter - No Profiling Consent - @String.notEqualsIgnoreCase(Primary.ProfilingConsentFlag,"Y")
K. Strategy IdentifyLogicRecommendation
Filter - Paym Pathway -
(@String.equalsIgnoreCase(.ToPathway,"ToSIMO")||@String.equalsIgnoreCase(.ToPathway,"ToSIMO30")||@String.equalsIgnoreCase(.
ToPathway,"ToHandset"))&&@String.equalsIgnoreCase(Primary.ProfilingConsentFlag,"Y")

L. Strategy GetTariffDiscountForHBB
Set Property - ChurnPropensity from Model
.ChurnPropensity =
@if(Primary.ProfilingConsentFlag="N"||@AOMUtilities.IsNullOrEmpty(DeriveChurnPropensity.ChurnPropensity),"Medium",DeriveChurnProp
ensity.ChurnPropensity)


2083
M. Strategy RenegotiationProductValidations
Set Property - Context Properties
ProfilingConsentFlag = Primary.ProfilingConsentFlag

NOTE:
The flow should able to execute as below after our changes also.
Test cases for Unit Testing
Yes- Recommend BDC
No-Dont Recommend BDC
NBA Y Yes Yes
NBA N No No
RefineBy Y Yes No
RefineBy N Yes NoNBAAMode ProfilingConsentFlag Logic Recommendation flow Commercial Recommendation
flow


2084
Upgrades -Introducing Retail Channel-GetReceommendations

Impact in Other areas
Dependencies
HL Requirement
Logic Changes To support Get Recommendation Flow
A. GetRecommendation Flow
B. Framework changes.(975637)
Update the Strategy IdentifyBestRetailT reatmentsForSubscription
C. Commercial rules :1079486
D. Discount Logic:1079480
E. VFT  logic:1079495
F. Pick,& Mix logic.1015749
G. S15 Threshold :1015764
H. Total Net Revenue 1082218
I. Refine By : 1081169
J. IH Reporting 1082315
Impact in Other areas1079486 Retail: Commercial Rules
1079480 Retail: Discounts Logic
1079495 Retail: VFT and OneNumber Bundle (Apple Lover)
1079535 Retail: Customer has opted out of personalised offer
1015749 Retail- Pick & Mix
1015764 Retail - Being able to manage S15 Logic Recommendations Threshold for the Retail Channel
1082218 Retail: Total Net Revenue
1082315 Retail: IH reporting
1081169 Retail: Refine by
962898 Create or Manage Commercial Recommendation in PM Tool for Retail Agent975637 Retail Upgrades: Create a Retail Channel in the Inbound CC Framework
App/UI Yes As part of Retail channel implementation app will be supporting all APIs with new
channel attribute values.
UI changes are considered with seperate tickets will use response SR properties
from Logic.
DB No  Area Yes/No Comments


2085
Dependencies

HL Requirement
Business wants to Introduce a new channel RETAIL in the Upgrades flow.
So, all the Jouneys which are supported under INBOUNDCC Channel VDAR will also be available for Retail.
the journeys which will be supported by the retail channel are Mobile service/Watch and Mobile broadband service.
As part of this implementation, AOM Logic needs to be updated to support
GetRecommendation API, GetProductlist API, and ValidateBasket API for all the above-mentioned journeys.
Logic Changes To support Get Recommendation Flow
A. GetRecommendation Flow
As part of the Retail implementation for the Getrecommendation flow.
Channel and StoreId will be coming as context parameters in the GPL request.
The identifyBestUpgradeTreatments strategy will be called the IdentifyBestRetailTreatmentsForSubscription strategy where we have to
introduce our upgrade logic.
B. Framework changes.(975637)

Update the Strategy IdentifyBestRetailTreatmentsForSubscription
Add ‘CalculateDeal’ SubStratgey Between ‘IdentifyBestTreatmentforSubscription’ and ‘IdentifyTreatmentVariations’.
update a  Strategy ‘AllTreatmentsForEligibleOffers’
Treatments For ExecutionMode - NBAA filter is not joined to Retail Filter.
Establish a connection between the NBAA filter and the Retail filter.PM Tool Yes  configuration changes will be needed to support new channel attribute. no new
screens required.
PM Tool No
App Yes  Logic E2E test can be done once app work is completed
DB Yes products compatability w.r.t Retail channel need to be available in respective env.Area Yes/No Comments


2086

update a  Strategy ‘IdentifyBestTreatmentForNBAA’
Rename filter InboundCCorWeb to  "compatible channels" and update filter condition to include retail channel as well.
@equalsIgnoreCase(.Channel,"InboundCC")||@equalsIgnoreCase(.Channel,"Web")||@equalsIgnoreCase(.Channel,"Retail")
Create a new Strategy ‘PopulateOutputPropertiesForRetail’
Add External Input and Add 2 filters based on ExecutionMode
First Filter is for GetNBA and calls sub-Strategy ‘PopulateOutputPropertiesForGetNBA’
The second filter is for NBAA and calls Sub Strategy ‘PopulateOutputPropertiesForNBAA’
 And connect both to the Results
Add this strategy in place of ‘PopulateOutputPropertiesForGetNBA’ in ‘IdentifyBestRetailTreatmentsForSubscription’

C. Commercial rules :1079486
The Rules implemented in TSAR for all journeys and product types are used 'As Is' in the Retail journey. The Retails journey uses the
following sub-strategies to implement the relevant commercial rules by including the “CalculateDeal” sub-strategy in the Retail Channel
Strategy FW.
the strategy list w.r.t commercial rule functionality is placed below for ref.
Early Upgrade Fee  CalculateEarlyUpgradeFee
The CRE results Calculate upgrade deal/pick best pathway/CRE
Fix or Flex GetListofActiveTariffs,CalculateMaxDiscountForTariff,GetDeviceList
Pre S15 GetCurrentTariff,CalculateS15MafandBand,CustomerCohorts
Promos GetListofActiveTariffs,IdentifyAutoAddedDiscounts,IdentifyAutoAdde
dAddons,GetAutoAddedAddonsListDetails,GetAutoAddedDiscountsFunctionality Strategy


2087
Fix or Flex, Early Upgrade Fee, The CRE results, The Pre S15, Promos, and Basic Plans rules are independent of Channel. which are
placed in calculated upgrade deal strategy are the same as in INBOUNDCC.
There are no specific changes required for these commercial rules in the Retail journey but all of the rules should be dev-tested.
D. Discount Logic:1079480
Discount logic for all the journeys is independent of the channel so, all the discount calculations should work AsIs.
All the discount and discount-related Data pages will give the results if the product is sellable with the Retail channel.
E2E: Test discount combinations for all supported journeys for the retail channels.
CalculateUpgradeDiscount and GetDiscountList are the main strategies which discount logic falls into.
There are no specific changes required for the discount logic in the Retail journey but all of the Combinations should be dev-
tested.
E. VFT logic:1079495
The OneBundle discount is displayed as above using the 'As Is' VFT framework
GetEligibleVFTogetherOffersForAccount for the watch, mobile service  and
GetEligibleVFTogetherOfferforHBB for HBB remains the same and is being executed in the Get recommendation flow.
PopulateOutputPropertiesForNBAA introduced in the above step for the Retail channel will be handling the VFT logic for Retail now.
So, All the VFT-related attributes should be available for the retail journey also. (for testing)
There are no specific changes required for the VFT logic in the Retail journey but all of the Combinations should be dev-tested.
F. Pick,& Mix logic.1015749
Retail Pick & Mix uses the same T Block and D Block definition as INBOUNDCC.


Retail Pick & Mix uses the same T Block and D Block definition as INBOUNDCC.
Using ‘As Is’ Recommendation Segment Strategy, place the customer in the relevant Segment Strategy (Grow, Retain, Save)
RecommendationBlocks DD in the GetRecommendedTariff strategy will be updated with a similar configuration as below.
The configuration for Retail should be in DD with below data.
Pick and Mix Configuration – Without DiscountListDetails,GetProductDetailAndEvaluateCompatibility,PopulateOutp
utPropertiesForNBAA
Basic Plans GetListOfBDCandCatalogTariffsForPickNMix,CurrentTariffDetails

Grow TRUE 1 T1 D3 50Strategy Segment CustomerHasDiscou
ntRecomendatioRank TariffBlock DiscountBlock PercentageofDiscou
ntToOffer
Rec 1 T1 D1
Rec 2 T4 D1Strategy Grow – T Block D Block


2088
Pick and Mix Configuration – With   Discount
reference Tariff and Discount blocks
There are no specific logic changes required for the PICK N MIX logic in the Retail journey but all of the Combinations with new
configuration should be dev-tested.Rec 3 T1 D3
Strategy Grow – T Block D Block
Rec 1 T1 D1
Rec 2 T4 D1
Rec 3 T1 D3
Strategy Grow – T Block D Block
Rec 1 T1 D1
Rec 2 T4 D1
Rec 3 T1 D3
Rec 1 T1 D1
Rec 2 T4 D1
Rec 3 T1 D4
Strategy Grow – T Block D Block
Rec 1 T1 D1
Rec 2 T4 D1
Rec 3 T1 D4
Strategy Grow – T Block D Block
Rec 1 T1 D1
Rec 2 T4 D1
Rec 3 T1 D4Strategy Grow – T Block D Block
D2 25% Discount T2 Same Data
D3 50% Discount T3 Highest Propensity Tariff
D4 75% Discount T4 Higher Data, speed or
Entertainment than Rec 1
D5 100% Discount - -D1 No Discounts T1 Higher Data


2089
G. S15 Threshold :1015764
S15 Threshold logic will remain the same and will cover in calculate deal strategy which we introduce for Retail flow.
GetRecommendedTariff is holding the S15Threshold DD
S15Threshold DD remains no change in structure but the capability to update for Retail is possible from petrol.
For testing, we will use the same data configuration and update channel as Retail.
There are no specific logic changes required for the s15 logic in the Retail journey but all of the Combinations with the new
configuration should be dev-tested.
H. Total Net Revenue 1082218
Total NetRevenue calculation is getting updated for the retail channel.
change should apply to all areas where TNR is shown today including recommendation card, Selected basket and Basket summary for
Retail Agents only.

The existing calculation is getting updated for the Retail channel. whereas we will keep the old one for IBCC AsIs.
change 1: EntertainmentCost for retail is different. the value for retail is 3.50.
Create a new config value
 change2 we have to deduct this RetailEntertainmentCost from the plan cost.
change 3: we will multiply with tenure duration only.
so that the plan cost in the calculation should be  (plan cost-RetailEntertainmentCost)*tenure.
update the strategy  group component GroupByRecommendationID we have to set PlanCost
for channel retail :
 @if(@String.equalsIgnoreCase(.ProductRecommendationType,"Tariff"),.(CostExVAT-RetailEntertainmentCost)*.Duration),
Entertainment RetailEntertainmentCost 3.5ConfigType ConfigName ConfigValue


2090
else
AsIs
So while testing use the below table as ref.
Note: this strategy can be moved to the business artifacts ruleset so, the business can change at opti release.
I. Refine By : 1081169
The Recommendation screen loads as per 'As Is' and up to 3 recommendations are displayed using the relevant Logic or Commercial Rec
logic for Mobile, watch or MBB
No impact on Refine by logic, the context properties for the Retail channel will be available as is. and behavior should work as is in a new
channel.

PickBestPathway and IdentifyLogicRecommendation are strategies that will be holding Refine by logic.
There are no specific logic changes required for the Refine By logic in the Retail journey but all of the Combinations of refine by
parameters should be dev-tested.
J. IH Reporting 1082315
The setIHForRetail sub-strategy in SetIHPropertiesForAllChannels should get updated with all upgrade-related properties.
Update the SetIH set the property with attributes

and introduce the new set property to set values for Upgrades specific properties. all properties from the “SetIHForInboundCC” strategy
should be loaded here.(Price plan monthly amount-3.5) * price plan tenure -(Discount
monthly amount * discount tenure) +
 (Add on * assumed add on tenure) – (Add on discounts * add on
discount tenure) +
 (Insurance Monthly amount * assumed add on tenure)+
(Accessories charge – Accessories cost). (Price plan monthly amount-3.5) * price plan tenure -– (Discount
monthly amount * discount tenure) +
 (Add on * assumed add on tenure) – (Add on discounts * add on
discount tenure) +


(Add on * assumed add on tenure) – (Add on discounts * add on
discount tenure) +
 (Insurance Monthly amount * assumed add on tenure)– (Device cost
+ device upfront) + (Accessories charge – Accessories cost).
Assume the same as non EVO but without the hardware 3.5 is entertainment cost for retail for TNR onlyPaym/Watch/MBB EVO MBB (non Evo)


2091

 Design Miro page can be found here.R 4.4
As part of 975637/962898-The below Decision Data has to update for Retail testing.

DivisionToTeam new divisions wich support Retail able to
configure divisions go from 'VF01' to 'VF17’ for now
use existing.
IntentToSegmentStrategy Intent,ConfidenceScoreRange,ModelBandID,
Channel,Team,SegmentStrategy,DataUsage,
SegmentStrategyMessagefor testing we will use one team/segment
combination for retail
CommercialRecommendations new commercial rec for retail should be with
Retail value under channel.capability to change will be open from pm
tool.
S15Threshold we will use same data for retail too. For
testing. capability to change will be open from pm
tool.Decision data impact Reference notes
keep annotation where ever we have complex logic or place statments which defines details about heavy expressions


2092
Upgrades -Introducing Retail Channel-GPL/Basket Validation

Impact in Other areas
Dependencies
HL Requirement
Logic Changes To support Get ProductList Flow
A. GetProductlist Flow: 1082039
B. Framework changes.1082039
C. GetT arifflist 1082039
D. GetDeviceList 1082039
E. StockDetails :938564/938334
Logic Changes To support Basket V alidation
A. Validatebasket Flow
B. Renegotiation Flow :1079501
Retail support Journeys: 1015753/1230281/1079467
Impact in Other areas
Dependencies938564 Retail: Recommendation Device & Device Edit Screen top 5 stock logic
1079501 Retail: Renegotiation
938334 Retail: Edit Device screen- New UI to Display both In Store Stock check and Warehouse for Retail Agent
1015753 Retail - MBB and Watch Recommendations
1230281 Retail: Bundle Journeys Supported
1079467 Retail: Journeys Supported1082039 Retail: Edit Tabs
App/UI Yes As part of Retail channel implementation app will be supporting all APIs with new
channel attribute values.
UI changes are considered with seperate tickets will use response SR properties
from Logic.
DB No
PM Tool Yes  configuration changes will be needed to support new channel attribute. no new
screens required.Area Yes/No Comments
PM Tool No  Area Yes/No Comments


2093

HL Requirement
Business wants to Introduce a new channel RETAIL in the Upgrades flow.
So, all the Jouneys which are supported under INBOUNDCC Channel VDAR will also be available for Retail.
the journeys which will be supported by the retail channel are Mobile service/Watch and Mobile broadband service.
As part of this implementation, AOM Logic needs to be updated to support
GetRecommendation API, GetProductlist API, and ValidateBasket API for all the above-mentioned journeys.
Logic Changes To support Get ProductList Flow
A. GetProductlist Flow: 1082039
As part of the Retail implementation for the GPL flow. GPL request will be having channel as Retail.
Channel and StoreId will be coming as context parameters in the GPL request.
GetProductListForCustomer DF will get executed for the retail channel
InteractionHistory and InteractionHistoryReporting should get loaded the same as Inbound cc without change.
B. Framework changes.1082039
The GetProductListForUpgrade strategy will be called from the GetProductList base strategy. GetProductListForUpgrade has three
strategies where the GetProductListForUpgradeIBCC strategy is common for Retail and InboundCC.
1. change the name of the GetProductListForUpgradeIBCC strategy to GetProductListForUpgradeChannel.
2. update the switch condition to call GetProductListForUpgradeChannel based on the channel condition.
ContextProperties.Channel="InboundCC" or ContextProperties.Channel="Retail"
3. GetProductListForUpgradeChannel should support the Retail channel.
C. GetTarifflist 1082039
ContextProperties set property will be having Primary.Context(Channel) as Retail. which will be used in tariff logic.


ContextProperties set property will be having Primary.Context(Channel) as Retail. which will be used in tariff logic.
Net revenue logic will be updated for retail and it will be having newly calculated value will be populated in the GPL response.  App Yes  Logic E2E test can be done once app work is completed
DB Yes products compatability w.r.t Retail channel need to be available in respective env.


2094

There are no specific changes required to display the tariff list in the Retail journey but all of the ordering and respective
attributes in UI/API response should get populated AsIs and to be dev-tested.
D. GetDeviceList 1082039
ContextProperties set property will be having Primary.Context(Channel) as Retail. which will be used in device logic.
A device Stock check needs to happen differently for Retail and inbound cc differently. (938564/938334)
 both Store and warehouse for Retail same as web and for inbound we should check stock for the warehouse only. (this logic will be added
to the GetStockDetails strategy).
store id should be populated in the GPL response.
There are no specific changes required to display the Device list/ Accessory/discounts/bars/insurance in the Retail journey but all
of the ordering and respective attributes in UI/API response should get populated AsIs and be dev-tested.


2095

E. StockDetails :938564/938334
this stock detail strategy will work for both Get recommendation and GPL flow
Get stock details will be working AsIs but the input params will be store id and warehouse for D_GetStockAvailability data page in
GetStockDetails Strategy.
Update the Component ‘Set Inputs’ and set. StockLocationList
=@if(@equalsIgnoreCase(Primary.Context(Channel),"InboundCC"),”VFWarehouse” ,"VFWarehouse,Stock")
the StockLocationId will be the same as StoreID. logic needs to handle stock from both locations.
in all referenced strategies where GetStockDetails strategy is being called,
the logic should allow/recommend when the device is in Stock in the Store or in Pre and Back order in the warehouse.
a.Any status if quantity is more than zero then recommend device
.Quantity>0
b.If GSA fails then recommend the device
@String.equalsIgnoreCase(.QuantityStatus,"Stock Details Unavailable") ||
c.status is backpreorderable and backorderable then recommend device
(.Quantity<=0 && (@String.equalsIgnoreCase(.QuantityStatus,"Backpreorderable") ||
@String.equalsIgnoreCase(.QuantityStatus,"Backorderable")))
the logic should allow/
the changes will be


2096

GRE Flow: recommend when the device is in Stock in the Store or in Pre and Back order in the warehouse.
Refine By flow: The Device recommended is either in stock in the store or in pre order/back order in the warehouse.
and in GPL Flow: The Top 5 recommended devices are only presented if they are in Stock in the store or in Pre order/Back order in the
warehouse.
Renegotiation flow: (1079501): HandsetToInsuranceCompatibilty strategy will be updated as per the above conditions.
impacted strategies are placed below: the above logic needs to be applied in all strategies where quantity is being checked.
from the above list where ever we have a quantity check, we have to apply this implementation.
use the strategy DeviceStockAvailabilityCheck as a reference. (which has a similar implementation).
all the places where Stock Validations happening currently should be dev-tested with new implementation.
AccessoryPriceandSellabilityCheck Yes
GetDeviceList Yes
GetMBBDeviceAndTariff Yes
GetProductDetailAndEvaluateCompatibility Yes
GetRecommendedHandset Yes
GetRecommendedMBBDevice Yes
GetRecommendedWatch Yes
HandsetToInsuranceCompatibilty No
PopulateOutputPropertiesForDevice No
PopulateOutputPropertiesforValidateBasket No
GetCampaignDetailsFromDigital NoRefrenced stratgey Name Quanity check Avaialble


2097
Logic Changes To support Basket Validation
A. Validatebasket Flow
As part of the Retail implementation for the GPL flow. GPL request will be having channel as Retail.
Channel and StoreId will be coming as context parameters in the GPL request.
Validatebasketforeditdeal is the strategy that includes this functionality.
There are no specific changes required for these validation rules in the Retail journey but all of Basket Validations should be dev-
tested.
B. Renegotiation Flow :1079501
The renegotiation functionality is available in Retail and works AsIs
but, Channel and StoreId will be coming as context parameters in the Validate basket request fo renegotiation along with
SecondaryContext="Renegotiate".
As part of product validation, Stock validation will get changed for Retail
whereas HandsetToInsuranceCompatibilty, AccessoryPriceandSellabilityCheck - will get updated for stock changes as part of the
renegotiation. changes are AsIs (GETStockDetails sections).
Validatebasketforrenegotiation is the strategy that includes this functionality.

Retail support Journeys: 1015753/1230281/1079467
As part of Retail implementation
Below Journeys should be able to work for the Retail channel same as the Inbound CC channel
the same MBB Recommendations can be displayed to the Retail Agent
 MBB Bundle Journeys Supported
Bundle to Bundle (Tablet, Laptop, Giga Cube, Dongle, WiFi)
SIMO to SIMO (Tablet, Laptop, Giga Cube, Dongle, WiFi))
SIMO to Bundle (Tablet, Laptop, Giga Cube, Dongle, WiFi)
Legacy/Bundle to SIMO ( Tablet, Laptop, Giga Cube, Dongle, WiFi)
Paym Journeys:
Legacy/Bundle to Evo Airtime with Device


Paym Journeys:
Legacy/Bundle to Evo Airtime with Device
Legacy/Bundle to Evo Airtime
Legacy/Bundle to SIMO
Evo Airtime with Device to  Evo Airtime with Device
Evo Airtime with Device to  Evo Airtime
Evo Airtime with Device to  SIMO
Evo Airtime to Evo Airtime with Device
Evo Airtime to Evo Airtime


2098
Evo Airtime to SIMO
SIMO to SIMO
SIMO to Evo Airtime with Device
SIMO to Evo Airtime
Note: Watch journey will be tested for Retail as part of Upgrade- EVO 2.0 OneNumber Relaunch MVP Changes
Note :keep annotation where ever we have complex logic or place statments which defines details about heavy expressions


2099
Upgrade- EVO 2.0 OneNumber Relaunch MVP Changes
HL Requirement
Currently only single watch plan is available (30-day rolling one connectivity plan)
New tenured watch tariffs are introduced (12/24 months)
Recommendation cards, edit deal tariff tab should show relevant tariffs according to journey & device in the basket
If there is device in the basket , only compatible and tariff >= device tenure should be listed, else necessary validation messages needs
to be displayed on VADR
A. Update Strategy - GetListOfValidTariffsFromPC (1217141)
The Logic should return related tariffs according condition below
If any device available in the basket , tariff list should contain only tenured watch tariffs
If  device  not available  in the basket & CRE Type =FLEXUPRADE, no tariff is listed (Customer can not upgrade with out device)
If  device  not available  in the basket & CRE Type =NORMAL , tariff list should contain only 30-day rolling One Connectivity plan  (As
is >>@String.equalsIgnoreCase(.SegmentofTariff,"Loan") && @String.equalsIgnoreCase(.SIMOnly,"Y") &&
@String.equalsIgnoreCase(.Category,"Access Plan"))
Add a new Path for - Watch Tenured plans
Add New Set Component -”Watch Tenured Tariffs Input”
Same as Watch Tariffs Input(Set component)
Make Strategy call to GetWatchTenuredTariffList
Update Switch Condition
ContextProperties.IsWatchSubscription & @String.equalsIgnoreCase(ExternalInput.ProductType,"Handset")  > Select
GetWatchTenurredTariffList
ContextProperties.IsWatchSubscription && @String.notEqualsIgnoreCase(ExternalInput.ProductType,"Handset")  and CRE Type
=FLEXUPRADE  or SIMOFlex > Select NoRecord


=FLEXUPRADE  or SIMOFlex > Select NoRecord
ContextProperties.IsWatchSubscription && @String.notEqualsIgnoreCase(ExternalInput.ProductType,"Handset")  and CRE Type
=NORMAL >Select GetWatchTariffList1217141 Edit Screen - Tariff tab - display tenured watch plans
1216928 Basket Re-validation for Watch & Plan
1217177 Basket Submission Validation - for Watch & Plan - Test Only1216799 Display Recommended Plan for Watch Device


2100
B. New Strategy - GetWatchTenuredTariffList (1217141)
Similar strategy pattern as GetWatchTariffList
Import  D_EligibleTariffs data type with relevant parameters
Filter tenured watch plans based on below condition
@String.equalsIgnoreCase(.SegmentofTariff,"Loan")&&@String.equalsIgnoreCase(.SIMOnly,"N")&&@String.equalsIgnoreCase(.Cat
egory,"Secondary Plan"))
C. Update Strategy - GetTariffList (1217141)
For Watch Path (IsWatchSubscription)
Add a set component to populate
RecommendedDeviceCode=HandsetinBasket.ProductID
If RecommendedDeviceCode!=””
Make a substrategy call to “EvaluateTariffToHandsetCompatibility” strategy.
Update “CheckHandsetLineItem” switch
Remove (Primary.PrimarySubscriptionId="") condition – so that if no tariff available, select device warning is shown on screen.


2101
D. Update Strategy - GetRecommendedWatch(??)
Update Filter CheckNoDeviceCase.
(.RecommendedDeviceCode="" &&
!((@String.toUpperCase(Primary.RetentionEligibility.Type)="FLEXUPGRADE")
D. Update Strategy - GetRecommendedTariffForWatch (1216799)
/*To select watch plan without device*/
.RecommendedDeviceCode==””  && !(@String.toUpperCase(Primary.RetentionEligibility.Type)="FLEXUPGRADE")
Keep the existing logic as-is
/* Else to select watch plan with device*/
.RecommendedDeviceCode!=””
In a new path from external input, make substrategy call to GetWatchTenuredTariffList to fetch the tenured tariffs.
Next make a substrategy call to EvaluateTariffToHandsetCompatibility to fetch only the compatible tariffs.
Rename GetMostExpensiveTariff to GetHighestTenuredTariff
Update GetHighestTenuredTariff to get the top tenured watch plan (.Duration)
Connect EvaluateTariffToHandsetCompatibility to GetHighestTenuredTariff.


2102
E. Update Strategy - ValidateBasket (1216928)
Make substrategy call to ValidateBasketforWatch from Basket details.
Update Switch condition Primary.PrimarySubscriptionId!="" >> ValidateBasketforWatch

F. New Strategy - ValidateBasketforWatch (1216928)
Add-Handset Handset and Tariff Check compatibility with Tariff in Basket.
Device Tenure check.compatibilty message -
"The tariff is not
compatible with the
selected basket"
Tenure message - "The
tariff is not compatible
with the selected
device tenure"
Swap-Handset Handset and Tariff Check compatibility with Tariff in Basket.
Device Tenure check.compatibilty message -
"The tariff is not
compatible with the
selected basket"Operations LineItems Action (In order) Status Message


2103
Set below properties (Seperate path)
SecondaryContext = Primary.Context(SecondaryContext)
ProductType = Primary.Context(RecentProductType)
Division = Primary.Context(Division),
Channel = Primary.Context(Channel),
OrderType = Primary.Context(OrderType),
Team by making substartegy call to GetTeamforAgentDivision
RecommendedDeviceCode=Handset line item in basket.ProductCode
From external input filter lineitem in basket → ProductType = Tariff OR ProductType = Accessory OR ProductType = Insurance OR
ProductType=Handset
Set Operation from Context properties.
Operation = .SecondaryContext+"-"+.ProductType
RecommendTariffCode=ProductCode
Filter Tariff in Basket (ProductType = Tariff) and Filter > @String.equalsIgnoreCase(.Operation,"Swap-Handset")||
@String.equalsIgnoreCase(.Operation,"Add-Handset")
Path i) Reset Status and Status detail and make substrategy call to EvaluateTariffToHandsetCompatibility
Path ii) Set Status = "INCOMPATIBLE",  .StatusDetail="The tariff is not compatible with the selected basket"
Path iii) Set Status = "INCOMPATIBLE",  .StatusDetail="The tariff is not compatible with the selected device tenure"
Connect Path i ,iiand iii to switch component
execute path iii) if !(MaxTenure <=12 then Tenure = 12 or 24 or MaxTenure >12 then Tenure = 24) else path i) if
EvaluateTariffToHandsetCompatibility.RecommendedTariffCode!="" else path ii)
After Tariff in basket filter, for Operation = Delete-device && SIMOnly!=Y and  Tenure = 12 or 24
 Set Status = "INCOMPATIBLE",  .StatusDetail="The tariff is not compatible with the selected basket"


From set operation(set property) filter handset in basket → ProductType = Handset.
Set below properties
RecommendedDeviceCode=ProductCode
MaxTenure = @toInt(D_PaymHandset[Identifier:"H_"+.RecommendedDeviceCode].Page.MaxTenure)
Tenure = Tariff line item in basket. Tenure
Set if Operation =Swap-Tariff && !(MaxTenure <=12 then Tenure = 12 or 24 or MaxTenure >12 then Tenure = 24)  then iii) Set Status =
"INCOMPATIBLE",  .StatusDetail="The tariff is not compatible with the selected device tenure"
Connect handset and tariff path to substrategy PopulateOutputPropertiesforValidateBasket
Filter Child Lineitems and connect to PopulateOutputPropertiesforValidateBasket
@String.equalsIgnoreCase(.ProductType,"Discount")||@String.equalsIgnoreCase(.ProductType,"Fee")||@String.equalsIgnoreCase(.
ProductType,"AddOn")Tenure message - "The
tariff is not compatible
with the selected
device tenure"
Delete-Handset Handset and Tariff For Flexupgrade disable the button.
For Normal and Tenured tariff in basketcompatibilty message -
"The tariff is not
compatible with the
selected basket"
Swap-Tariff Handset and Tariff Device Tenure check Tenure message - "The
tariff is not compatible
with the selected
device tenure"


2104
Filter Accessory and Insurance seperately from extenal input and connect to PopulateOutputPropertiesforValidateBasket
@String.equalsIgnoreCase(.ProductType,"Insurance"), @String.equalsIgnoreCase(.ProductType,"Accessory")
All Other operations connect to whole basket (as shown below)
.Operation!="Swap-Handset"&&.Operation!="Add-Handset"&&”Delete-Handset”
ADD Total netRevenew Calculation to include in Watch flow.
added CalculateBasketFinancials sub-strategy after setoperations component in ValidateBasketforWatch strategy

MIRO: https://miro.com/app/board/uXjVPkgJNx4=/ -

Note: Please add annotations explaining the flow.
Notes for Opti: new propositions with FelixUpgrade and simoflex also
Connect your Miro account


2105
NBA-Exclude 'eCare' Control Customers from targeting population
Impact on Other areas
Dependencies
Logic Changes:
A. Update Dataflow GetBestTreatmentsByGetNBA
update filter component 'Results' as below
true
=@if(|@equalsIgnoreCase(.Channel,"Ecare")|@equalsIgnoreCase(.Channel,"App")||@equalsIgnoreCase(.Channel,"TOBi"),@if(.Pot
entialControlFlag="Target",true,false),true)1254561 Exclude 'eCare' Control Customers from targeting
population
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


2106
Release 4.05


2107
NBA-Simulation Execution Mode
Impact on Other Areas
Dependencies
Logic Changes:
A. Update Strategy AllPropositionsLookup
Update the component 'Batch Offers' as below
@String.contains(.OfferExecutionMode,"Batch") && (equalsIgnoreCase(.Channel,"Email") || equalsIgnoreCase(.Channel,"SMS") ||
equalsIgnoreCase(.Channel,"AppPush")  || equalsIgnoreCase(.Channel,"OutboundCC")  || equalsIgnoreCase(.Channel,"Web") ||
equalsIgnoreCase(.Channel,"RCS")  || equalsIgnoreCase(.Channel,"MMS") || equalsIgnoreCase(.Channel,"DirectMail"))
Update the Component 'TILOffers' as below
@String.contains(.OfferExecutionMode,"TIL") && ( equalsIgnoreCase(.Channel,"SMS") ||
equalsIgnoreCase(.Channel,"OutboundCC") || equalsIgnoreCase(.Channel,"AppPush"))1277602 Simulation Execution Mode
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


2108
NBA-Assisted 2nd Line - OneNumber
Impact on Other Areas
Dependencies
Logic Changes:
A. Create a new Decision Data -InterestedServiceByChannel
Add the below Properties in the Form tab
ExecutionMode
OrderType
Channel
ServiceType
TariffType
Add the Data in the DD as below1230608 Contract Length Min/Max filtering
1215869 EVO 2.0 - OneNumber MVP - Assisted 2nd Line logic changes
1200740 Apple Lovers discount1200737 OneNumber Watch and Tablet plans
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
GetProductList New Acquisition|In Life
SalesInboundCC DataSIMOnly DataSIMOnlyExecutionMode OrderType Channel ServiceType TariffType


2109
B. Update GetAllTariffs Strategy
Add below Mapping in  Data Import Component 'EligibileTariffs'
.PropositionName =.Proposition
.PromotionType=.Category
B. Update GetEligibleTariffsForSKU Strategy
Add below Mapping in  Data Import Component 'EligibileTariffsforHandsets'
.PropositionName =.Proposition
.PromotionType=.Category
Update SetProperty 'HandsetDetails' as below
.MinTenure =Primary.Context(CONTRACT_LENGTH_MIN)
.MaxTenure=Primary.Context(CONTRACT_LENGTH_MAX)
Add Filter Component Between ‘EligibileTariffsforHandsets' and 'SetTariffDetails’ component and add below Checks
Name Filter Component as ' restrict tariffs by min and max duration'
.RecommendedTenure>=if(HandsetDetails.MinTenure="",0,HandsetDetails.MinTenure)
&&
.RecommendedTenure<=if(HandsetDetails.MaxTenure="",999999,HandsetDetails.MaxTenure)
C. Update EvaluateTariffTypes Decision Table
Update the Decision table as  belowGetProductList New Acquisition|In Life
SalesInboundCC DataSIMOnly TabletAccess
GetProductList New Acquisition|In Life
SalesInboundCC Handset Handset
GetProductList New Acquisition|In Life
SalesInboundCC Handset Watch
GetProductList New Acquisition|In Life
SalesInboundCC MBB Dongle
GetProductList New Acquisition|In Life
SalesInboundCC MBB Gigacube
GetProductList New Acquisition|In Life
SalesInboundCC SIMOnly SIMOnly
GetProductList New Acquisition|In Life
SalesInboundCC SIMOnly Watch
GetProductList New Acquisition|In Life
SalesInboundCC SIMOnly WatchAccess
GetProductList New Acquisition|In Life


SalesInboundCC SIMOnly WatchAccess
GetProductList New Acquisition|In Life
SalesInboundCC Tablet Tablet
GetProductList New Acquisition|In Life
SalesWeb SIMOnly SIMOnly
GetProductList New Acquisition|In Life
SalesWeb SIMOnly DataSIMOnly


2110
if N N Loan  @String.notEq
ualsIgnoreCas
e(.PromotionTy
pe,"Secondary
Plan") Handset
else if N Y Loan  @String.notEq
ualsIgnoreCas
e(.PromotionTy
pe,"Access
Plan") Tablet
else if N Y CBU @String.notEq
ualsIgnoreCas
e(.PackageBa
nd,"Dongle")&
&!
(@String.conta
ins(@String.to
UpperCase(.P
ackageBand),"
GIGACUBE")) @String.notEq
ualsIgnoreCas
e(.PromotionTy
pe,"Access
Plan") BundleTablet
else if Y N CBU  @String.notEq
ualsIgnoreCas
e(.PromotionTy
pe,"Access
Plan") SIMOnly
else if Y Y CBU  @String.notEq
ualsIgnoreCas
e(.PromotionTy
pe,"Access
Plan") DataSIMOnly
else if N Y CBU @String.equal
sIgnoreCase(.
PackageBand,
"Dongle")  Dongle
else if N  Loan  @String.equal
sIgnoreCase(.
PromotionType
,"Secondary
Plan")@String.contai
ns(@String.to
UpperCase(.Pr
oposition),"WA
TCH")Watch
else if Y  Loan  @String.equal
sIgnoreCase(.
PromotionType
,"Access Plan")@String.contai
ns(@String.to
UpperCase(.Pr
oposition),"WA
TCH")WatchLabel SIMOnly MBBFlag SegmentofTarif
fPackageBand PromotionTypeProposition RETURN


2111
D. Create new Stratgey  ManageHaloServiceType
Add External Input
Add new Decision data 'InterestedServiceByChannel'
Add a DataJoin and get it Connected from External Input and Reference from Decision  data on the below conditions
.TariffType = .TariffType
.Channel = .Channel
.ExecutionMode = .ExecutionMode
Add the below Mapping in the Datajoin
.ServiceType =ServiceType(from the Deciosin data)
Add a Filter 'Valid Order Types' and add the below condition
Contains(InterestedServiceByChannel.OrderType,.Ordertype)
Add 2 Filters after Above Filter
Add 1st filter and name it 'Not Watch Tariffs' and add the below condition and connect it to the Results
.TariffType != “Watch“
Add 2nd filter and name it 'Watch Tariffs' and add the  below condition
.TariffType = “Watch“
Add a filter after ‘Watch Tariffs' and name it 'Evo dual Running ’ and connect it to the results
.ServiceType =”Handset” || .SimOnly = “Yes“else if Y  Loan  @String.equal
sIgnoreCase(.
PromotionType
,"Access Plan") TabletAccess
else if Y  CBU  @String.equal
sIgnoreCase(.
PromotionType
,"Access Plan")@String.contai
ns(@String.to
UpperCase(.Pr
oposition),"WA
TCH")WatchAccess
else if Y  CBU  @String.equal
sIgnoreCase(.
PromotionType
,"Access Plan") TabletAccess
else if  Y CBU @String.contai
ns(@String.to
UpperCase(.P
ackageBand),"
GIGACUBE")  Gigacube
otherwise       Default


2112
D. Update strategy GetProductListForAdditionalLine
add new strategy ‘ManageHaloServiceType' in between ‘GetAllTariffs’  and 'Check Additional Line Context’
Update the Switch component below


2113
E. Update Strategy GetEligibleVFTogetherOffersForSecondLine
Update the filter component ‘HBB customer eligible for VF Together' as 'HBB and Tablet  customer eligible for VF Together’ and add the
below condition
.IncludesCombiBundleOffer && (CustomerHasHBB.HasHBBAccount ||( .TariffType =”TabletAccess” || .TariffType =”Watch” ||
.TariffType =”WatchAccess”))


2114
NBA-Assisted 2nd Line

Impact on Other Areas
Dependencies
Logic Changes:
A. Update strategy -IdentifyDiscountPerTariff
Update Data join 'SetDiscountData' as below
Set .DiscountGroup = if((.DiscountType="Percentage" && .DiscountAmount=30), "VFT", "Default")
B. Update strategy -GetHouseholdDiscounts
Remove the Filter 'NotDefaultDiscount' and join the Decision Data straight to the Data join shape
Update the data join 'GetHouseholdDiscount' as below 1275119 Update the logic to pick the lowest recommeded discount1275012 Flag one 'Recommended Discount' in GPRL response, if available
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


2115
in Properties Mapping map as below
DiscountGroup ="Default"
C. Update strategy -PrioritiseDiscounts
Create a new SR Property HasVFTDiscount(Boolean Type)
Update Group by 'ListOfUniqueTariffs' as below
Set .HasVFTDiscount to TRUE IF ANY .DiscountGroup=” VFT”
Add a .HasVFTDiscount = .HasVFTDiscount mapping in 'Discount Treatment For Tariff' Data join
Update Set Property 'SetRank&IsRecommended'


2116
set .IsRecommended as below


2117
NBA-Assisted 2nd Line - Update Interested Service
Impact on Other Areas
Dependencies
Logic Changes:
A. Update Decision Table  -InterestedServiceforAssistedChannel
Update the Decision table as below
 1311603 Assisted 2nd Line - Update Interested Service
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
Service Category Subscription Type Interested Service
Handset Promotion Mobile Service Handset
SIMO Mobile Service SIMOnly
SIMO MBB Mobile Broadband Service DataSIMOnly
Device MBB Promotion Mobile Broadband Service Tablet
Dongle MBB Promotion Mobile Broadband Service MBBInterested Service for Assisted Channels


2118
NBA-Digital Second Line PP (eShop) - Discount Compatibility after latest CMT
changes

Impact on Other Areas
Dependencies
Logic Changes:
A. Update Strategy-AssignDiscountToAdditionalLineOffers
Add a Set Property and connect from 'Compatible Max Discount per Tariff' and 'Assign CellCode and TestGroupExpiry to Parent'.
Connect to the results component.
Name it as 'MaxDiscount Check'  and update as below and connect it to the results
.TreatmentVariant = @if(.ParentChild="Parent",@if(.MaxDiscountAmount=0 &&
.TreatmentVariant="PrivatePricing","TreatmentVariantDefault",.TreatmentVariant),.TreatmentVariant)1310063 Digital Second Line PP (eShop) - Discount Compatibility after latest CMT changes
PM Tool No
PM Tool KT Documentation No
Knowledge Transfer No
App No
DB No  Area Yes/No Comments
Area Yes/No Comments
PM Tool No
App No
DB No  Area Yes/No Comments