You are on page 1of 15

Richmond Professional Services

Background
Richmond Professional Services (RPS) is a consulting organization that specializes in
technology related professional service engagements (e.g., network administration, software
development, security audits, and so on). RPS offers professional support for off the shelf
technology solutions as well as custom technology solutions. Some of its services are high-level
strategy advice with no technical deliverable and other services are actual technical deliverables
(e.g., a custom customer relationship management system or custom mobile application on a
specific platform). It has clients from all around the world but most of its business comes from
the United States and other North American based countries. RPS currently maintains offices in
ten US cities, which are close to regional and international airport hubs. All of its clients are
serviced by managers and consultants located in one of these ten locations, because most of the
work can be performed virtually.1
Many consulting organizations charge clients based on the length of time that it takes to
complete a project2 as opposed to a flat fee. For example, a company like Deloitte or Accenture
charges its clients a negotiated hourly fee for each hour that its consultants and managers work
on an engagement. If a consultant completes an engagement in five hours or fifteen hours, then
the client pays Deloitte or Accenture the hourly rate for five hours or fifteen hours of that
consultant’s time. On some level, this structure offers an economic incentive for these firms to
work slowly on an engagement (although there are standard billable charts outlining how long
certain tasks should take for ethical billing purposes).
This approach works well for the consulting companies because these arrangements allow these
companies to pass on project related costs to its clients. However, this approach often frustrates
clients who may get surprised when their monthly bill comes in the mail. The founders of RPS
were former clients and partners of the major consulting firms who were dissatisfied with this
billing approach. For all of RPS’ consulting engagements, RPS negotiates a flat contracted rate
at the start of each consulting engagement instead of a per hour rate. This flat fee includes all
expenses such as transportation and hotels as well as all time its managers and consultants spend
on an engagement. Therefore, RPS gets paid the same amount of money if it has four
consultants working on an engagement for 100 hours each or two consultants working on that
engagement for 25 hours each.
This flat fee structure has enabled RPS to gain a significant market share over its peer consulting
companies because many clients are pleased with these simplified consulting agreements.

1
RPS does use some outsourced consulting staff on its engagements in order to save money or to obtain skills that
RPS does not have in-house. However, those outsourced staff consultants are assigned to a specific US based office
(even though they are not physically located in the US). Therefore, you might see some consultants earning $5.00
(USD) an hour (or less) because those consultants are paid in their home currency but the database has converted
those wages to USDs to prevent any currency related problems that might otherwise arise.
2
In this case, the terms engagement and project are used synonymously. Both refer to a temporary endeavor with
clearly defined objectives having a fixed start date and a fixed end date.

CASE ASSIGNMENT Page 1 of 15


Richmond Professional Services

However, the key to this strategy working effectively is to properly estimate ‘labor hours’ and
other expenses for each project before negotiating the contracted fee for each engagement. If
RPS has poor up-front cost and time estimates, then it will end up allocating its consulting
resources on non-profitable projects. Contrarily, if RPS has excellent up-front cost and time
estimates, then it will remove significant revenue and cost uncertainty.
However, the CEO of RPS, Eunji Park, has recently noticed a decline in profitability even
though the number of engagements per employee has increased. Given the increased utilization
per staff member, Park believes that the profitability decline may be the result of one or both of
the following factors: 1) poor up front contract negotiation on behalf of her sales staff or 2) poor
budget management of the engagements by its team of project managers and consultants.
However, she wants to analyze data to uncover the root cause of this problem (if it is even a
problem), because she has to deliver an important stakeholder report in the next few weeks. As
such, she has hired you to analyze a full year’s worth of client engagements to discover what is
happening.
Engagement Details
Each engagement is assigned to a project manager. Typically, this person is the same employee
who was responsible for helping the sales staff determine the client fee for each engagement.
The project manager may take a primary or a secondary role in the management of the
engagement. A secondary role means that the project manager took a hands-off (passive)
approach to manage the project whereas a primary role means that the project manager took a
hands-on (active) approach to manage the project. Although RPS prefers the hands-off (passive)
approach, it does not force its managers to practice one style versus another style. Interestingly,
Park and the rest of the executive team has no empirical insights into whether an active or a
passive project management style works best for RPS.
RPS has a structured approach to project management. It organizes each engagement or client
project into five phases (see Figure 1).

