Total Pageviews

Thursday, May 27, 2010

Price Discrimination










Price Discrimination

Most businesses charge different prices to different groups of consumers for what is more or less the same good or service! This is price discrimination and it has become widespread in nearly every market. This note looks at variations of price discrimination and evaluates who gains and who loses?

What is price discrimination?

Price discrimination or yield management occurs when a firm charges a different price to different groups of consumers for an identical good or service, for reasons not associated with costs.

It is important to stress that charging different prices for similar goods is not pure price discrimination.

We must be careful to distinguish between price discrimination and product differentiation – differentiation of the product gives the supplier greater control over price and the potential to charge consumers a premium price because of actual or perceived differences in the quality / performance of a good or service.

Conditions necessary for price discrimination to work

Essentially there are two main conditions required for discriminatory pricing

Differences in price elasticity of demand between markets: There must be a different price elasticity of demand from each group of consumers. The firm is then able to charge a higher price to the group with a more price inelastic demand and a relatively lower price to the group with a more elastic demand. By adopting such a strategy, the firm can increase its total revenue and profits (i.e. achieve a higher level of producer surplus). To profit maximise, the firm will seek to set marginal revenue = to marginal cost in each separate (segmented) market.
Barriers to prevent consumers switching from one supplier to another: The firm must be able to prevent “market seepage” or “consumer switching” – defined as a process whereby consumers who have purchased a good or service at a lower price are able to re-sell it to those consumers who would have normally paid the expensive price. This can be done in a number of ways, – and is probably easier to achieve with the provision of a unique service such as a haircut rather than with the exchange of tangible goods. Seepage might be prevented by selling a product to consumers at unique and different points in time – for example with the use of time specific airline tickets that cannot be resold under any circumstances.
Examples of price discrimination

Price discrimination is an extremely common type of pricing strategy operated by virtually every business with some discretionary pricing power. It is a classic part of price competition between firms seeking a market advantage or to protect an established market position.

(a) Perfect Price Discrimination – charging whatever the market will bear
Sometimes known as optimal pricing, with perfect price discrimination, the firm separates the whole market into each individual consumer and charges them the price they are willing and able to pay. If successful, the firm can extract all consumer surplus that lies beneath the demand curve and turn it into extra producer revenue (or producer surplus). This is impossible to achieve unless the firm knows every consumer’s preferences and, as a result, is unlikely to occur in the real world. The transactions costs involved in finding out through market research what each buyer is prepared to pay is the main block or barrier to a businesses engaging in this form of price discrimination.

If the monopolist is able to perfectly segment the market, then the average revenue curve effectively becomes the marginal revenue curve for the firm. The monopolist will continue to see extra units as long as the extra revenue exceeds the marginal cost of production.

The reality is that, although optimal pricing can and does take place in the real world, most suppliers and consumers prefer to work with price lists and price menus from which trade can take place rather than having to negotiate a price for each unit of a product bought and sold.

Second Degree Price Discrimination

This type of price discrimination involves businesses selling off packages of a product deemed to be surplus capacity at lower prices than the previously published/advertised price.

Examples of this can often be found in the hotel and airline industries where spare rooms and seats are sold on a last minute standby basis. In these types of industry, the fixed costs of production are high. At the same time the marginal or variable costs are small and predictable. If there are unsold airline tickets or hotel rooms, it is often in the businesses best interest to offload any spare capacity at a discount prices, always providing that the cheaper price that adds to revenue at least covers the marginal cost of each unit.

There is nearly always some supplementary profit to be made from this strategy. And, it can also be an effective way of securing additional market share within an oligopoly as the main suppliers’ battle for market dominance. Firms may be quite happy to accept a smaller profit margin if it means that they manage to steal an advantage on their rival firms.

The expansion of e-commerce by both well established businesses and new entrants to online retailing has seen a further growth in second degree price discrimination.

Early-bird discounts – extra cash-flow

The low cost airlines follow a different pricing strategy to the one outlined above. Customers booking early with carriers such as EasyJet will normally find lower prices if they are prepared to commit themselves to a flight by booking early. This gives the airline the advantage of knowing how full their flights are likely to be and a source of cash-flow in the weeks and months prior to the service being provided. Closer to the date and time of the scheduled service, the price rises, on the simple justification that consumer’s demand for a flight becomes more inelastic the nearer to the time of the service. People who book late often regard travel to their intended destination as a necessity and they are therefore likely to be willing and able to pay a much higher price very close to departure.

Airlines call this price discrimination yield management – but despite the fancy name, at the heart of this pricing strategy is the simple but important concept – price elasticity of demand!

The airlines have become masters at price discrimination as a means of maximising revenue from passengers travelling on the flight networks. Other transport businesses do the same!

Peak and Off-Peak Pricing

Peak and off-peak pricing and is common in the telecommunications industry, leisure retailing and in the travel sector. Telephone and electricity companies separate markets by time: There are three rates for telephone calls: a daytime peak rate, and an off peak evening rate and a cheaper weekend rate. Electricity suppliers also offer cheaper off-peak electricity during the night.

