Revision 8a57f3b03992351f46c4537fd0d9351592278d2b (click the page title to view the current version)

Merchandise Financial Planning

2. Clafer Model

var gwr=document.getElementById('graphWithRefs0'); gwr.style.display='block'; gwr.scrollLeft=this.scrollLeft; this.style.display='none'; var gwr=document.getElementById('graphWithRefs0'); gwr.style.display='block'; gwr.scrollLeft=this.scrollLeft; this.style.display='none'; -4,4 -4,-389.35 3490.06,-389.35 3490.06,4 -4,4 c0_MFPsystem abstract MFPsystem 11.00 c0_CalendarHierarchy abstract CalendarHierarchy : Hierarchy 11.00 c0_MFPsystem->c0_CalendarHierarchy calendar transparent c0_ProductHierarchy abstract ProductHierarchy : Hierarchy 11.00 c0_MFPsystem->c0_ProductHierarchy producth transparent c0_LocationHierarchy abstract LocationHierarchy : Hierarchy 11.00 c0_MFPsystem->c0_LocationHierarchy location transparent c0_workflow abstract workflow 11.00 c0_MFPsystem->c0_workflow hasTheFollowingWorkflows transparent c0_Hierarchy abstract Hierarchy 11.00 c0_CalendarHierarchy->c0_Hierarchy 342.2,-277.69 332.26,-281.34 342.31,-284.69 342.2,-277.69 c0_HierarchyLevel abstract HierarchyLevel 11.00 c0_CalendarHierarchy->c0_HierarchyLevel levels transparent c0_ProductHierarchy->c0_Hierarchy 281.82,-263.88 285.32,-273.88 288.82,-263.88 281.82,-263.88 c0_ProductHierarchy->c0_HierarchyLevel levels transparent c0_LocationHierarchy->c0_Hierarchy 259.69,-273.29 270.21,-274.51 262.75,-266.99 259.69,-273.29 c0_LocationHierarchy->c0_HierarchyLevel levels transparent c0_workflow->c0_MFPsystem belongsToThisSystem transparent c0_workflow->c0_workflow proceededBy transparent c0_workflow->c0_workflow followedBy transparent c0_view abstract view 11.00 c0_workflow->c0_view views transparent c0_Oracle Oracle : MFPsystem 11.00 c0_Oracle->c0_MFPsystem 1386.82,-25.63 1390.32,-35.63 1393.82,-25.63 1386.82,-25.63 c0_HierarchyLevel->c0_Hierarchy levelBelongsToThis transparent c0_HierarchyLevel->c0_HierarchyLevel spreadsToLowerLevel transparent c0_HierarchyLevel->c0_HierarchyLevel aggregatesToHigherLevel transparent c0_HierarchyLevelInstance abstract HierarchyLevelInstance 11.00 c0_HierarchyLevelInstance->c0_HierarchyLevel instanceBelongsTo transparent c0_HierarchyLevelInstance->c0_HierarchyLevelInstance instanceAggregatesTo transparent c0_HierarchyLevelInstance->c0_HierarchyLevelInstance instanceSpreadsTo transparent c0_Cal2012 Cal2012 : CalendarHierarchy 11.00 c0_Cal2012->c0_CalendarHierarchy 1304.82,-168.45 1308.32,-178.45 1311.82,-168.45 1304.82,-168.45 c0_Menswear Menswear : ProductHierarchy 11.00 c0_Menswear->c0_ProductHierarchy 281.82,-168.45 285.32,-178.45 288.82,-168.45 281.82,-168.45 c0_Year Year : HierarchyLevel 11.00 c0_Year->c0_HierarchyLevel 634.77,-228.9 645.24,-227.29 636.05,-222.02 634.77,-228.9 c0_Season Season : HierarchyLevel 11.00 c0_Season->c0_HierarchyLevel 652.25,-226.86 662.84,-227.03 654.67,-220.29 652.25,-226.86 c0_Month Month : HierarchyLevel 11.00 c0_Month->c0_HierarchyLevel 678.82,-216.1 682.32,-226.1 685.82,-216.1 678.82,-216.1 c0_Week Week : HierarchyLevel 11.00 c0_Week->c0_HierarchyLevel 709.14,-220.16 701.05,-227.01 711.64,-226.7 709.14,-220.16 c0_MensCasualWear MensCasualWear : HierarchyLevel 11.00 c0_MensCasualWear->c0_HierarchyLevel 731.71,-222.17 722.44,-227.31 732.89,-229.07 731.71,-222.17 c0_MensSportsWear MensSportsWear : HierarchyLevel 11.00 c0_MensSportsWear->c0_HierarchyLevel 751.83,-223.48 742.25,-228 752.56,-230.45 751.83,-223.48 c0_plan abstract plan 11.00 c0_planningRole abstract planningRole 11.00 c0_plan->c0_planningRole PlanCreatedBy transparent c0_VersionAbbreviation c0_VersionAbbreviation 11.00 c0_plan->c0_VersionAbbreviation versionAbbreviation transparent c0_planningRole->c0_plan roleCreatedTheFollowingPlans transparent c0_Target abstract Target 11.00 c0_planningRole->c0_Target roleCreatedTheFollowingTargets transparent c0_planningRole->c0_Target roleReceivesTheFollowingTargets transparent c0_PlanningRoleLevel c0_PlanningRoleLevel 11.00 c0_planningRole->c0_PlanningRoleLevel roleLevel transparent c0_planningRole->c0_view RoleSeesTheFollowingViews transparent c0_Measure abstract Measure 11.00 c0_planningRole->c0_Measure roleEditsTheFollowingMeasures transparent c0_WorkingPlan abstract WorkingPlan : plan 11.00 c0_WorkingPlan->c0_HierarchyLevelInstance seededWithThoseInstances transparent c0_WorkingPlan->c0_plan 2206.32,-219.91 2198.41,-226.96 2208.98,-226.38 2206.32,-219.91 c0_LastYear abstract LastYear : plan 11.00 c0_WorkingPlan->c0_LastYear seedingSource transparent c0_LastYear->c0_plan 2142.22,-227.07 2152.81,-227.06 2144.52,-220.46 2142.22,-227.07 c0_OriginalPlan abstract OriginalPlan : plan 11.00 c0_OriginalPlan->c0_plan 2216.56,-222.98 2207.44,-228.37 2217.93,-229.85 2216.56,-222.98 c0_CurrentPlan abstract CurrentPlan : plan 11.00 c0_CurrentPlan->c0_plan 2169.82,-216.1 2173.32,-226.1 2176.82,-216.1 2169.82,-216.1 c0_TargetPlan abstract TargetPlan : plan 11.00 c0_TargetPlan->c0_plan 2172.36,-254.66 2171.16,-244.13 2165.54,-253.11 2172.36,-254.66 c0_TargetPlan->c0_Target composedOf transparent c0_Target->c0_planningRole createdBy transparent c0_Target->c0_planningRole publishedTo transparent c0_Target->c0_TargetPlan belongsTo transparent c0_WaitingForApproval abstract WaitingForApproval : plan 11.00 c0_WaitingForApproval->c0_plan 2128.99,-230.52 2139.42,-228.67 2130.12,-223.61 2128.99,-230.52 c0_WorkingPlan2012 WorkingPlan2012 : WorkingPlan 11.00 c0_WorkingPlan2012->c0_WorkingPlan 2174.82,-120.8 2178.32,-130.8 2181.82,-120.8 2174.82,-120.8 c0_TargetPlan2012 TargetPlan2012 : TargetPlan 11.00 c0_TargetPlan2012->c0_TargetPlan 2365.82,-359.05 2369.32,-369.05 2372.82,-359.05 2365.82,-359.05 c0_OriginalPlan2012 OriginalPlan2012 : OriginalPlan 11.00 c0_OriginalPlan2012->c0_OriginalPlan 2323.82,-168.45 2327.32,-178.45 2330.82,-168.45 2323.82,-168.45 c0_metric abstract metric 11.00 c0_sales2011 sales2011 : metric 11.00 c0_sales2011->c0_metric 3251.82,-216.1 3255.32,-226.1 3258.82,-216.1 3251.82,-216.1 c0_markdown2011 markdown2011 : metric 11.00 c0_markdown2011->c0_metric 3280.7,-219.88 3272.8,-226.94 3283.38,-226.34 3280.7,-219.88 c0_view->c0_workflow viewBelongsTo transparent c0_view->c0_plan planversion transparent c0_view->c0_planningRole specificRole transparent c0_view->c0_planningRole roles transparent c0_view->c0_Measure measures transparent c0_Measure->c0_plan measureBelongsToThisPlan transparent c0_Measure->c0_planningRole editedBy transparent c0_Measure->c0_metric measureMetric transparent c0_Measure->c0_view belongsTo transparent c0_Measure->c0_Measure derivedByTheseMeasures transparent c0_Measure->c0_Measure derivesTheseMeasures transparent c0_Rule abstract Rule 11.00 c0_Measure->c0_Rule derivedByThisRule transparent c0_Measure->c0_Rule derivesUsingThisRule transparent c0_PlanningDirector PlanningDirector : planningRole 11.00 c0_PlanningDirector->c0_planningRole 2777.96,-271.66 2768.21,-275.81 2778.42,-278.64 2777.96,-271.66 c0_ExecutiveManager ExecutiveManager : planningRole 11.00 c0_ExecutiveManager->c0_planningRole 2675.81,-275.68 2686.37,-274.82 2677.58,-268.91 2675.81,-275.68 c0_MerchandisePlanner MerchandisePlanner : planningRole 11.00 c0_MerchandisePlanner->c0_planningRole 2709.82,-263.75 2713.32,-273.75 2716.82,-263.75 2709.82,-263.75 c0_TopDownSalesTargets2012 TopDownSalesTargets2012 : Target 11.00 c0_TopDownSalesTargets2012->c0_Target 2857.82,-311.4 2861.32,-321.4 2864.82,-311.4 2857.82,-311.4 c0_MiddleOutMarkdownTargets2012 MiddleOutMarkdownTargets2012 : Target 11.00 c0_MiddleOutMarkdownTargets2012->c0_Target 2900.27,-316.83 2891.32,-322.51 2901.86,-323.65 2900.27,-316.83 c0_PreSeasonTargetSettingWorkflow PreSeasonTargetSettingWorkflow : workflow 11.00 c0_PreSeasonTargetSettingWorkflow->c0_workflow 2497.53,-76.9 2489.65,-83.99 2500.23,-83.35 2497.53,-76.9 c0_InSeasonTargetSettingWorkflow InSeasonTargetSettingWorkflow : workflow 11.00 c0_InSeasonTargetSettingWorkflow->c0_workflow 2444.25,-83.39 2454.83,-83.99 2446.93,-76.93 2444.25,-83.39 c0_Targets2012PlanningView Targets2012PlanningView : view 11.00 c0_Targets2012PlanningView->c0_view 2709.35,-141.15 2719.46,-137.99 2709.59,-134.15 2709.35,-141.15 c0_Targets2012ApprovalView Targets2012ApprovalView : view 11.00 c0_Targets2012ApprovalView->c0_view 2750.82,-120.8 2754.32,-130.8 2757.82,-120.8 2750.82,-120.8 c0_Targets2012ReviewView Targets2012ReviewView : view 11.00 c0_Targets2012ReviewView->c0_view 2788.34,-125.79 2779.65,-131.85 2790.22,-132.54 2788.34,-125.79 c0_Rule->c0_Measure RelatedMeasure transparent c0_TgtSales TgtSales : Measure 11.00 c0_TgtSales->c0_Measure 2913.04,-172.29 2905.1,-179.3 2915.68,-178.77 2913.04,-172.29 c0_LyMarkdown LyMarkdown : Measure 11.00 c0_LyMarkdown->c0_Measure
Module Statistics: | All clafers: 142 | Abstract: 23 | Concrete: 119 | Reference: 46 | Constraints: 73 | Goals: 0 | Global scope: 1..* | Can skip name resolver: no |