Figure 1. Project Phases

CASE ASSIGNMENT Page 2 of 15


Richmond Professional Services

In the initiating phase, the project manager works with a small team to begin or officially charter
the project. This phase is where the project manager obtains a signed contract from the client to
actually perform the work for the agreed upon flat fee. In the planning phase, the project
manager works with a small team to develop a high-level plan (most notably the budget, scope of
work, and project timeline), which will serve as the set of blue prints that the consultants will use
to guide their project work. In the executing phase, the consultants actually perform the work.
The bulk of each project (in terms of cost and time) typically occurs in this phase. In the
controlling phase, the consultants along with the project manager monitor the project execution
by meeting with the execution team to ensure that the work gets done on time, within scope and
on budget. In the closing phase, the project manager and a small team of consultants document
the project and deliver the final work product to the client.
At RPS, the project manager is responsible for developing a budget for each phase of the project.
For instance, for an “Information Security Networking” project, the project manager will develop
a schedule and a budget for the initiation, planning, execution, controlling, and closing phases for
that specific project. However, it is not uncommon for one phase of the project to start early or
late. As such, when evaluating the final project, Park and the rest of the executive team look at
the actual start date of the initiation phase (as compared with the planned start date) and the
actual end date of the closing phase (as compared with the planned end date) of the closing phase
to evaluate how well the project team against its schedule.
Project Manager Ratings
RPS engages in projects across a variety of technology topics and a variety of industry sectors.
The two main industry sectors that RPS works in are commercial and government. In the
government space (public sector), RPS engages with different local and national governments
around the world to help public agencies with their technology needs. In the commercial space
(private sector), RPS engages in technology consulting work for all types of industries ranging
from oil and gas to traditional retail. RPS provides a gamut of technical services for these
private sector organizations.
Given the breadth of project work across these different segments, it is not possible for a project
manager to be an expert in everything. As such, at the start of each project, the executive team
(led by Park) grades each project manager’s experience level with the specific project. This
evaluation is on a 7-point scale with 1 being the least experienced (e.g., new to industry or
technology) and 7 being the most experienced (e.g., expert in both the industry and the
technology).
In a perfect world, project managers would only get assigned to projects where they have a high
level of expertise and significant experience with the specific industry and technology being
used. However, this is not always possible given the staffing requirements associated with
running thousands of projects each year.

CASE ASSIGNMENT Page 3 of 15


Richmond Professional Services

Consultant Ratings
Similarly, each consultant has a skill’s rating (which RPS refers to as a domain experience
rating) as well. This rating is primarily based on the consultant’s competency level with the
specific technology being used on the engagement but it also includes the consultant’s
experience with the industry, sector, and specific phase of the project that he/she is assigned.
These ratings often vary significantly for a consultant who works on many different types of
engagements. For instance, a consultant may be an expert Python developer but have minimal
experience with public sector government work or the project initiation phase, so he/she may be
rated slightly lower (relative to if he/she had expertise in the technology, the sector, and the
phase of the particular project). In an ideal environment, a manager would only staff experts to
each project but this is not always logistically feasible due to time and organizational constraints.
RPS does not like to reassign consultants while they are in the middle of working on other
engagements (unless it is mandated to do so by a specific client).
Core versus Non-Core Roles
On each project team, a consultant may be either a core or a non-core team member. A core
team member has significantly more involvement on project deliverables for that phase of the
engagement and is more directly involved in project decisions. Therefore, a core team member
has more influence over the success or failure of the specific project (or phase of the project). A
non-core team member is someone who is only peripherally involved in the decision making
processes for that particular phase of the project. Non-core team members are workers who just
do what they are told (for lack of a better analogy). These team members may certainly offer
suggestions but those suggestions may or may not get incorporated to the project’s deliverables
or the decision making processes of the core team members for that phase of the project. A
consultant may take on a core role on one project or one phase of a particular engagement but a
non-core role on a different project or a different project phase.
Park believes that RPS should leverage core team members significantly more on its
engagements relative to non-core team members. She wants core team members to work more
hours on each client engagement relative to non-core team members. She believes that this will
create a sense of ownership on each consulting engagement. Additionally, Park believes that this
sense of ownership will increase deliverable quality and attention to timeline and budget
constraints. In her opinion, non-core team members are not fully vested in the project and will
thus produce sub-par deliverables (unless they are being guided by excellent core team
members).