At off-peak times, there is plenty of spare capacity and marginal costs of production are low (the supply curve is elastic) whereas at peak times when demand is high, we expect that short run supply becomes relatively inelastic as the supplier reaches capacity constraints. A combination of higher demand and rising costs forces up the profit maximising price.

Third Degree (Multi-Market) Price Discrimination

This is the most frequently found form of price discrimination and involves charging different prices for the same product in different segments of the market. The key is that third degree discrimination is linked directly to consumers’ willingness and ability to pay for a good or service. It means that the prices charged may bear little or no relation to the cost of production.

The market is usually separated in two ways: by time or by geography. For example, exporters may charge a higher price in overseas markets if demand is estimated to be more inelastic than it is in home markets.


Suppose that a firm has separated a market by time into a peak market with inelastic demand, and an off-peak market with elastic demand. The demand and marginal revenue curves for the peak market and off peak markets are labelled A and B respectively. This is illustrated in the diagram above. Assuming a constant marginal cost for supplying to each group of consumers, the firm aims to charge a profit maximising price to each group.

In the peak market the firm will produce where MRa = MC and charge price Pa, and in the off-peak market the firm will produce where MRb = MC and charge price Pb. Consumers with an inelastic demand for the product will pay a higher price (Pa) than those with an elastic demand who will be charged Pb.

The internet and price discrimination

A number of recent research papers have argued that the rapid expansion of e-commerce using the internet is giving manufacturers unprecedented opportunities to experiment with different forms of price discrimination. Consumers on the net often provide suppliers with a huge amount of information about themselves and their buying habits that then give sellers scope for discriminatory pricing. For example Dell Computer charges different prices for the same computer on its web pages, depending on whether the buyer is a state or local government, or a small business.

Two Part Pricing Tariffs

Another pricing policy common to industries with pricing power is to set a two-part tariff for consumers. A fixed fee is charged (often with the justification of it contributing to the fixed costs of supply) and then a supplementary “variable” charge based on the number of units consumed. There are plenty of examples of this including taxi fares, amusement park entrance charges and the fixed charges set by the utilities (gas, water and electricity). Price discrimination can come from varying the fixed charge to different segments of the market and in varying the charges on marginal units consumed (e.g. discrimination by time).

Peak time pricing – a common feature of many local transport markets

Product-line pricing

Product line pricing is also becoming an increasingly common feature of many markets, particularly manufactured products where there are many closely connected complementary products that consumers may be enticed to buy. It is frequently observed that a producer may manufacture many related products. They may choose to charge one low price for the core product (accepting a lower mark-up or profit on cost) as a means of attracting customers to the components / accessories that have a much higher mark-up or profit margin.

Manufacturers charge low prices for the razors but high prices for the razor blades – a good example of product line pricing

Good examples include manufacturers of cars, cameras, razors and games consoles. Indeed discriminatory pricing techniques may take the form of offering the core product as a “loss-leader” (i.e. priced below average cost) to induce consumers to then buy the complementary products once they have been “captured”. Consider the cost of computer games consoles or Mach3 Razors contrasted with the prices of the games software and the replacement blades!

The Consequences of Price Discrimination - Welfare and Efficiency Arguments

To what extent does price discrimination help to achieve a more efficient allocation of resources? There are arguments on both sides of the coin – indeed the impact of price discrimination on welfare seems bound to be ambiguous.

The impact on consumer welfare

Consumer surplus is reduced in most cases - representing a loss of consumer welfare. For the majority of consumers, the price charged is significantly above marginal cost of production. Those consumers in segments of the market where demand is inelastic would probably prefer a return to uniform pricing by firms with monopoly power! Their welfare is reduced and monopoly pricing power is being exploited.

However some consumers who can buy the product at a lower price may benefit. Previously they may have been excluded from consuming it. Low-income consumers may be “priced into the market” if the supplier is willing and able to charge them a lower price. Good examples to use here might include legal and medical services where charges are dependent on income levels. Greater access to these services may yield external benefits (positive externalities) which then have implications for the overall level of social welfare and the equity with which scarce resources are allocated.

Producer surplus and the use of profit

Price discrimination is clearly in the interests of businesses who achieve higher profits. A discriminating monopoly is extracting consumer surplus and turning it into extra supernormal profit. Of course businesses may not be driven solely by the aim of maximising profit. A company will maximise its revenues if it can extract from each customer the maximum amount that person is willing to pay.

Price discrimination also might be used as a predatory pricing tactic – i.e. setting prices below cost to certain customers in order to harm competition at the supplier’s level and thereby increase a firm’s market power. This type of anti-competitive practice is difficult to prove, but would certainly come under the scrutiny of the UK and European Union competition authorities.

A converse argument to this is that price discrimination may be a way of making a market more contestable in the long run. The low cost airlines have been hugely successful partly on the back of extensive use of price discrimination among consumers.

The profits made in one market may allow firms to cross-subsidise loss-making activities/services that have important social benefits. For example profits made on commuter rail or bus services may allow transport companies to support loss making rural or night-time services. Without the ability to price discriminate these services may have to be with drawn and employment might suffer. In many cases, aggressive price discrimination is seen as inimical to business survival during a recession or sudden market downturn.

An increase in total output resulting from selling extra units at a lower price might help a monopoly supplier to exploit economies of scale thereby reducing long run average costs.

