Merchandise Financial Planning

2. Clafer Model

c0_MFPsystem abstract MFPsystem c0_CalendarHierarchy abstract CalendarHierarchy : Hierarchy c0_MFPsystem->c0_CalendarHierarchy calendar c0_ProductHierarchy abstract ProductHierarchy : Hierarchy c0_MFPsystem->c0_ProductHierarchy producth c0_LocationHierarchy abstract LocationHierarchy : Hierarchy c0_MFPsystem->c0_LocationHierarchy location c0_workflow abstract workflow c0_MFPsystem->c0_workflow hasTheFollowingWorkflows c0_Hierarchy abstract Hierarchy c0_CalendarHierarchy->c0_Hierarchy c0_HierarchyLevel abstract HierarchyLevel c0_CalendarHierarchy->c0_HierarchyLevel levels c0_ProductHierarchy->c0_Hierarchy c0_ProductHierarchy->c0_HierarchyLevel levels c0_LocationHierarchy->c0_Hierarchy c0_LocationHierarchy->c0_HierarchyLevel levels c0_workflow->c0_MFPsystem belongsToThisSystem c0_workflow->c0_workflow proceededBy c0_workflow->c0_workflow followedBy c0_view abstract view c0_workflow->c0_view views c0_Oracle Oracle : MFPsystem c0_Oracle->c0_MFPsystem c0_HierarchyLevel->c0_Hierarchy levelBelongsToThis c0_HierarchyLevel->c0_HierarchyLevel spreadsToLowerLevel c0_HierarchyLevel->c0_HierarchyLevel aggregatesToHigherLevel c0_HierarchyLevelInstance abstract HierarchyLevelInstance c0_HierarchyLevelInstance->c0_HierarchyLevel instanceBelongsTo c0_HierarchyLevelInstance->c0_HierarchyLevelInstance instanceAggregatesTo c0_HierarchyLevelInstance->c0_HierarchyLevelInstance instanceSpreadsTo c0_Cal2012 Cal2012 : CalendarHierarchy c0_Cal2012->c0_CalendarHierarchy c0_Menswear Menswear : ProductHierarchy c0_Menswear->c0_ProductHierarchy c0_Year Year : HierarchyLevel c0_Year->c0_HierarchyLevel c0_Season Season : HierarchyLevel c0_Season->c0_HierarchyLevel c0_Month Month : HierarchyLevel c0_Month->c0_HierarchyLevel c0_Week Week : HierarchyLevel c0_Week->c0_HierarchyLevel c0_MensCasualWear MensCasualWear : HierarchyLevel c0_MensCasualWear->c0_HierarchyLevel c0_MensSportsWear MensSportsWear : HierarchyLevel c0_MensSportsWear->c0_HierarchyLevel c0_plan abstract plan c0_planningRole abstract planningRole c0_plan->c0_planningRole PlanCreatedBy c0_VersionAbbreviation c0_VersionAbbreviation c0_plan->c0_VersionAbbreviation versionAbbreviation c0_planningRole->c0_plan roleCreatedTheFollowingPlans c0_Target abstract Target c0_planningRole->c0_Target roleCreatedTheFollowingTargets c0_planningRole->c0_Target roleReceivesTheFollowingTargets c0_PlanningRoleLevel c0_PlanningRoleLevel c0_planningRole->c0_PlanningRoleLevel roleLevel c0_planningRole->c0_view RoleSeesTheFollowingViews c0_Measure abstract Measure c0_planningRole->c0_Measure roleEditsTheFollowingMeasures c0_WorkingPlan abstract WorkingPlan : plan c0_WorkingPlan->c0_HierarchyLevelInstance seededWithThoseInstances c0_WorkingPlan->c0_plan c0_LastYear abstract LastYear : plan c0_WorkingPlan->c0_LastYear seedingSource c0_LastYear->c0_plan c0_OriginalPlan abstract OriginalPlan : plan c0_OriginalPlan->c0_plan c0_CurrentPlan abstract CurrentPlan : plan c0_CurrentPlan->c0_plan c0_TargetPlan abstract TargetPlan : plan c0_TargetPlan->c0_plan c0_TargetPlan->c0_Target composedOf c0_Target->c0_planningRole createdBy c0_Target->c0_planningRole publishedTo c0_Target->c0_TargetPlan belongsTo c0_WaitingForApproval abstract WaitingForApproval : plan c0_WaitingForApproval->c0_plan c0_WorkingPlan2012 WorkingPlan2012 : WorkingPlan c0_WorkingPlan2012->c0_WorkingPlan c0_TargetPlan2012 TargetPlan2012 : TargetPlan c0_TargetPlan2012->c0_TargetPlan c0_OriginalPlan2012 OriginalPlan2012 : OriginalPlan c0_OriginalPlan2012->c0_OriginalPlan c0_metric abstract metric c0_sales2011 sales2011 : metric c0_sales2011->c0_metric c0_markdown2011 markdown2011 : metric c0_markdown2011->c0_metric c0_view->c0_workflow viewBelongsTo c0_view->c0_plan planversion c0_view->c0_planningRole specificRole c0_view->c0_planningRole roles c0_view->c0_Measure measures c0_Measure->c0_plan measureBelongsToThisPlan c0_Measure->c0_planningRole editedBy c0_Measure->c0_metric measureMetric c0_Measure->c0_view belongsTo c0_Measure->c0_Measure derivedByTheseMeasures c0_Measure->c0_Measure derivesTheseMeasures c0_Rule abstract Rule c0_Measure->c0_Rule derivedByThisRule c0_Measure->c0_Rule derivesUsingThisRule c0_PlanningDirector PlanningDirector : planningRole c0_PlanningDirector->c0_planningRole c0_ExecutiveManager ExecutiveManager : planningRole c0_ExecutiveManager->c0_planningRole c0_MerchandisePlanner MerchandisePlanner : planningRole c0_MerchandisePlanner->c0_planningRole c0_TopDownSalesTargets2012 TopDownSalesTargets2012 : Target c0_TopDownSalesTargets2012->c0_Target c0_MiddleOutMarkdownTargets2012 MiddleOutMarkdownTargets2012 : Target c0_MiddleOutMarkdownTargets2012->c0_Target c0_PreSeasonTargetSettingWorkflow PreSeasonTargetSettingWorkflow : workflow c0_PreSeasonTargetSettingWorkflow->c0_workflow c0_InSeasonTargetSettingWorkflow InSeasonTargetSettingWorkflow : workflow c0_InSeasonTargetSettingWorkflow->c0_workflow c0_Targets2012PlanningView Targets2012PlanningView : view c0_Targets2012PlanningView->c0_view c0_Targets2012ApprovalView Targets2012ApprovalView : view c0_Targets2012ApprovalView->c0_view c0_Targets2012ReviewView Targets2012ReviewView : view c0_Targets2012ReviewView->c0_view c0_Rule->c0_Measure RelatedMeasure c0_TgtSales TgtSales : Measure c0_TgtSales->c0_Measure c0_LyMarkdown LyMarkdown : Measure 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
// planSeenInTheFollowingViews -> view +

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
// planSeenInTheFollowingViews = Targets2012PlanningView
xor markdown
// planSeenInTheFollowingViews = Targets2012ReviewView
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 *******************
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
measureBelongsToThisPlan -> plan
xor measureType
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 ******************