CASE ASSIGNMENT Page 4 of 15


Richmond Professional Services

Revenue
For RPS, its revenue comes solely from the flat contract fee for its customer engagements.
Costs
RPS incurs several costs. The first cost is the number of hours that a consultant works on an
engagement multiplied by the consultant’s hourly wage. RPS pays its consultants based on the
type of work and their role on a specific project during the specific phase of the project.
Therefore, you may see a consultant earn $50.00 per hour for one task or phase of a specific
project and $75.00 per hour for a different task or phase on the same or a different project. The
second cost is the number of hours that a manager works on a project multiplied by the
manager’s hourly wage. Similar to consultants, RPS pays its managers a variable wage
depending on the type of project and the type of role that a manager plays on a specific project.
The third cost is the travel expenses associated with working on a project. These costs are
incurred by the consultants when they travel to the client’s location. RPS does not get
reimbursed for these expenses. The negotiated flat fee for the engagement should have already
factored in those travel expenses when the sales staff negotiated the flat fee.
Budgeting & Scheduling
Like most organizations, RPS adheres to structured budgeting and scheduling processes. The
project manager budgets all project related costs and schedules tasks and consultants at the
beginning of the engagement. As such, a key success metric for RPS is how effective the
management team is against their cost budgets and projected timelines. Delivering the projects
on time is important to get repeat business. Unfortunately, technology projects across all
companies (not just RPS) are routinely over budget and behind schedule. RPS performs better
than the industry averages in terms of cost and schedule estimates (based on anecdotal evidence),
but Park is constantly looking at what factors are correlated with delivering her projects on-time
and on-budget.
Regression Analyses
The first two questions are related to project profitability measured as percent return for each
project.
1. Regress the percent return for each project on the manager’s contextual experience rating, the
project phase 1, 2, & 5 average core to non-core domain experience rating (ratio) for the
consultants assigned to the project, and the project phase 3 & 4 average core to non-core
domain experience rating (ratio) for the consultants assigned to the project. Park wants you
to group work done in phases 3 & 4 together because those two phases are tightly coupled
and typically represent the most important project work (in addition to taking up most of the
time and budget for the project). Therefore, core versus non-core domain experience in those
two project phases might be more important to project success (defined as percent return)

CASE ASSIGNMENT Page 5 of 15


Richmond Professional Services

relative to core versus non-core domain experience in the other three project phases. She
also wants you to group phases 1, 2, & 5 together because work done in these phases are
typically more management related. As such, core consultants experience might lead to a
more efficient governance and oversight on a specific project/engagement, which could lead
to greater project success. Park needs this analysis done for all projects together, for the low
complexity projects separately, for the medium complexity projects separately, and for the Commented [DD1]:
high complexity projects separately.

2. Using your expert business knowledge, you need to add additional independent variables to
the regression models in question #1. Your goal is to be able to provide a data driven
recommendation to Park related to how she can better manage her projects in terms of overall
project profitability.
The next two questions are related to the budget of each project measured as the percentage over
or under budget. For this analysis, a negative percentage should mean that the project came in
under budget. Therefore, your calculation should be ((actual costs-budgeted costs)/budgeted
costs)*100.
3. Regress the percent over or under budget for each project on the manager’s contextual
experience rating, the average number of hours that core consultants worked on the project
and the average number of hours that non-core consultants worked on the project. Park
wants this analysis done at the project level and not at the project phase level. The logic for
this analysis is that core consultants should be more vested in the project (relative to non-core
consultants) so they should pay more attention to the project’s schedule and budget.
Therefore, the more hours spent by core-consultants should be positively correlated with a
project being at or under-budget. For this analysis, if the average number of hours for the Commented [DD2]: Argument
core and non-core consultants are highly correlated, use a ratio of the two variables (i.e.,
combine those two independent variables into a single independent variable). Your ratio
should divide core average hours by non-core average hours. Park needs this analysis done
for all projects together, for the low complexity projects separately, for the medium Commented [DD3]: Multivariate Regression vs.
complexity projects separately, and for the high complexity projects separately. Univariate Regression
Commented [DD4]:
4. Using your expert business knowledge, you need to add additional independent variables to
the regression models in question #3. Your goal is to be able to provide a data driven
recommendation to Park related to how she can better manage her projects in terms of
performance relative to budget.
The next two questions are related to the delivery timing of each project. For these analyses, the
expected end date is determined as the last date that any consultant is expected to be finished
working on any phase of the project and the actual end date is the last date that any consultant
actually finished working on any phase of the specific project.