Tuesday, May 25, 2010

Differences between managerial accounting and financial accounting

Differences between managerial accounting and financial accounting











Managerial accounting is used primarily by those within a company or organization. Reports can be generated for any period of time such as daily, weekly or monthly. Reports are considered to be "future looking" and have forecasting value to those within the company.
Financial accounting is used primarily by those outside of a company or organization. Financial reports are usually created for a set period of time, such as a fiscal year or period. Financial reports are historically factual and have predictive value to those who wish to make financial decisions or investments in a company.


1.Confidentiality and type of information

Management Accounting is the branch of Accounting that deals primarily with confidential financial reports for the exclusive use of top management within an organization. These reports are prepared utilizing scientific and statistical methods to arrive at certain monetary values which are then used for decision making. Such reports may include:
Sales Forecasting reports
Budget analysis and comparative analysis
Feasibility studies
Merger and consolidation reports
Financial Accounting, on the other hand, concentrates on the production of financial reports, including the basic reporting requirements of profitability, liquidity, solvency and stability. Reports of these nature can be accessed by internal and external users such as the shareholders, the banks and the creditors.

2.Regulation and standardization

While financial accountants follow Generally Accepted Accounting Principles (GAAP) set by professional bodies in each country, managerial accountants make use of procedures and processes that are not regulated by a standard-setting bodies.
However, multinational companies prefer to employ managerial accountants who have passed the Certified Management Accountant (CMA) certification. The CMA is an examination given by the Institute of Management Accountant, a professional organization of Accounting professionals. This certification is different and distinct from the CPA or Chartered Accountant certificate.

3.Time Period

Managerial Accounting provides top management with reports that are future-oriented, while Financial Accounting provides reports based on historical information. However, Management accountants based their reports on historical values, while employing statistical methods to arrive at future values.
There is no time span for producing managerial accounting statements but financial accounting statements are generally required to be produced for the period of 12 previous months.

4.Other differences

There is no legal requirement for an organization to use management accounting but publicly-traded firms (limited companies or whose shares are bought and sold on an open market) must, by law, prepare financial account statements.
In management accounting systems there is no requirement for an independent external review but financial accounting annual statements must be audited by an independent CPA firm.
In management accounting systems, management may be concerned about how reports will affect employees behavior whereas management concerns are about the adequacy of disclosure in financial statements


Financial accounting reports are prepared for the use of external parties such as shareholders and creditors, whereas managerial accounting reports are prepared for managers inside the organization.

This contrast in basic orientation results in a number of major differences between financial and managerial accounting, even though both financial and managerial accounting often rely on the same underlying financial data. In addition to the to the differences in who the reports are prepared for, financial and managerial accounting also differ in their emphasis between the past and the future, in the type of data provided to users, and in several other ways. These differences are discussed in the following paragraphs.

Emphasis on the Future:

Since planning is such an important part of the manager's job, managerial accounting has a strong future orientation. In contrast, financial accounting primarily provides summaries of past financial transactions. These summaries may be useful in planning, but only to a point. The future is not simply a reflection of what has happened in the past. Changes are constantly taking place in economic conditions, and so on. All of these changes demand that the manager's planning be based in large part on estimates of what will happen rather than on summaries of what has already happened.

Relevance of Data:

Financial accounting data are expected to be objective and verifiable. However, for internal use the manager wants information that is relevant even if it is not completely objective or verifiable. By relevant, we mean appropriate for the problem at hand. For example, it is difficult to verify estimated sales volumes for a proposed new store at good Vibrations, Inc., but this is exactly the type of information that is most useful to managers in their decision making. The managerial accounting information system should be flexible enough to provide whatever data are relevant for a particular decision.

Less Emphasis on Precision:

Timeliness is often more important than precision to managers. If a decision must be made, a manager would rather have a good estimate now than wait a week for a more precise answer. A decision involving tens of millions of dollars does not have to be based on estimates that are precise down to the penny, or even to the dollar. In fact, one authoritative source recommends that, "as a general rule, no one needs more than three significant digits., this means, for example, that if a company's sales are in the hundreds of millions of dollars, than nothing on an income statement needs to be more accurate than the nearest million dollars. Estimates that accurate to the nearest million dollars may be precise enough to make a good decision. Since precision is costly in terms of both time and resources, managerial accounting places less emphasis on precision than does financial accounting. In addition, managerial accounting places considerable weight on non monitory data, for example, information about customer satisfaction is tremendous importance even though it would be difficult to express such data in monitory form.

Segments of an Organization:

Financial accounting is primarily concerned with reporting for the company as a whole. By contrast, managerial accounting forces much more on the parts, or segments, of a company. These segments may be product lines, sales territories divisions, departments, or any other categorizations of the company's activities that management finds useful. Financial accounting does require breakdowns of revenues and cost by major segments in external reports, but this is secondary emphasis. In managerial accounting segment reporting is the primary emphasis.

Generally Accepted Accounting Principles (GAAP):