Module Downloads: | [.cfr] | [.html] |

2.1. Merchandise Financial System

A Merchandise Financial Planning (MFP) system deals with three main types of hierarchies; Calendar, Product, and Location.

  • Calendar Hierarchy– represents the time units that the system deals with, such as Season, Month, and Week for the Spring 2004 season.
  • Product Hierarchy– represents the several product categories that the system deals with, such as department, class, and sub-class for Men’s Casual Wear, or Men’s Formal Wear in Fashion store.
  • Location Hierarchy– reflects multiple channels within the organization at their aggregate level, such as total Brick and Mortar Divisions, catalog and/or e-commerce.

MFP systems have the concept of workflows or workbooks which they use to manage and complete their entire plan.

abstract MFPsystem
2..3 hierarchies
calendar -> CalendarHierarchy
producth -> ProductHierarchy
location -> LocationHierarchy
hasTheFollowingWorkflows -> workflow +
//***************** Concrete Clafers *****************

2.2. Hierarchy, Hierarchy Levels Hierarchy Level Instance

Users may edit data at different levels of each hierarchy (product, location, and calendar). A hierarchy level can spread to one or more lower related levels within the same hierarchy, or aggregates to one or more higher levels within the same hierarchy.

abstract Hierarchy
abstract CalendarHierarchy : Hierarchy
levels -> HierarchyLevel +
[ all l : levels | l.levelBelongsToThis = this ]
abstract ProductHierarchy : Hierarchy
levels -> HierarchyLevel +
[ all l : levels | l.levelBelongsToThis = this ]
abstract LocationHierarchy : Hierarchy
levels -> HierarchyLevel +
[ all l : levels | l.levelBelongsToThis = this ]
abstract HierarchyLevel
levelBelongsToThis -> Hierarchy
spreadsToLowerLevel -> HierarchyLevel ?
aggregatesToHigherLevel -> HierarchyLevel ?