CASE ASSIGNMENT Page 6 of 15


Richmond Professional Services

5. Regress the number of days late or early a project was delivered on the manager’s contextual
experience rating, the average number of hours that core consultants worked on the project
and the average number of hours that non-core consultants worked on the project. Park also
wants this analysis done at the project level and not at the project-phase level. Similar to the
last analysis, if the average number of hours for the core and non-core consultants are highly
correlated, use a ratio of the two variables (i.e., combine those two independent variables into
a single independent variable). Your ratio should divide core average hours by non-core
average hours. Park needs this analysis done for all projects together, for the low complexity
projects separately, for the medium complexity projects separately, and for the high
complexity projects separately.

6. Using your expert business knowledge, you need to add additional independent variables to
the regression models in question #5. Your goal is to be able to provide a data driven
recommendation to Park related to how she can better manage her projects in terms of
performance relative to timeline.

7. Perform any additional data analyses to provide Park with data driven insights to help her
better manage her engagements/projects.
Tableau Views & Dashboards
You have to construct a tool for Park to use to evaluate the performance of her
engagements/projects. This tool should be highly interactive. Park should be able to view her
engagements across a wide variety of metrics (profitability, budget, timeline) and dimensions
(complexity, experience, and so on). There are many different ways to view these different
projects and your Tableau views and dashboards should enable Park to interact with any
dimensions or measures that are relevant or that might aid in her decision making.
Your Tableau views and dashboards should incorporate your regression results as well. Park
should be able to view the results based on different levels for each of the independent variables.
CEO Park is deliberately not providing you with a picture for what the Tableau visuals might
look like. She wants you to use your critical and analytical thinking skills to design your own set
of dynamic and interactive visuals. The only requirement is that your visuals must provide
insights to help her better manage her client engagements and they must be interactive (filters,
actions, and so on).
Raw Data Files & Access Database Template
Template.accdb – This access database has all of the tables and relationships pre-built and most
of the tables populated with data.

CASE ASSIGNMENT Page 7 of 15


Richmond Professional Services

Load the data contained in the following two files to their appropriate tables in the Access
database. The tables have already been made for you. You just have to load the data!

ProjectManagerAssignments.txt – This text file contains 3,515 records. If you have the data
loaded properly, the sum of the ManagersHourlyWage*ActualProjectHours across all rows
should equal 15,142,425.
ProjectConsultantAssignments.xlsx – This excel file contains 86,826 records. If you have the
data loaded correctly the sum of the HourlyWage*ActualHours across all rows should equal
$381,655,974 and the sum of the ActualExpenses across all rows should equal $18,641,575.
Data Dictionary
Categories
This table contains data concerning each category for each project/engagement. RPS engages in
two broad categories of projects: 1) Standard and 2) Custom.

CategoryID: This field is a number (double) data type and is the primary key of this table.
CategoryName: This field is a short text data type and contains the name of each category.
CategoryDescription: This field is a short text data type and contains a brief description of each
category.

Consultants
This table contains the master list of all consultants employed by RPS.

ConsultantID: This field is a number (double) data type and is the primary key of this table.
FirstName: This field is a short text data type and contains the first name of each consultant.
LastName: This field is a short text data type and contains the last name of each consultant.
Gender: This field is a short text data type containing each consultant’s gender.
YearsOfEducation: This field is a number (double) data type containing the years of education
that each consultant has completed. A number of 12 means that the consultant has
finished high school only and a value of 16 means that the consultant has finished their
undergraduate degree only. Values above 16 mean that the consultant has earned a
degree higher than undergraduate (i.e., masters or PhD).
HireDate: This field is a date/time data type indicating the date that the consultant was hired by
RPS.
OfficeID: This field is number (double) data type and is a foreign key to the OfficeID field in the
offices table. One office may contain many consultants but each consultant may be
assigned to only a single office.