Financial accounting statements prepared for external users must be prepared in accordance with generally accepted accounting principles (GAAP). External users must have some assurance that the reports have been prepared in accordance with some common set of ground rules. These common ground rules enhance comparability and help reduce fraud and misrepresentations, but they do not necessarily lead to the type of reports that would be most useful in internal decision making. For example, GAAP requires that land be stated at its historical cost on financial reports. However if, management is considering moving a store to a new location and then selling the land the store currently sits on, management would like to know the current market value of the land, a vital piece of information that is ignored under generally accepted accounting principles (GAAP).

Managerial AccountingNot Mandatory:

Financial accounting is mandatory; that is, it must be done. Various out side parties such as Securities and exchange commission (SEC) and the tax authorities require periodic financial statements. Managerial accounting, on the other hand, is not mandatory. A company is completely free to do as much or as little as it wishes . No regularity bodies or other outside agencies specify what is to be done, for that matter, weather anything is to be done at all. Since managerial accounting is completely optional, the important question is always, "Is the information useful?" rather than, "Is the information required?"

Tuesday, May 18, 2010

The Harrod-Domar Model










The Harrod-Domar Model
Main Prediction: GDP growth is proportional to the share of investment spending in GDP.
1. Assume unemployed labor, so there is no constraint on the supply of labor.
2. Production is proportional to the stock of machinery.
Growth Rate of GDP
We want to determine the growth rate of GDP, which is defined as:
G(Y) = (change in Y) / Y where Y = GDP
To do this, we estimate the Incremental Capital-Output Ratio (ICOR), which is a measure of capital efficiency.
ICOR = (change in K) / (change in Y) where K = capital stock
A high ICOR implies a high increase in capital stock relative to the increase in GDP. Thus, the higher the ICOR, the lower the productivity of capital.
Since capital is assumed to be the only binding production constraint, investment (I) in the Harrod-Domar model is defined as the growth in capital stock.
I = (change in K)
But investment is also equal to savings (S), which is equal to the average propensity to save (APS) times GDP (Y). Denote APS = s
I = S = APS * Y = s*Y
ICOR = (s Y) / (change in Y)
Rearranging terms,
G(Y) = (change in Y) / Y = s / ICOR (1)
Growth Rate of GDP per Capita
The growth rate of GDP per Capita is defined as
G(Y/P) = G(Y) – G(P) where G(P) = the population growth rate
From (1),
G(Y/P) = s / ICOR - G(P) (2)
Thus, a 1 percent increase in population growth will cause the growth rate of GDP per capita to decrease by 1 percent.
The empirical question is whether policy makers can achieve a constant marginal product of capital when the centralize investment decisions.
1. Assume that a country has a savings/investment rate of 4 percent of their GDP and an ICOR of 4, they will have a growth rate of 1 percent.
But if the population growth rate were also 1 percent, then the country would have zero GDP growth per capita.
These assumptions imply that for a country to develop, it needed to have an investment rate of around 12-15 percent of GDP, which would result in a GDP growth rate of 3 percent. The country in our example, however, only invests 4 percent.
The difference between the required investment rate (12 percent) and the country’s own investment (4 percent) is what development economists call the financing gap. Foreign aid by Western countries fills this financing gap in order to attain the target growth for the country. However, unless the investment is used productively, there is no guarantee that it will generate the desired change in output.
2. The Harrod-Domar model assumes fixed coefficients:
Y = F(K,L) = min (AK,BL) where
A and B are positive constants. With fixed proportions, if the available capital and labor happen to fit AK=BL, then all workers and equipment are fully employed. However, if AK>BL, then only BLA⎛⎞⋅⎜⎟⎝⎠ of the capital is used and the rest is unemployed.
If AK3. Assume that Shanistan producers cigars with a fixed coefficient technology:
Y = min (1/4K, 1/2L)
Currently, Shanistan has 80 units of K and 100 L. What is the feasible output?
Y = 20
What is employment? (1/2) 80 = 40
Divide both sides by L to get per capita output:
y = min (Ak, B)
If k< B/A, then K is fully employed and output y = Ak
For k> B/A, then Y = BL and capital would be unemployed, so y = B.
(In the graph, below, we derive y and k when 0
Another View

The Harrod–Domar model is used in development economics to explain an economy's growth rate in terms of the level of saving and productivity of capital. It suggests that there is no natural reason for an economy to have balanced growth. The model was developed independently by Sir Roy F. Harrod in 1939 and Evsey Domar in 1946. The Harrod–Domar model was the precursor to the exogenous growth model.

Criticisms of the model

The main criticism of the model is the level of assumption, one being that there is no reason for growth to be sufficient to maintain full employment; this is based on the belief that the relative price of labour and capital is fixed, and that they are used in equal proportions. The model explains economic boom and bust by the assumption that investors are only influenced by output (known as the accelerator principle); this is now widely believed to be false.
In terms of development, critics claim that the model sees economic growth and development as the same; in reality, economic growth is only a subset of development. Another criticism is that the model implies poor countries should borrow to finance investment in capital to trigger economic growth; however, history has shown that this often causes repayment problems later.
The endogenity of savings: Perhaps the most important parameter in the Harrod–Domar model is the rate of savings. Can it be treated as a parameter that can be manipulated easily by policy? That depends on how much control the policy maker has over the economy. In fact, there are several reasons to believe that the rate of savings may itself be influenced by the overall lever of per capita income in the society , not to mention the distribution of that income among the population.










Friday, May 14, 2010









Tuesday, May 11, 2010

Critical Path Analysis and Scheduling for Game Development

Critical Path Analysis and Scheduling for Game Development

So, how do you go about developing your projects? If you're anything like me (until recently) then you will have just worked out what you need to do, and then got on with it – picking and choosing at tasks in some sort of correct order, and working from the foundations upwards. Whilst there isn't anything particularly wrong about this method, it's hardly an efficient and quick method of completing the project. In this article I'm going to cover a method that will help you complete your project in the most time-efficient manner.

The first time you get the feeling that the first method (the 'Old' one) doesn't work is when you forget to do something and have to go back and do it – pausing all other development in the process. This is particularly bad when working as a team. If this happens you may be working your socks off trying to correct what you missed whilst the rest of your team are twiddling their thumbs because they can't do anything till you've finished. If you'd planned it properly you could have gotten someone who wasn't busy earlier on in development to do it, while you (and others) were still working on other things.

By the end of this short guide you'll be able to work out, in almost no time at all, the quickest and most efficient route to completion.

Critical Path Analysis: Step 1

The first step to using critical path analysis is to set out the activities that must be completed in order for the project to be completed. If we take a simple game framework it might look something like this:

[A] Graphics Engine
[B] Sound Engine
[C] Music Engine
[D] Input Engine
[E] Gameplay/general programming
[F] Physics
[G] 2D Artwork
[H] 3D Artwork
[I] Sound effects
[J] Music recording
[K] Level Design
Anyone who's completed a game will probably realise that there's much more to it than the above list, but this is only an example – and it can easily be extended. You could go as far as doing a separate analysis for the development of the graphics engine. It's only limited to the detail that you include.

Critical Path Analysis: Step 2

Now that you know what activities you must complete in order to complete the project you need to decide what dependencies there are. This will involve creating a hierarchy for the activities – what activities must be completed before you can start this activity? Notice that the original list (in Step 1) has a letter for each activity. This is just for convenience. Later on when you start drawing out diagrams it'll get a little crowded and complicated to put the complete activity name in, so we're referring to them by letter.

[A] depends on:
[B] depends on: I
[C] depends on: J
[D] depends on: A
[E] depends on: B, C, D
[F] depends on: E
[G] depends on:
[H] depends on: G
[I] depends on:
[J] depends on:
[K] depends on: F
The above list is what I think the dependency list should look like. You may well disagree, but you can change it all around when we're done. Notice that [K] only depends on [F]. You may be thinking that level design doesn't only require physics to be completed – it requires almost everything else to be completed as well. But if you look closely, [F] requires that [E] is completed, and [E] can't be completed until almost everything else has been. Therefore [F] effectively implies that everything before it has been completed – in this case [E], so Level Design (K) does actually require that (almost) everything else is completed.

Critical Path Analysis: Step 3

You're now starting to get a clearer picture of what will need to be done to complete your project efficiently. However this is still very murky compared with the final result. This step is the beginning of things getting complicated> In this step we must draw a graph.

But this isn't quite like the normal graphs you're used to – bar charts, scatter diagrams and so on. This graph doesn't represent a series of data. If you've done much discrete mathematics/path finding algorithms the chances are that you'll know most of this – feel free to skip forward. The rest of you will need a quick crash-course in graph theory. A graph as we're using it can also be referred to as a network - a series of points (nodes or vertices) connected by lines (arcs or edges). Nodes represent events, positions (of buildings for example) and the edges represent a path between them (a road for example). Edges are normally straight lines (and don't actually represent the real-world path). For Critical Path Analysis we'll be using a digraph – a graph with directed edges. These edges will have an arrowhead on them indicating that you can only 'travel' in that direction along the edge. Finally, a couple of conventions: 1) where possible edges should not cross each other, 2) for Critical Path Analysis graphs time is represented across the graph from left-right, it's not fixed to any scale; all it really means is that the start is on the left and the finish is on the right.