2.3. Hierarchy Level Instance

In order to ensure that related level belongs to the same hierarchy type, we introduce the concept of Hierarchy Level Instance. For instance, a “Year” level in the “Calendar” Hierarchy spreads to “Month”, “Week”, and “Days” levels. However, it can’t spread to the “department” level for the “Product” hierarchy.

2.4. Plan

The strategic and financial planning processes are supported by different plan versions to designate different plan types. These version names and their abbreviations are used frequently; for example, in views to distinguish measures.

The different plan versions, and their corresponding abbreviations include:

  • Working Plan (Wp), Original Plan (Op), Current Plan (Cp), Last Year Plan (Ly), Target

Plan (Tgt), Waiting for Approval Plan (Wa) Each plan is created by one or more planning role(s), and belongs to a specific retail channel such as store or a catalog.

enum VersionAbbreviation = Op | Cp | Wp | Ly | Wa | Tgt
abstract plan
PlanCreatedBy -> planningRole +
versionAbbreviation -> VersionAbbreviation
xor retailChannels
store
internet
// planSeenInTheFollowingViews -> view +
catalog

2.5. Working Plan

  • The working plan is the editable plan version.
  • It used to develop and revise data.
  • Requirement #29: When seeding a plan, you choose which information to seed. You can seed a certain level of each hierarchy (product, calendar, location) or all levels.