Countries

CASE ASSIGNMENT Page 8 of 15


Richmond Professional Services

This table contains a master list of countries. In this data set, not every country contains a
project. Note: If you build a map in Tableau, you should be able to use either the two digit or the
three digit country code but one of the codes may result in fewer “unknown” values.

CountryID: This field is a number (double) data type and is the primary key of this table.
CountryName: This field is a short text data type and contains the name of each country.
TwoDigitCode: This field is a short text data type and contains the two digit country code that
can be used to create a map of your data.
ThreeDigitCode: This field is a short text data type and contains the three digit country code that
can be used to create a map of your data.

Customers
This table contains a master list of customers. In this data set, not every customers has an
assigned engagement.

CustomerID: This field is a number (double) data type and is the primary key of this table.
CountryID: This field is a number (double) data type and is a foreign key to the CountryID field
in the countries table. One country may contain many customers but each customer may
be assigned to only a single country.
ClientType: This field is a short text data type containing the type of client that each customer is
assigned. In these data, a customer may be either a commercial client (private sector) or
a government client (public sector).

Managers
This table contains a master list of managers who are employed by RPS.

ManagerID: This field is a number (double) data type and is the primary key of this table.
FirstName: This field is a short text data type and contains the first name of each manager.
LastName: This field is a short text data type and contains the last name of each manager.
Nationality: This field is a short text data type and contains the nationality/ethnicity of each
manager.
Gender: This field is a short text data type containing each manager’s gender.
DOB: This field is a Date/Time data type containing each manager’s date of birth.
Email_Address: This field is a short text data type containing each manager’s work email
address.
YearsOfEducation: This field is a number (double) data type containing the years of education
that each manager has completed. A value of 12 means that the manager has finished
high school only and a value of 16 means that the manager has finished their

CASE ASSIGNMENT Page 9 of 15


Richmond Professional Services

undergraduate degree only. Values above 16 mean that the manager has earned a degree
higher than undergraduate (i.e., masters or PhD).
HireDate: This field is a date/time data type indicating the date that the manager was hired by
RPS.
OfficeID: This field is number (double) data type and is a foreign key to the OfficeID field in the
offices table. One office may contain many managers but each manager may be assigned
to only a single office.

Offices
This table contains a master list of RPS office locations. RPS currently has ten office locations
in the United States.

OfficeID: This field is a number (double) data type and is the primary key of this table.
CountryID: This field is a number (double) data type and is a foreign key to the CountryID field
in the countries table. One country may contain many offices but each office may be
assigned to only a single country.
City: This field is a short text data type and refers to each office’s city.
State: This field is a short text data type and refers to each office’s state.
ZipCode: This number (double) field refers to the postal code for each office.

Phases
This table contains a record for each phase for RPS projects. There are currently five phases for
each consulting engagement (Initiate, Plan, Execute, Control, and Close)

PhaseID: This field is a number (double) data type and is the primary key of this table.
PhaseName: This field is a short text data type and contains the name of each phase.

ProjectConsultantAssignments

This table contains the project assignments for each consultant for each project phase. NOTE:
This table is empty in the Access database template because you have to load it! Pay careful
attention to each foreign key when you load the table because there will inevitably be foreign key
problems that you have to fix in order to load your data.

Learning Note: A relational database is highly structured (when set up properly). This helps
ensure that our data are do not have any orphaned (i.e., children without parents) records.
However, the disadvantage of this approach is that you must perform robust foreign key checks
in order to ensure that your data load properly.

CASE ASSIGNMENT Page 10 of 15


Richmond Professional Services