Bet that was confusing! It's best if you look at an example graph now. The following diagram is basically the dependency list (Step 2) converted into a graph.

Not too complicated really, but trust me – they can get unbelievably complex in some cases. Each of the edges in the above graph represent an activity (or task): the red dots (nodes) represent the completion of that task, and they also represent a junction – where you can possibly enter/exit from multiple routes. The length of the edges isn't important, nor is the positioning of the vertices; just juggle it around till it fits together nicely.

Critical Path Analysis: Step 4

You're starting to get somewhere now, but you need to put some information on your graph. Currently all it represents is the dependency list, and you require more. The first step is to add the activity lengths. This is very ambiguous – how can you tell how long it takes to develop the graphics engine? You can take a good guess – but you can't always be sure, especially if you are part of a part-time team (where you don't always do an 8 hour working day for example). The algorithm does take this into account though – events that are important (on the critical path) will dictate the length of the project, so if one activity on it is delayed the whole project is delayed.

The following list is my estimation for the length of time (in days) that it will take to complete each activity. The predictions made here will be the basis for the final path. Putting strange numbers in here will mean that you get a strange (and probably inefficient) path.

[A] Graphics Engine = 14 days
[B] Sound Engine = 5 days
[C] Music Engine = 5 days
[D] Input Engine = 10 days
[E] Gameplay/general programming = 31 days
[F] Physics = 7 days
[G] 2D Artwork = 14 days
[H] 3D Artwork = 21 days
[I] Sound effects = 14 days
[J] Music recording = 9 days
[K] Level Design = 21 days
Chances are you will have a different prediction for all of the above, but bear with me – it's the process that counts here. Also note that the times above are for a single person doing the task, assuming that he/she works on the task for all of the hours they can (be it an 8 hour working day).

Now that you have some times you need to add them to your network. By convention they go in brackets after the activity label. The graph now looks like this:

Critical Path Analysis: Step 5

Now you have analysed the project, worked out what activities are involved, decided what the dependency list is, and calculated some times for those activities – and it's all included in your graph. You can now start the algorithm.

There is one final thing that you must do (to make it easier for you), which is to add in events. So far you've just added activities. Events are actually already in the graph – the red dots - but you need a way of identifying them. As you're already using letters for activities you'll use numbers for the events. Below is the revised graph:

Now, on with the algorithm. The first step is to work out what the earliest times are for each of the events (the numbered boxes). The value that you calculate will be the earliest possible time that you can arrive there with all incoming events completed. To work them out you scan forward through the network adding the previous events' earliest time and the activity length together. If there are multiple activities coming into an event you must select the largest one – this is simply because you cannot get to the event until ALL activities are complete, and you know all activities are complete when the one with the longest duration is complete.

While the above isn't too complicated, we'll work through the example graph to see how it all works. You're going to use a simple table to accumulate all the results:

EVENTS 0 1 2 3 4 5 6 7 8
Starting at event 0: there are no incoming activities, and as it's the start you know the earliest time it can be reached is 0 (days).

EVENTS 0 1 2 3 4 5 6 7 8
Ei 0
Moving to event 1 now, this only relies on activity G being completed, which has a duration of 14 days. Therefore the earliest time that you can get to Event 1 is 14 days.

EVENTS 0 1 2 3 4 5 6 7 8
Ei 0 14
Event 2 only has activity A to depend on; therefore the earliest arrival time will be 14 days

EVENTS 0 1 2 3 4 5 6 7 8
Ei 0 14 14
Event 3 only depends on activity I being complete; earliest time is therefore 14 days

EVENTS 0 1 2 3 4 5 6 7 8
Ei 0 14 14 14
Event 4 only depends on activity J, so the earliest time of arrival is 9.

EVENTS 0 1 2 3 4 5 6 7 8
Ei 0 14 14 14 9
Event 5; has 3 incoming activities; the 3 possible earliest times are:

(2)->(5) = 14 + 10 = 24
(3)->(5) = 14 + 9 = 23

(4)->(5) = 9 + 5 = 14

You must choose the largest value (see the rules at the top), so the earliest time you can get to event 5 is 24 days

EVENTS 0 1 2 3 4 5 6 7 8
Ei 0 14 14 14 9 24
Event 6 only depends on activity E, so the earliest time of arrival is the earliest time of arrival at event 5 plus the duration of activity E, or 24 + 31 = 55.

EVENTS 0 1 2 3 4 5 6 7 8
Ei 0 14 14 14 9 24 55
Event 7 only depends on event 6 and activity F, so the earliest time is 55 + 7 = 62.

EVENTS 0 1 2 3 4 5 6 7 8
Ei 0 14 14 14 9 24 55 62
Finally, Event 8. Event 8 depends on two activities:

(1)->(8) = 14 + 21 = 35

(7)->(8) = 62 + 21 = 83

You must choose the largest value, which in this case is 83.

EVENTS 0 1 2 3 4 5 6 7 8
Ei 0 14 14 14 9 24 55 62 83
Hardly a complex task, but if you have a complicated network it can get a little tedious after a while! From the data that you've just calculated you can tell that the earliest time the whole project can be completed is 83 days. If nothing goes wrong then this is how long it will take.

You aren't finished yet though; you need to calculate another set of numbers (and then some more). The next set of numbers is the latest time – the latest time that you can arrive at the event and still complete the project on time. You'll see why this is important later on in the process.

To calculate the latest time of arrival you use a very similar method to the earliest time method. The only main difference is that you start from the end and go backwards, and in the case of multiple choices you choose the lowest value (instead of the largest value). Here goes then:

Event 8, as with the start node. The latest you can get here and still complete the project on time is the total project length – 83 days.

EVENTS 0 1 2 3 4 5 6 7 8
Ei 0 14 14 14 9 24 55 62 83
Li 83
Event 7 only has 1 activity coming out of it – K, so you take K away from 83 and you'll have the latest time of arrival: 83 – 21 = 62.

EVENTS 0 1 2 3 4 5 6 7 8
Ei 0 14 14 14 9 24 55 62 83
Li 62 83
Event 6 only has activity F coming out of it, so the latest time of arrival is (7) – F(7) = 62 – 7 = 55.

EVENTS 0 1 2 3 4 5 6 7 8
Ei 0 14 14 14 9 24 55 62 83
Li 55 62 83
If you're starting to notice a pattern here you're on the right track – I'll explain this pattern later.

Event 5 only has E(31) coming out of it, so the latest time of arrival is (6) – E(31) = 55 – 31 = 24.

EVENTS 0 1 2 3 4 5 6 7 8
Ei 0 14 14 14 9 24 55 62 83
Li 24 55 62 83
Now event 4, which only has activity C(5) coming out of it. The latest time of arrival is therefore (5) – C(5) = 24 – 5 = 19.

EVENTS 0 1 2 3 4 5 6 7 8
Ei 0 14 14 14 9 24 55 62 83
Li 19 24 55 62 83
The pattern seems to have stopped – you may be thinking. But you don't know what the pattern means yet…

Event 3 only has B(5) coming out of it, the latest time of arrival is (5) – B(5) = 24 – 5 = 19.

EVENTS 0 1 2 3 4 5 6 7 8
Ei 0 14 14 14 9 24 55 62 83
Li 19 19 24 55 62 83
Event 2 only has activity D(10) coming out of it, so the latest time of arrival is (5) – D(10) = 24 – 10 = 14.

EVENTS 0 1 2 3 4 5 6 7 8
Ei 0 14 14 14 9 24 55 62 83
Li 14 19 19 24 55 62 83
Event 1 only has activity H(21) coming out of it, so the latest time of arrival is (8) – H(21) = 83 – 21 = 62.

EVENTS 0 1 2 3 4 5 6 7 8
Ei 0 14 14 14 9 24 55 62 83
Li 62 14 19 19 24 55 62 83
Finally, Event 0 has 4 activities coming out of it:

(0)->(1) via G(14) = (1) – G(14) = 62 – 14 = 48

(0)->(2) via A(14) = (2) – A(14) = 14 – 14 = 0

(0)->(3) via I(14) = (3) – I(14) = 19 – 14 = 5

(0)->(4) via J(9) = (4) – J(9) = 19 – 9 = 10

You have to pick the smallest value, which in this case is 0. So your final table looks like:

EVENTS 0 1 2 3 4 5 6 7 8
Ei 0 14 14 14 9 24 55 62 83
Li 0 62 14 19 19 24 55 62 83
Critical Path Analysis: Step 6

You now have a fair amount of data about your project, but I haven't really explained what it all means.

Earliest Time Of Arrival: This indicates that if you were very quick and worked hard, then this is the earliest time that you could get to that event.

Latest Time Of Arrival: This is more important as far as the analysis goes. The value you have for the event indicates the latest time of arrival while still completing the project on time. Take event (1) for example, you could get there by day 14, yet you could put it off until day 62. If you start it before day 14 any other dependencies won't be ready (therefore it's impossible). If we start after day 62 the project will be delayed; yet we can start on any day between 14 and 62 and not hold the project up at all.