abstract WorkingPlan : plan
seeded ?
seedingSource -> LastYear
lastSeedingDate : string
seededWithThoseInstances -> HierarchyLevelInstance *

2.6. Original Plan

The original plan is a plan version which acts as the baseline against which the current plan is evaluated. It is pre-Season plan that has been approved and promoted from (Wa) to (Op). All roles can view the Op version measures.

abstract OriginalPlan : plan

2.7. Current Plan

  • An in-season plan that has been approved and promoted from Waiting for Approval (Wa) to Current Plan (Cp) version.
  • The plan is updated based on current status.
  • All roles have visibility to current plan measures.
abstract CurrentPlan : plan

2.8. Last Year Plan

A plan version that provides reference to last year’s actual historical data. This plan version is not editable by any role.

abstract LastYear : plan

2.9. Target Plan

This plan version is composed of the company’s targets set by the TopDown and/or MiddleOut planning role(s).

abstract TargetPlan : plan
composedOf -> Target +

2.10. Waiting For Approval Plan

A plan awaiting approval by the Middle-out role. The bottom up role submits the plan for approval.

2.11. Metric

Requirement #3: The planning processes are supported by key financial indicators (metrics) that include sales, markdown, turn, receipts, inventory, gross margin, and open-to-buy.
Requirement #31: MFP users can plan sales based on three classifications; regular, promotional and clearance sale.

Requirement #32: Markdowns are classified into regular, promotional and permanent markdowns.

abstract metric
xor metricName
xor sales
regularSales
// planSeenInTheFollowingViews = Targets2012PlanningView
promotionalSales
clearanceSales
xor markdown
regularMarkdown
// planSeenInTheFollowingViews = Targets2012ReviewView
promotionalMarkdown
permenantMarkdown
turn
receipts
inventory
grossMargin
openToBuy
sales2011 : metric
markdown2011 : metric