ProjectID: This number (double) field is part of the primary key for this table. This field is also a
foreign key that references the ProjectID field in the projects table. One project may
have many records in the ProjectConsultantAssignments table but each row in the
ProjectConsultantAssignments table may reference only one row in the projects table.
PhaseID: This number (double) field is part of the primary key for this table. This field is also a
foreign key that references the PhaseID field in the Phases table. One phase may have
many records in the ProjectConsultantAssignments table but each row in the
ProjectConsultantAssignments table may reference only one row in the phases table.
ConsultantID: This number (double) field is part of the primary key for this table. This field is
also a foreign key that references the ConsultantID field in the consultants table. One
consultant may have many records in the ProjectConsultantAssignments table but each
row in the ProjectConsultantAssignments table may reference only one row in the
consultant’s table.
CoreNonCore: This short text field contains a flag indicating whether the consultant is
participating in a core versus non-core role for the particular project phase combination.
ActualStartDate: This date/time field indicates when the consultant actually started working on
the particular project phase combination.
ActualEndDate: This date/time field indicates when the consultant actually finished working on
the particular project phase combination.
HourlyWage: This number (double) field contains the consultant’s actual hourly wage for the
particular project phase combination.
ActualHours: This number (double) field contains the actual number of hours that a consultant
spent working on the particular project phase combination.
DomainExperienceRating: This number (double) field contains each consultant’s experience
rating given to them by the executive team. A consultant may have a different rating for
each project phase combination that they worked on during their employment at RPS.
ActualExpenses: This number (double) field contains the actual expenses that each consultant
accrued during each project phase combination. This field generally refers to travel
expenses associated with attending meetings or going to the client’s office (but it is a
catchall category of all project-phase expenses).

ProjectManagerAssignments

This table contains the project assignments for each manager. This table allocates a project
manager’s actual hour’s worked and hourly wages across the entire project and not to each phase
of the project. NOTE: This table is empty in the template because you have to load it!

Learning Note: It is not uncommon to have two different levels of analysis in a data set. This
issue happens most frequently when we get data from multiple systems. The project managers

CASE ASSIGNMENT Page 11 of 15


Richmond Professional Services

may store their time and expense data in a different system from the consultants, which can
result in the different systems having different levels of granularity.

ProjectID: This number (double) field is part of the primary key for this table. This field is also a
foreign key that references the ProjectID field in the projects table. One project may
have many records in the ProjectManagerAssignments table but each row in the
ProjectManagerAssignments table may reference only one row in the projects table.
ManagerID: This number (double) field is part of the primary key for this table. This field is
also a foreign key that references the ManagerID field in the managers table. One
manager may have many records in the ProjectManagerAssignments table but each row
in the ProjectManagerAssignments table may reference only one row in the managers
table.
ManagerHourlyWage: This number (double) field represents each manager’s actual hourly wage
for the specific project. Each manager may earn a different wage for each project that
they work on for RPS.
ActualProjectHours: This number (double) field contains the actual hours that each manager
work on the project. Note that this field is at the project level and is not split up by
project phases.
PrimarySecondary: This short text field contains a flag indicating whether the project manager
took a primary (active) or a secondary (passive) role in managing the project.
ContextualExperienceRating: This number (double) field contains each manager’s experience
rating based on the type of technology and the type of client. A manager may have a
different rating for each project due to contextual differences associated with each project
and the technologies associated with each project. A manager cannot be an expert in
every task, industry and technology.

ProjectPhaseBudgetTimeline

This table contains the budget information for each project. These data are broken down by each
phase in each project.

ProjectID: This number (double) field is part of the primary key for this table. This field is also a
foreign key that references the ProjectID field in the projects table. One project may
have many records in the ProjectPhaseBudgetTimeline table but each row in the
ProjectPhaseBudgetTimeline table may reference only one row in the projects table.
PhaseID: This number (double) field is part of the primary key for this table. This field is also a
foreign key that references the PhaseID field in the phase’s table. One phase may have
many records in the ProjectPhaseBudgetTimeline’s table but each row in the
ProjectPhaseBudgetTimeline’s table may reference only one row in the phase’s table.

CASE ASSIGNMENT Page 12 of 15


Richmond Professional Services

BudgetedConsultantCosts: This number (double) field contains the budget for all of the
consultants assigned to each project phase combination.
ExpectedStartDate: This date/time field contains the expected start date for each project phase
combination. Not all consultants working on a phase of the project must all begin work
on this date. However, at least one consultant is expected (planned) to start working on
this project phase combination by this date.
ExpectedEndDate: This date/time field contains the expected end date for each project phase
combination. Not all consultants working on a phase of the project must all end their
work on this date. However, no consultant is expected (planned) to have any more work
to complete on a phase after this date.