Those people that are working quickly today will have realised what the pattern means – the pattern where the Earliest time and Latest time are the same. All it really indicates is that you must be at that event by that day or the project will be delayed. If you only get to event (5) on day 26 the whole project will be delayed by 2 days, meaning that you cannot complete it until day 85.

You have a further calculation for this called the float and the slack. Float is for activities and slack is for events.

Float = Dest_Max – Src_Min – Activity_Length

Slack = Latest_Time – Earliest_Time

If the alack and/or the float is equal to 0 it is a critical event/activity; a critical activity must be completed on time and in order to avoid delays to the project.

A slack at any event means that if a person has completed the activity(s) prior to the event (and is ready to go onto the next event) they can rest/pause for that much time. A slack of 0 would mean that they can't pause at all and must carry on, but a slack of 10 means that they could spend 10 days spinning around in their chair. Later on when we look at scheduling we'll examine the possibility that instead of letting him/her spin around in their chair we get them working on another activity.

The float is similar, but it indicates how much extra time you can take, if it's a 10 day task and has a float of 3 then you can take up to 13 days to complete the task without delaying the project. It therefore makes sense that critical activities have a float of 0, because that activity must be done in the specified time period (or the project is delayed).

EVENTS 0 1 2 3 4 5 6 7 8
Ei 0 14 14 14 9 24 55 62 83
Li 0 62 14 19 19 24 55 62 83
Slack 0 48 0 5 10 0 0 0 0
The revised table now shows the slack for each event. You can straight away see that events 0, 2, 5, 6, 7, and 8 are all critical events, and are said to be on the critical path. We can use this to find out what the critical activities are, those activities between 0-2, 2-5, 5-6, 6-7, 7-8. It's not always that simple, so we'll do it the proper way – work out the float for each activity: A = 14 – 0 – 14 = 0
B = 24 – 14 – 5 = 5
C = 24 – 9 – 5 = 10
D = 24 – 14 – 10 = 0
E = 55 – 24 – 31 = 0
F = 62 – 55 – 7 = 0
G = 62 – 0 – 14 = 48
H = 83 – 14 – 21 = 48
I = 19 – 0 – 14 = 5
J = 19 – 0 – 9 = 10
K = 83 – 62 – 21 = 0