2.12. Planning Role

Requirement #4: There are three types of planning roles in MFPs; Top-down, Middle-out, and Bottom-up.

Requirement #5: Top-down roles are typically planning directors. They create the overall targets for the company and set top-down group level targets for the middle out role.
Requirement #6: Middle-out roles are typically planning managers. They create middle-out targets.

Requirement #7: Bottom-up roles are typically merchandise planners. They create Op (Original Plan) and Cp (Current Plan) plans for approval by the middle out role.

Requirement #8: The targets are published by superior levels to the subsequent level: top down passes to middle out, and middle out passes to bottom up. The bottom up then submits the Op, Cp, or both to the middle out role for approval.

2.13. Target

These are the lower level components from which the target plan is composed. As previously mentioned, the targets are either created by TopDown or MiddleOut roles, and published to lower levels.

abstract Target
belongsTo -> TargetPlan
createdBy -> planningRole
[ ! createdBy.roleLevel = BottomUp ]
publishedTo -> planningRole
MiddleOutMarkdownTargets2012 : Target// BottomUp roles can't create Targets

2.14. Workflow

Requirement #12: MFPs follow workflows for creating/managing plans, and each workflow has one or more views.

Requirement #1: The planning processes is divided into two-sub processes; Creating the merchandise financial plan which occurs during pre-season planning. Managing and updating the merchandise financial plan occurs during in-season planning.

Requirement #2: Pre-season planning focuses on creating the original plan against which to benchmark the in-season progress after being approved.

Requirement #23: If you are doing pre-season planning, then it can’t be proceeded by in-season planning.

Requirement #24: Once you are in-season planning, you can’t return to the pre-season planning stage.

abstract workflow
belongsToThisSystem -> MFPsystem
xor workflowPlanningSeason
//**************** Concrete Clafers *******************
preSeasonPlanning
inSeasonPlanning
proceededBy -> workflow ?
followedBy -> workflow ?
views -> view +
//if I want to say can't be proceeded by the same workflow.
PreSeasonTargetSettingWorkflow : workflow//if I want to say can't be followed by the same workflow instance.
// The following two constraints ensure that in-season is proceeded by pre-season and isn't followed by anything.

2.15. View

Requirement #13: There are views who are meant to be seen by a single specific role, and others that could be seen by all roles.

Requirement #14: Each view has one or more measures.

Requirement #15: The strategic and financial planning processes supported by MFP use plan versions to designate different plan types that are used throughout the planning horizon. These version names and their abbreviations are used frequently in planning views (for example, to distinguish measures).

Requirement #30: Top-Down roles are not involved in in-season planning, only Middle-out and Bottom-up roles.

Requirement #33: In the view, you choose to seed, approve, create, or review a plan.

2.16. Measure Requirement #17: Each measure could be expressed either in $ amount or as a percentage called unit of measure (UOM).

Requirement #18: A measure is defined for a specific metric, UOM, and a plan version it belongs to.

Requirement #19: Measures are classified into reference and non-reference measures (historical ones).

Requirement #20: All measures are visible by all roles.

Requirement #21: A non-reference measure is meant to be edited by a specific role.

Requirement #22: Reference measures can’t be edited by any role.

Requirement #25: Measures could be derived by other measures, be used to derive other measures, could have both previous properties, or a regular measure (i.e. isn’t any of the mentioned)

abstract Measure
belongsTo -> view +
measureMetric -> metric
or unitOfMeasure
amount
percentage
measureBelongsToThisPlan -> plan
xor measureType
referenceMeasure
nonReferenceMeasure
editedBy -> planningRole ?
derivedByAnotherMeasures ?
derivedByTheseMeasures -> Measure +
derivedByThisRule -> Rule
derivesOtherMeasures ?
derivesTheseMeasures -> Measure +// A measure belongs to one or more views.
derivesUsingThisRule -> Rule

2.17. Rule

The rule is dealt with here in a superficial manner. It had to be present since a “Measure” derives or is derived by another measure through some rule. The details of those rules are outside the scope of the model.

abstract Rule
RelatedMeasure -> Measure *
//***************** Concrete Clafers ******************