Projects

This table contains the master list of projects for this specific period.

ProjectID: This number (double) field is the primary key for this table. It contains the unique
identifier for each project.
ProjectName: This short text field contains the name of each project. The project names that are
entered in this field have been masked so they are relatively meaningless.
ProjectTypeID: This field is number (double) data type and is a foreign key to the ProjectTypeID
field in the ProjectTypes table. Each ProjectType may be assigned to many projects but
each project may be assigned to only a single ProjectType.
SubProjectTypeID: This field is number (double) data type and is a foreign key to the
SubProjectTypeID field in the ProjectSubTypes table. Each ProjectSubType may be
assigned to many projects but each project may be assigned to only a single
ProjectSubType. Not all projects have an assigned ProjectSubTypeID so nulls are OK in
this field.
ManagerID: This number (double) field is a foreign key that references the ManagerID field in
the managers table. One manager may have many records in the projects table but each
row in the projects table may reference only one row in the managers table.
OfficeID: This field is number (double) data type and is a foreign key to the OfficeID field in the
offices table. One office may contain many projects but each project may be assigned to
only a single office.
Complexity: This short text field contains the complexity of each project. The complexity values
range from 1 to 3 with the lower values meaning less complex than the higher values.
ClientFee: This field is a number (double) data type containing the revenue. This field contains
the contracted fee that each client has agreed to pay RPS for each project.
BudgetedManagementCost: This field is a number (double) data type containing the budgeted
cost for the manager’s time. This cost is separate from the consultant’s budgeted cost.

CASE ASSIGNMENT Page 13 of 15


Richmond Professional Services

BudgetedConsultantExpenses: This field is a number (double) data type containing the budgeted
expenses for the consultant’s travel to client meetings.
CategoryID: This field is a number (double) data type and is a foreign key to the CategoryID
field in the categories table. One category may contain (be assigned to) many projects
but each project may be assigned to only a single category.
CustomerID: This field is a number (double) data type and is a foreign key to the CustomerID
field in the customers table. One customer may contain (reference) many projects but
each project may be assigned to only a single customer.
ReturnGroupID: This field is a number (double) data type and is a foreign key to the
ReturnGroupID field in the ReturnGroups table. One return group may contain
(reference) many projects but each project may be assigned to only a single return group.
The “return” in this field refers to the potential or expected rate of return for the
engagement before any project work has begun.
RiskGroupID: This field is a number (double) data type and is a foreign key to the RiskGroupID
field in the RiskGroups table. One risk group may contain (reference) many projects but
each project may be assigned to only a single risk group. This field refers to the expected
risk category for the project before any project work has begun.

ProjectSubTypes
This table contains a list of sub types of projects. There is a hierarchical relationship between
ProjectTypes (parent) and ProjectSubTypes (child) but not all ProjectTypes contain
ProjectSubTypes.

SubProjectTypeID: This field is a number (double) data type and is the primary key of this table.
ProjectTypeID: This field is a number (double) data type and is a foreign key to the
ProjectTypeID field in the ProjectTypes table. One project type may contain many
project sub types but each project sub type may be assigned to only a single project type.
In this database, there is not an option to a project sub type have multiple parents.
Description: This field is a short text data type containing a brief description of the project sub
type.

ProjectTypes
This table contains a list of types of projects. These types of the specific technical project types
that RPS offers.

ProjectTypeID: This field is a number (double) data type and is the primary key of this table.
Description: This field is a short text data type containing a brief description of the project type.

ReturnGroups

CASE ASSIGNMENT Page 14 of 15


Richmond Professional Services

This table contains a list of return groups. These groups refer to the financial rate of return
categories used by RPS.

ReturnGroupID: This field is a number (double) data type and is the primary key of this table.
GroupName: This field is a short text data type containing a short name for the return group.
Description: This field is a short text data type containing a brief description of the return group.

RiskGroups
This table contains a list of risk groups. These groups refer to the risk assigned to each project
before the start of work on the project.

RiskGroupID: This field is a number (double) data type and is the primary key of this table.
RiskName: This field is a short text data type containing a short name for the risk group.
Description: This field is a short text data type containing a brief description of the risk group.

CASE ASSIGNMENT Page 15 of 15

You might also like