I've made all the critical activities bold, and you can see what sort of float the other activities have. Combining this information you can calculate the critical path from start to finish:

This critical path indicates that you must complete these tasks back-to-back with no delay:

A – Graphics Engine
D – Input Engine
E – General Programming
F - Physics
K – Level Design
Makes sense really, and it is quite likely that you would have come up with something similar without using the algorithm. But this is only a simple example.

However, that doesn't mean that you can skip the other activities. They're still just as important in the overall plan. The key point is that the critical activities and events must be reached by the designated time, or the project will be delayed.

Critical Path Analysis: Step 7

You've now finished with the actual CPA algorithm, and now you're moving on to synthesising the data you've gathered from using the algorithm. The most popular and easiest method of doing this is through scheduling, which is usually done by Gantt charts.

Designing Gantt charts and scheduling using them is done purely by eye – there is no magic algorithm to find the most optimal pattern. It does have it's weaknesses though; one particular example is specialist skills. The algorithm doesn't take into account any differences between the workers. For example, Bob can't do graphics engines, but can do general programming. You may well find that the optimal route only works properly in some cases – where there is always someone who can do the task at the given time; if there isn't then you have to wait until someone is available – and this could delay the project.

The first part of a Gantt chart is to plot all the activities in the correct positions. You'll use two rows for each activity – one being the earliest start/completion, and the second being the latest start/completion. The end result will look something like this:

The earliest start of an activity is the earliest arrival time at the event before
The earliest finish of an activity is the earliest start time + duration of the activity
The latest start time of an activity is the latest arrival at the destination event – duration of the event
The latest finish time of an activity is the latest start + duration of the activity
Therefore the completed table for the earliest start and earliest finishes is:

Activity Earliest Start Earliest Finish Latest Start Latest Finish
A 0 14 0 14
B 14 19 19 24
C 9 14 19 24
D 14 24 14 24
E 24 55 24 55
F 55 62 55 62
G 0 14 48 62
H 14 35 62 83
I 0 14 5 19
J 0 9 10 19
K 62 83 62 83

From this graph you can see the earliest and latest times that you can start activities. Each little block can be moved backwards and forwards as long as it's always after the earliest start time and before the latest start time. It is this fact that allows you to do the next part: scheduling.

Scheduling is where you shuffle all the little blocks around to form the most efficient way of completing the project. This is where it gets complicated. You must do it by eye, as mentioned: there is no algorithm to do it for you. There is often more than one possible arrangement, and you also have to take into consideration any skills based factors (can Bob actually do this task?). The first step is to redraw the Gantt chart so that you have people down the side (instead of activities). You can go about it two ways from here – either to use up all the available people, or try to arrange it so that you use as few people as possible (yet the few people you use are always busy). For this example we're going for the latter approach.

To get things started it's easiest to assign the first person to do all the critical activities. This person will then always have something to do, and it reduces the amount of juggling you have to do. The following diagram is one possible way of organising things:

It's a bit annoying organising the I-B and J-C pairs; both have to be completed before E (on the critical path) can be started, yet you can't arrange them so that only one person does them. You could (in a real world situation) have persons 1 and 2 full time team members, and make person 3 a temporary person – once they've done tasks J & C they go away again…


I hope this article has been of some use to you. As you've probably already noticed, this method has limited use for a one-person development team, and even with a multi-person team it still has its weaknesses. But ignoring those you can still get some very useful data from spending half an hour with this algorithm.

Sunday, May 9, 2010

VAT (Value Added Tax)

Value Added Tax, or VAT, is levied on top of the cost of a product or service and generates revenue for a government.

Value Added Tax, popularly known as ‘VAT’, is a special type of indirect tax in which a sum of money is levied at a particular stage in the sale of a product or service.

In 1954, the value added tax system was initiated by the then joint director of the tax authority of France, Maurice Laure. VAT came into effect for the first time on 10th April, 1954.

From its inception, the value added tax system was imposed on all major sectors of France - the first country to use this system. Once instituted, it was immediately clear that revenues collected from the VAT system constituted a substantial share of the government’s revenue in the French economy.

The value added tax system deals with these problems quite efficiently. As VAT is imposed on value addition - at every single stage - there is no incidence of cascading. In this way, the final consumers bear the burden of paying value added tax. This system involves absolute transparency at every stage of taxation, thereby making the tax system quite comprehensible and simple.

In some countries like India, the system of VAT has been designed to change the existing system of sales taxation. Value added tax is different from the conventional system of sales tax, because VAT is charged at every stage of value addition - whereas sales tax is imposed on final value of transaction only.

The value added tax system allows for input tax credit, or ITC, on the amount of tax levied at the preceding stage of the value addition chain. The allowance for ITC is normally appropriated from the value added tax liability imposed on the following stage of the sale of the product.

Not surprisingly, due to the ease of payment and ready comprehensibility, the value added tax system has been adopted by different nations across the world.

VAT is intended to be levied - or charged - whenever there is some value addition to raw material. The taxpayers on the other hand, will get credit for the amount of tax paid off at the stages of procurement. The value added tax system has proven to be effective in avoiding problems that normally might arise out of the double taxation of goods and services.

The value added tax system is designed to address various problems associated with the conventional sales tax system. In sales tax, there is no provision for input tax credit, which means that the end consumer may pay tax on an input that has already been taxed previously. This is known as cascading and leads to increases consumer tax and price levels, which increases the rate of evasion and can be detrimental to economic growth.


Popular Posts