text:
Improvements to the food at home, shelter, and prescription drug indexes in the cpi
BLS WORKING PAPERS
U.S. DEPARTMENT OF LABORBureau of Labor Statistics Improvements to the Food at Home, Shelter, andPrescription Drug Indexes in the U.S. ConsumerPrice Index The authors wish to thank Karin Smedley, who developed most of the non-shelter index simulations presented in this paper.
We also wish to thank Steve Henderson, Walter Lane, Sylvia Leaver, and Marshall Reinsdorf for their input, but any errors or omissions are our own. The views expressed are those of the authors and do not reflect the policies of the U.S. Bureau of Labor Statistics or the views of other BLS staff members.
IMPROVEMENTS TO THE FOOD AT HOME, SHELTER AND
PRESCRIPTION DRUG INDEXES IN THE U.S. CONSUMER PRICE
Paul A. Armknecht, Brent R. Moulton and Kenneth J. Stewart Abstract
While the U.S. Consumer Price Index (CPI), as a Laspeyres-type index, attempts tomeasure the average change in the prices paid by urban consumers for a fixed marketbasket of goods and services, new samples for most item categories are routinelyintroduced over time to keep the CPI sample representative of consumer spendingpatterns.
This paper will describe methodological changes being implemented in January 1995 tothe food at home, shelter, and prescription drug components of the U.S. Consumer PriceIndex (CPI). These changes reflect improvements designed to make the CPI morerepresentative of price changes experienced by consumers.
Food at Home. The U.S. Bureau of the Census conducts a Point-of-Purchase Survey(POPS) to provide the sampling frame of outlets for most non-shelter components of theU.S. CPI. To keep the outlet and item samples representative of consumer expenditures,the POPS is conducted annually in approximately 20 percent of the Primary SamplingUnits (urban areas) in the CPI and new outlets are selected to replace the old samples.
The procedures currently used by the U.S. CPI cause it to give high weight to sampleitems that are on sale during the month that a replacement sample is introduced, and lowweight to sample items that are not on sale. These procedures can cause an overstatementof price change in an urban area immediately after its sample is replaced. We discuss asample aging procedure that will be used to alleviate this problem for food-at-homeitems.
Shelter. Further investigation of the functional form bias noted for non-shelter items(Reinsdorf, 1994) has uncovered an analogous problem with the estimator used forimputation of implicit rent changes for owner occupied housing. In addition, rent dataare collected less frequently than other prices, at 6-month intervals. The current rentindexes are estimated using a composite of 6-month rents and renters' reports of 1-monthrent changes. We discuss both improvements in our strategy for imputing changes forowners' implicit rents, as well as changes in our treatment of estimating changes for rent.
Prescription Drugs. Another potential source of bias in the U.S. CPI is the treatment ofbrand name prescription drugs after their patent expires. Griliches and Cockburn (1993)present evidence that there is substantial substitution of generic drugs for brand drugswhen patents expire. The U.S. CPI does not pick up such substitution in a timelymanner. To address this situation, BLS will institute new substitution procedures for theprescription drug component of the CPI.
Improvements to the Food at Home, Shelter and Prescription Drug Indexes
in the U.S. Consumer Price Index
Paul A. Armknecht, Brent R. Moulton and Kenneth J. Stewart A cost-of-living index (CLI) is used as a conceptual framework for dealing with practical questions that arise in the construction of the Consumer Price Index (CPI) of the U.S.
Bureau of Labor Statistics (BLS) (BLS Handbook of Methods, 1992). While the Laspeyres approach used in the U.S. CPI can provide an approximation to a CLI, measuring the average change in the prices paid by urban consumers for a fixed market basket of goods and services has many limitations when interpreted relative to a true cost-of-living index. For example, consumers shift spending patterns in response to changes in relative prices, items and outlets available in the original or base period disappear, and new items and outlets enter the marketplace. To alleviate some of these problems, the U.S. CPI uses a modified Laspeyres approach, which allows for product substitution and the introduction of new samples of outlets and items.1 The universe of consumer goods and services in the U.S. CPI is divided into 207 component item strata and 44 geographic areas,2 stratifying the CPI into 9108 basic item- area components (207 item components x 44 areas). A two-tiered weighting system is used to calculate the CPI. At the first or lowest level, within each basic item-area component, price relatives are calculated using a weighted average of price change for sampled items. At the second or higher level of aggregation, those price relatives are used to update expenditures across items and geographic areas. At each level, we periodically update the samples and/or expenditure weights to keep them representative Within basic item-area components, the CPI has used a Point-of-Purchase Survey (POPS) since 1978 to provide the sampling frame of outlets for most goods and services.
Item and outlet samples are scientifically selected using probability proportionate to sales. To keep CPI samples representative of consumer purchases, the POPS survey is conducted annually in approximately twenty percent of the Primary Sampling Units (or urban areas) in the CPI, where new outlets are selected to replace the old samples. (BLS At the second or higher level of weighting, base period expenditure weights for each basic item-area component of the CPI are derived from the Consumer Expenditure (CE) Surveys. The index (and thus the expenditure weight) of each component item-area is effectively updated each month by its basic component price relative, and the updated expenditure weights are aggregated across items and geographic areas. To keep these expenditure weights representative of consumer purchases, CE weights are updated every ten years or so. The present CPI is based on 1982-84 CE weights; in January 1998, we are planning to introduce 1993-95 CE weights into the CPI.
The effect of consumers shifting spending patterns in response to price change at the aggregate level in the U.S. CPI has been investigated at length. The "substitution bias" caused by shifting purchasing patterns has been measured at between 0.1% and 0.22% per year (Braithwait, 1980; Manser and McDonald, 1988; Aizcorbe and Jackman, 1993).
A portion of these substitution effects could be eliminated with more frequent updating of the CPI expenditure weights (Schmidt, 1993).
The potential effects of substitutions by consumers at the lowest level of estimation within item and area has been explored recently by Armknecht (1993), Moulton (1993), Reinsdorf (1993 and 1994), and Reinsdorf and Moulton (1994). Much of this research examines the assumptions of Leontief preferences in which consumers choose to purchase fixed quantities of goods and services over time, versus Cobb-Douglas preferences in which consumers will substitute goods and services across outlets but keep expenditure shares constant. Leontief preferences imply no substitutions and that consumers have demand elasticities equal to zero. With Cobb-Douglas preferences consumers' demand elasticities are assumed to be unitary. The Leontief or fixed quantity preferences are consistent with the Laspeyres price index for the CLI, while the Cobb- Douglas or constant expenditure shares preferences are consistent with the geometric mean form of the Laspeyres concept for the CLI.
While researching in this area of the appropriate functional form of the estimator for the basic indexes or elementary aggregate, Reinsdorf (1994) has uncovered a systematic bias with the estimator used in the U.S. CPI when new samples are introduced. Moulton (1993) summarizes the type of estimation bias inherent in the U.S. CPI at the first or micro-level of estimation -- the calculation of basic item-area price relatives -- caused by the introduction of new outlet and item samples into the index. Further investigation of the functional form bias has uncovered an analogous problem with the estimator used for imputation of implicit rent changes for owner occupied housing.
Another potential source of bias in the U.S. CPI is the treatment of brand name prescription drugs after their patent expires. Griliches and Cockburn (1993) present evidence that there is substantial substitution of generic drugs for brand drugs when patents expire. The U.S. CPI does not pick up such substitution in a timely manner. To address this situation, BLS will institute new substitution procedures for the prescription This paper summarizes BLS research into the causes of these biases, presents estimates of their magnitude, and discusses actions to reduce these effects in the U.S. CPI. In section I we discuss the sample rotation problem and alternative solutions, including the one we are implementing. In section II we demonstrate the shelter estimation biases and present the new estimators we plan to introduce. In section III we discuss the new procedures that are being introduced to improve our ability to capture consumers switching to generic drugs as patents on brand drugs expire. In section IV we present a summary and suggestions for future research.
I. Sample rotation in the U.S. Consumer Price Index Within most basic item-area components, expenditure estimates for each sampled item are derived from the POPS. Retail outlets are also drawn from the POPS, and are introduced into the index usually a year or two after the POPS survey is conducted.
Following the methodology presented by Moulton (1993) and others, the price index for each item-area component is updated each month by a price relative, as in Ideally, Rt, t − 1 is a Laspeyres-based estimate using the ratio of the current cost of purchasing the base period quantities in t to the cost in the previous period t-1, where P is the price of an item and Qb its base period quantity.
In the U.S. CPI, we do not have base period quantities (Qb); we only have estimates of base period expenditures (EXb ). The Laspeyres-based formula can be rewritten in terms Expenditure information is then used to draw the sample of specific items. Because the sample is drawn after the base period, the base-period prices are not known. A proxy base price (Pb) for each selected item is estimated by dividing the link month price of the item by the price change of the component item-area relative from the POPS reference where Ib is the component index value in the POPS base period and Ilink is the index Again, after the new sample has been linked into the index, price relatives are chained together to effectively update fixed-quantity base-period expenditures to the current period. In the first month after the new sample is introduced then, the price relative is where X = Ib / Ilink , the index change for that item-area from the link month back to the POPS period. This can be further simplified to : Reinsdorf (1993) noted that price indexes were rising at significantly faster rates than average prices in the U.S. CPI, particularly for food items. Most of the divergence between indexes and average prices can probably be attributed to a bias in the functional form for estimating price change at the basic component index level, as noted in a number of recent articles and papers (Armknecht, 1993; Moulton, 1993; Reinsdorf, 1994). Related discussions of functional form bias in basic component indexes also appear in Dalén (1992), Szulc (1983), and Reinsdorf and Moulton (1994).
This occurs because the current method of setting base period prices in the U.S. CPI often creates a significant positive correlation between the weight of an item priced and its price change immediately after introducing the new sample. Forsyth and Fowler (1981), Szulc (1989) and Dalén (1992) also note that the "bouncing" of prices from the base expenditure period to their introduction into the sample often results in a correlation between the weight of an item introduced into the sample and its subsequent price change. This can occur with seasonal prices (e.g., strawberries), sale prices, as well as when product substitutions occur (e.g., apparel). Szulc (1983) and Reinsdorf (1994) also note that the effect is particularly severe when indexes are chained, as they are in the As seen from the equation above, in the U.S. CPI, newly sampled items that are on sale or have unusually low prices at sample rotation will tend to have unusually low base period prices, and thus unusually high implicit quantity weights. These items are likely to go off sale the next period, so that a high weight is given to items that are increasing in price. Since the weights are inversely proportional to the starting price Plink , Reinsdorf (1994) notes that this estimator has properties similar to that of a Sauerbeck index immediately after the new sample is linked into the index. A Sauerbeck index is derived from the unweighted average of price relatives.
For example, presume a set of banana prices where the average price in an area is always $1.00, but prices within a specific outlet can vary between $0.50 to $1.50.
If a new sample of two equally weighted banana quotes in that area is introduced into then the price relative in link month +1 would be Even without the correlation between new weights and subsequent price change, this estimator fails the permutation test suggested by Dalén (1992).
Alternatives for alleviating sample rotation bias in the U.S. CPI
Many proposals have been forwarded to alleviate the bias caused by the rotation of new item and outlet samples in the U.S. CPI. If we had unlimited resources, we could expand our surveys to get more timely information on expenditures or even actual quantities sold. These are options that will be explored in the future for specific commodities as we examine data available from private market research groups. In the interim, there are three ways that have been systematically investigated in which the current bias in the CPI sample rotation process may be alleviated: 1) using geometric means to calculate basic item-area price relatives; 2) setting base period prices using pre-link month "initiation" prices; and 3) pricing both the old and new samples for a period of time before introducing the new Using geometric means to calculate basic item-area price relatives.
Price relatives constructed using geometric means have many desirable statistical properties (Dalén, 1992; Turvey, 1989; Szulc, 1989) and, under certain conditions, can be demonstrated to be superior to Laspeyres when approximating cost-of-living indexes In Moulton (1993), most item categories within the CPI were recalculated from June 1992 through June 1993 using geometric means to calculate basic item-area price relatives. Mathematically, the geometric mean price relative is: where Sb is the base-period expenditure share for that item. Since items are effectively weighted by expenditure shares, it is not necessary to estimate (or misestimate) base period quantities. Unlike the true form of the Laspeyres concept, where base period quantities are fixed, here relative base period expenditure shares are fixed.
For items included in the simulation by Moulton, the simulated Laspeyres arithmetic mean CPI went up 2.95 percent; the index using geometric means rose 2.48 percent. The differences between the two indexes were most striking for food and apparel items.3 It is the intention of the Bureau of Labor Statistics to create experimental indexes for the U.S. CPI using geometric means in calculating basic item-area price relatives starting sometime in 1996. These test indexes will be used to generate further research. We are hopeful that a parallel production-quality index using geometric means could be published on a monthly basis late in the year 2000.
In addition, the U.S. CPI is seeking additional research into the conceptual underpinnings associated with using geometric means at the basic component level. At a recent conference sponsored by the National Bureau of Economic Research on the economics of new products, this approach to estimation was raised and received considerable encouragement for future research efforts.
Using initiation prices to set base period prices.
Changes have been suggested in our current estimator to create an independence between the price used to set a base price and the price change following the introduction of a new sample. One potential way to reduce the correlation between the link month price and the base-period price would be to set the base price by taking the initiation price, usually observed several months before the sample is linked, and rebasing it to the POPS year.
The initiation price for a quote is typically collected about three to five months before link month, but approximately one-sixth of quotes are initiated during link month (see Table 1. Number of months between initiation price and link month price, drawn fromquotes in the April 1993 CPI database.
In this approach, the base period price would be defined as where Xz = Ib / Iinit , and the price relative would become To test the impact on the CPI of setting base period prices on initiation prices, indexes were recalculated for most item categories using the new base period prices (see Table 2. Percent change from May 1993-May 1994, selected item categories, current If this change had been implemented in the CPI for the items included in the test, the all- items CPI would have been reduced by around 0.07% per year [(2.13%- 2.02%)x64%]=0.07, where 64% is the approximate weight of the items included in the test. About half of the effect would occur in the "Food at home" category, which has approximately 10% of the weight in the CPI-U population [(1.59%- Redesigning the computer system to set base prices on initiation prices, however, was not feasible because the required resource commitment was too large. A similar approach, discussed in the next section, was chosen because it was more cost effective.
Other proposals aimed at creating an independence between the price used to set a base- period price and the price collected at sample introduction have not been fully investigated at this point. These proposals include using an average price calculated for a similar cluster of items, using an average price over the past year supplied by the respondent, and obtaining an average price from private market research data for a particular item. Preliminary research into these ideas has suggested they would either be difficult operationally and, therefore, costly to implement, or may introduce other errors Pricing both the old and new samples for a period of time before introducing the new An alternative solution is to price overlap samples for food-at-home categories for three months. This means that the CPI would continue to price and use in the index calculation the old samples for food-at-home observations for three months after it had discontinued the rest of the old sample for other items; at the same time it would price but not use in the calculation the new sample for food-at-home observations. By doing this, base-period prices for items in the new sample can be calculated using these earlier prices, and are much less likely to be correlated with price change after the new sample is linked into the index. Pricing double samples for food at home for three months is expected to have the same effect as setting the base price on the initiation price. Although food at home represents only about 10% of the weight of all items, it would benefit the most by the institution of overlap samples Mathematically, the calculation of the price relative would be similar to that for setting The only difference is that the initiation price can typically be collected as early as Plink - 6 and as late as Plink , as seen in Table 1 above.
While we cannot make a prospective estimate, our research into setting base prices on initiation prices indicates that the bias in the entire CPI by delaying the linking of new samples for food at home could be reduced around 0.04% per year. We should have a retrospective 12-month impact of this change in the middle of 1996.
We will implement this method for food at home items in those cities whose samples will be linked in January 1995 (St. Louis, Missouri and Nashville, Tennessee). A new sample for Chicago will be linked in February 1995.
II. Rent and owners' equivalent rent The shelter components of the U.S. CPI also present some unusual estimation problems.
The most prominent of these is the estimation of changes in homeowners' equivalent rent, a concept that must be estimated indirectly because the owners' implicit rents are not directly observable. Another issue is that rent data are collected less frequently than other prices, at 6-month intervals. This led to adoption in 1978 of a composite estimator that combines information from the 6-month collection intervals with respondent-recall information about rent changes during the preceding month.
One outcome of research by BLS staff into the sample rotation and chaining properties of CPI estimators has been an examination of the chaining properties of the imputation formula used to calculate owners' implicit rents. BLS adopted the concept of owners' equivalent rent in 1983 as the economic concept to be measured by the price index for owner-occupied housing (Gillingham and Lane, 1982). From 1983-1986 the index was calculated by simply reweighting the rent sample to represent owner-occupied units.
Beginning in January 1987, BLS began estimating owners' equivalent rent using a sample of owner-occupied units. Each owner unit was assigned an initial implicit rent based on a rent level estimated by the field representative. Subsequently, every six months each owner unit was matched to one or more rental units, and the implicit rent was imputed forward by the average rent change of the matched rental units. The matching procedure attempts to match the owner to rental units in the same neighborhood with similar structural attributes. See BLS Handbook of Methods (1992) for details on the matching and imputation procedures and Lane and Sommers (1984) for a discussion of the model underlying the matching and imputation methodology.
The formula currently used to measure average rent change of matched rental units is an equally weighted average of renter relatives, or Sauerbeck formula. These relatives are chained together each time an owner unit is matched, every six months. The tendency of the Sauerbeck formula to exhibit chain drift could therefore lead to substantial overstatement of the change in owners' implicit rent. Our research, presented below, suggests that the overstatement relative to other formulas with better index-number properties has been about 0.5% per year.
To understand how the chaining of imputed owner rent changes causes upward drift, consider the following example. Suppose that an owner with an initial implicit rent of $500 is matched to two renters, each of whom also has an initial rent of $500. The first period, one of the renters experiences a rent increase to $600, and the other rent remains unchanged. The next period, the first rent remains equal to $600, but the second rent increases from $500 to $600. An appropriate implicit rent formula should have the owner's implicit rent increase to $600, or in other words satisfy the "proportionality" property. The current formula does not satisfy this property, however, and the owner's implicit rent would increase to $605.
This example illustrates that the current formula causes the implicit rent (and therefore the index) to overstate the rent change of matched rental units. The current implicit rent formula was introduced in January 1987—since then the growth rate of the homeowners' index has exceeded the growth rate of the renters' index by 0.9% per year.
Approximately half of the difference can be attributed to using an inappropriate The current Sauerbeck imputation formula for the 6-month owner relative is (except for where Pi, t is the current period pure rent of matched renter i, Pi, t − 6 is the pure rent from 6 months previous, Qj is the set of renters matched to owner j, and nj is the number of An alternative formula that satisfies the proportionality criterion is the ratio of sums (A): The fact that this formula satisfies the proportionality principle is illustrated using the earlier example, in which the ratio of sums moves the owner's implicit rent to the correct In the simulations reported below, the age (depreciation) factor was applied to the renter relatives, as is done in the current index, and then formulas S and A were used to calculate implicit rents from the matched renters. Similar expressions were applied to obtain the 1-month changes in implicit rent.
The current composite estimator for shelter was introduced with two objectives: to improve the timeliness of the index and to reduce the variance. The form of the composite estimator currently used for rent and homeowners' equivalent rent is It = 0.65 × Rt, t − 1 × It − 1 + 0.35 × Rt, t − 6 × It − 6 , and t − 6 are the current period, previous period, and period t − 6 indexes for the area, Rt, t − 1 is the 1-month relative, which is calculated using respondent recall of the previous month's rent, and Rt, t − 6 is the 6-month relative, which is calculated from comparing current rent to the rent reported during the last interview, six months The composite estimator was intended to produce an unbiased estimate of the current index, under the assumption that the 1-month and 6-month relatives are each unbiased estimates of relative rent change during the corresponding interval. Research by staff of the Price Statistical Methods Division of BLS, however, has found that the 1-month relatives tend to underestimate rent change. One of the reasons for this is that rent changes often occur when the tenant changes, and the new tenant may not be aware that a rent change has taken place. The CPI uses a vacancy imputation procedure to try to adjust for units that were vacant during the previous month, but these imputations are necessarily imperfect (Baskin, 1994). Even among long-term tenants, however, the evidence indicates that there is significant under reporting of 1-month rent changes Because the 6-month relative is considered much more reliable, in general, than the 1- month relative, the following "6-month chained" formula has been studied as an alternative to the current composite estimator: This index formula also eliminates the oscillating patterns that occur in the composite formula because the 6-month relative is multiplied by the 6-months previous index. For analysis of the properties of the composite index and various alternatives see Kosary, Branscome, and Sommers (1984) and Jacobson (1994b). Research has shown that the variance of the 6-month chained formula is much lower than for the composite formula, and furthermore the validity of the measure is improved to the extent that under reporting of 1-month rent changes is eliminated (Leaver, 1994). The only potential disadvantage is a possible reduction in the timeliness of the indexes, since it would take an average of 3- 4 months for rent changes to appear in the index. It should be noted, however, that some of the improved timeliness of the current composite estimator is illusory, since much of the 1-month rent change is derived from vacancy imputations which in turn are derived from 6-month rent changes. Since rents are largely determined by long-term contracts and tend to move gradually, the disadvantage of reduced timeliness is not so great for shelter as it would be for other components of the CPI.
To test these alternative formulas using actual production data, we simulated the index calculations for owners' equivalent rent under alternative implicit rent imputation formulas and under the composite and 6-month chained index estimation formulas over the period from March 1992 to June 1994. These simulations use the same owner-renter matches that were assigned when the published indexes were produced, and thus these simulations give us accurate estimates of what the indexes would have been had the alternatives been adopted in April 1992. The alternative implicit rents and indexes were carried forward for each subsequent month's calculations.
Chart 1 shows the 1-month index changes for rent using the current composite estimator and the alternative 6-month chained formula. The lower variability of the 6-month chained formula is easily seen in the chart. Table 3 shows that the composite estimator produces an annual growth rate for the index of about 2.1%, compared to 2.3% for the 6- month chained estimator. This difference is most likely attributable to under reporting of 1-month rent changes. Chart 2 shows that the 6-month chained formula results in a similar reduction in variability for homeowners' equivalent rent. Table 3 shows that changing the imputation formula (while continuing to use the composite estimator) reduces the annual growth rate of the owners' equivalent rent index from 3.0% to 2.5%, which is attributable to the chain drift problem of the Sauerbeck formula. Changing from the composite to the 6-month chained estimator increases the index growth rate from 2.5% to 2.6%, which can be attributed to the under reporting of 1-month rent changes. Overall, the alternative estimator is expected to reduce the growth rate of owners' equivalent rent by 0.4% per year.
Table 3. Percent change from March 1992-June 1994, rent and homeowners' equivalentrent, current CPI versus alternatives.
estimator with Sauerbeck imputationOwners' equivalent rent: composite estimator with ratio-of-sums imputationOwners' equivalent rent: 6-month chained Our research has also examined two other imputation formulas for owners' implicit rents that also satisfy the proportionality and reciprocity properties (the geometric mean and a generalized ratio-of-means formula). The indexes derived from these two formulas moved very similarly to the index based on the ratio of sums. On the basis of these findings, the simpler ratio-of-sums imputation formula, along with the 6-month chained estimator is scheduled to be implemented by the CPI shelter indexes effective with the January 1995 CPI. Research is continuing for further improving the housing components during the next major revision of the U.S. CPI.
Chart 1. Comparison of Monthly Changes (%) for Rent: Current, Composite Estimator vs. 6-Month Chained Estimator Chart 2. Comparison of Monthly Changes (%) for Owners' Equivalent Rent: Current Composite Estimator with Sauerbeck Imputation vs. 6-Month Chained Estimator with Ratio-of- Griliches and Cockburn (1993) note that traditional price indexes do not capture price declines enjoyed by consumers who switch from a branded drug to its generic "equivalent" when the branded drug loses its patent. Indeed, in the U.S. CPI, when a branded drug under patent is sampled, we have historically continued to price that brand even when it loses its patent, as long as it remains for sale in the outlet. Generic drugs typically enter the CPI only through sample rotation, where any price change from the previous sample is linked. On the rare occasions when a pharmacy has discontinued selling the branded drug but offered the generic equivalent, we have substituted to the generic form and shown a price decline.
Effective with the calculation of the index for January 1995, however, the U.S. CPI will change its treatment of prescription drugs that lose patent protection. The CPI prescription drug analyst will keep track of when all branded drugs lose patent protection. Six months after a drug loses its patent, that particular drug will be resampled using probability proportional to expenditures for that drug in that specific outlet.
For example, the patented brand Capoten (generically, Captopril), used in the treatment of hypertension and congestive heart failure, will go off patent August 8, 1995. In March 1996, we will select between Capoten and other, generic versions of Captopril, based on revenues between these. When a generic version is selected in place of Capoten, we will reflect in the U.S. CPI the entire price difference (i.e., price decline) between the brand drug and the "equivalent" generic. This change in CPI procedures will have the effect of slightly slowing the rate of growth in the CPI prescription drugs component.
This method is in one respect less conservative than that laid out by Griliches and Cockburn. While some consumers, even those who switch to generics, perceive some quality difference between the brand and the generic, we will treat use the entire price difference between the brand and the generic as pure price change. On the other hand, by basing our substitution procedures for prescription drugs on revenues, there will be somewhat less substitutions taking place in the CPI sample for prescription drugs than if The U.S. CPI uses a Laspeyres-type estimator to measure price change in consumer markets. There are many concerns about fixed market basket indexes being used to measure changes in the cost of living. Some of these concerns revolve around ways in which such indexes can incorporate new products as well as reflect changes in consumer tastes and preferences that occur over time. The U.S. CPI approaches these problems by holding expenditure patterns fixed at the basic index level, but allows the sample of items and weights to vary within the elementary index. Thus, new samples of products and services are introduced through a rotating sample scheme that updates 20 percent of the sampled items in geographic areas on an annual basis. The base period expenditures are escalated every month by chaining together weighted averages of monthly price changes using the products and services that are actually being purchased by consumers.
While this approach helps resolve problems of declining samples with less representative products and services in the market place, it has been discovered that the procedures used to introduce the new samples are not fully congruent with the type of Laspeyres estimator employed at the basic index level. The combination of introducing new weights and the price oscillations in several components of the CPI contributes to a problem of chain index drift. Previously, a number of researchers have observed this phenomenon for indexes computed at higher levels of aggregation. This fact demonstrates the importance of knowing the relationship between the estimator used at the micro-index level and the weighting structure used for combining price observations.
A similar problem also occurs in the shelter component of the U.S. CPI. The use of a Sauerbeck estimation formula (average of relative price change) for imputing the implicit rents of owner-occupied housing causes these values to be overstated in comparison to a more traditional Laspeyres estimator (ratio of average prices). This fact highlights the importance of being cognizant of the statistical properties of index imputation formula as Another issue that has become of increasing interest in calculating consumer price indexes is the relationship of the a CPI to a true cost-of-living index (CLI). The Laspeyres-type indexes that are predominantly used in most countries attempt to keep quantities fixed and, thus, only allow prices to change in response to changes in relative prices. The CLI should reflect the substitution effects of consumer responses in such situations. Where the Laspeyres index assumes no substitution (price elasticity of demand is zero), the geometric mean index assumes the consumer will substitute with unitary price elasticity. This has been an area of research to which we have devoted considerable resources. We will continue this research to determine if the geometric mean form of the Laspeyres index is a better estimator of the components of a CLI than In the future we will publish a number of alternative research indexes on an annual basis so that users can see the effects of different index estimators and understand the different assumptions about consumer behavior that underlie each. We have published both Fisher Ideal and Tornqvist indexes (Aizcorbe and Jackman, 1993) and will update these annually. In 1996, we plan to publish a complete set of test indexes that use the geometric mean estimator. To date, we have only published indexes for selected components of the CPI with the shelter component being the most prominent area missing (Moulton, 1993 and Reinsdorf and Moulton, 1994). We will be very interested in research conducted by other statistical agencies in this area.
The authors wish to thank Karin Smedley, who developed most of the non-shelter index simulations presented in this paper. We also wish to thank Steve Henderson, Walter Lane, Sylvia Leaver, and Marshall Reinsdorf for their input, but any errors or omissions are our own.
1A true cost-of-living index would also take into account the effect on consumers of such things as income taxes, changes in real income, and the consumption of non-market items.
2The 44 geographic areas of the country are represented by 88 primary sampling units (PSUs). Of these 88 PSUs, 32 are self-representing cities such as Washington, DC and St. Louis, MO. The remaining 56 PSUs are probability selected to represent the four U.S. Census regions and 3 city-size classes within each region, for a total of 12 additional geographic areas.
3Only about 70 percent of CPI items were included in Moulton's simulation. The most notable missing component was shelter, which accounts for over 25 percent of the market basket.
Aizcorbe, Ana M., and Jackman, Patrick: "The commodity substitution effect in CPI data, 1982-1991," Monthly Labor Review, December 1993, pp. 25-33.
Armknecht, Paul A.: "Effects of changing market baskets and product substitution in the U.S. Consumer Price Index," Economic Commission for Europe/International Labour Organization Meeting of Consumer Price Indexes, Geneva, October 1993.
Armknecht, Paul A. and Ginsburg, Daniel H.: "Improvements in measuring price changes in consumer services: past, present, and future," Output Measurement in Services Sectors, National Bureau of Economic Research, Studies in Income and Wealth Volume 56, University of Chicago Press, 1992, pp. 73-156.
Baskin, Robert: "Imputation of Vacant Units in the Residential Rent Index of the U.S.
Consumer Price Index," 1994 American Statistical Association Proceedings of the Survey Research Methods Section (to appear).
Braithwait, Steven D.: "The substitution bias of the Laspeyres price index: An analysis using estimated cost-of-living indexes." American Economic Review, March 1980, pp. 64-77.
Dalén, Jörgen: "Computing elementary aggregates in the Swedish Consumer Price Index," Journal of Official Statistics 8 (1), 1992, pp. 129-147.
Diewert, W. Erwin: "Index numbers," The New Palgrave Dictionary of Economics, Vol. 2, The Stockton Press, New York, 1987, pp. 767-780.
Forsyth, F.G. and Fowler, R.F.: "The Theory and Practice of Chain Price Index Numbers," Journal of the Royal Statistical Society (A Series) 144(2): 224-46.
Gillingham, Robert: "A Conceptual Framework for the Revised Consumer Price Index," Proceedings of the Business and Economic Statistics Section, American Statistical Association, 1974, pp. 46-52.
Gillingham, Robert, and Lane, Walter: "Changing the treatment of shelter costs for homeowners in the CPI," Monthly Labor Review, Vol. 105, June 1982, pp. 9-14.
Griliches, Zvi and Cockburn, Iain.: "Generics and New Goods in Pharmaceutical Price Indexes," National Bureau of Economic Research, Working Paper No. 4272, February 1993.
Jacobson, Shawn: Memorandum to CPI Housing Steering Committee, January 11, 1994 (a).
Jacobson, Shawn: "Evaluation of alternative rent estimators for the Consumer Price Index," 1994 American Statistical Association Proceedings of the Government Statistics Section (to appear), referenced as 1994 (b).
Kosary, Carol, Branscome, James M., and Sommers, John P.: "Evaluating alternatives to the rent estimator," 1984 American Statistical Association Proceedings of the Business and Economic Statistics Section.
Lane, Walter F., and Sommers, John P.: "Improved measures of shelter costs," 1984 American Statistical Association Proceedings of the Business and Economic Statistics Section.
Leaver, S.G.: Internal communication to Housing Sample Design and Estimation Teams, July 6, 1994.
Manser, Marilyn E. and McDonald, Richard J: "An analysis of the substitution bias in measuring inflation, 1959-85," Econometrica, Vol. 56, July 1988, pp. 909-930.
Moulton, Brent: "Basic components of the CPI: Estimation of price changes," Monthly Labor Review, December 1993, pp. 13-24.
Pollak, Robert A.: "Subindexes in the cost-of-living index," International Economic Review, February 1975, pp. 135-150.
Reinsdorf, Marshall: "The effect of outlet price differentials on the U.S. Consumer Price Index," Price Measurements and their Uses, Vol. 57, National Bureau of Economic Research, University of Chicago Press, 1993.
Reinsdorf, Marshall: "Price dispersion, seller substitution, and the U.S. CPI," U.S. Bureau of Labor Statistics Working Paper 252, March 1994 (revised version of paper presented at Statistics Canada's Price Measurement Advisory Committee, Ottawa, Ontario, Canada, May 1993).
Reinsdorf, Marshall and Moulton, Brent: "The construction of basic components of cost of living indexes," National Bureau of Economic Research, Conference on Research in Income and Wealth - The Economics of New Products, April 1994.
Schmidt, Mary Lynn: "Effects of updating the CPI market basket," Monthly Labor Review, December 1993, pp. 59-62.
Szulc, Bohdan J.: "Linking price index numbers," Price Level Measurement: Proceedings from a Conference Sponsored by Statistics Canada, Ottawa, Ontario, 1983.
Szulc, Bohdan J.: "Price indices below the basic aggregation level," in Consumer Price Indexes: An ILO Manual, International Labour Office, Geneva, 1989.
Turvey, Ralph: Consumer Price Indices: An ILO Manual, International Labour Office, Geneva, 1989.
U.S. Department of Labor, Bureau of Labor Statistics, Consumer Price Index Detailed Report, September 1994.
U.S. Department of Labor, Bureau of Labor Statistics, Handbook of Methods, Bulletin 2414, 1992.
Source: http://nowandfutures.com/large/ImprovementsToTheFoodAt%20HomeShelterAndPrescription%20Drug%20IndexesIinTheU.S._Consumer%20Price%20Index-ec950010(bls).pdf
Transport of bacteria on sloping soil surfaces by runoff
Transport of Bacteria on Sloping Soil Surfaces by Runoff Jamal Abu-Ashour,1 Hung Lee2 1Department of Agricultural Engineering and Technology, Jordan University of Science and Technology,Irbid 22110, Jordan2 Department of Environmental Biology, University of Guelph, Guelph, Ontario, N1G 2W1, Canada Received 3 March 1999; revised 2 August 1999; accepted 18 August 1999 ABSTRACT: Pathogenic
janbanan.lb106.lbinternet.se
TOXICOLOGY ---Latin name-- ---Side effects, caution and contraindications, interactions and intoxications--- Achillea millefolium (Yarrow, Side eff.: G-I upset. Contraind.: Not in pregnancy and breastfeed. Interact.: Anti-coagulants and antiplatelet drugs. Lithium. May interfere with iron absorption and other minerals when taken internally. Intox.: Nausea. Vomiting. Headache. No


Organic cacao combines with sprouted walnuts, dates, and flax to create a heavenly grain-free brownie that is sure to please adults and children alike!
We have 126 quantity of Cacao Walnut Brownie 2.4 oz, Sprouted, Organic and we added this quantity to the shopping cart. We shall notify you when more stock is replenished.


text:
Q: How to scrape second column from table I am trying to scrape data from second column of table but failed...
Here is my code:
import bs4
import requests
url = "https://en.wikipedia.org/wiki/List_of_postcode_districts_in_the_United_Kingdom"`

data=requests.get(url)
soup=bs4.BeautifulSoup(data.text,'html.parser')
My_table = soup.find('table',{'class':'wikitable sortable'})
#print(My_table)
My_row = My_table.find_all('tr')
#print(My_row[1])
for row in My_row:
   data= (row.find('td')[1].text)
   print(data)

Here is error:

TypeError: 'int' object is not subscriptable

What will be the best solution?

A: You can use read_html from pandas
import pandas as pd

tables = pd.read_html('https://en.wikipedia.org/wiki/List_of_postcode_districts_in_the_United_Kingdom')
print(tables[1][1])

All 4 columns use:
print(tables[1])

It's a dataframe so you can slice as required. It returns [1503 rows x 4 columns]

A: This code seems to work
import bs4
import requests

url = "https://en.wikipedia.org/wiki/List_of_postcode_districts_in_the_United_Kingdom"

data = requests.get(url)
soup = bs4.BeautifulSoup(data.text, 'html.parser')
table = soup.find('table', {'class': 'wikitable sortable'})
rows = table.find_all('tr')
for i, row in enumerate(rows):
    if i > 0:
        for j, td in enumerate(row.children):
            if j == 3:
                print(td.text.strip())

A: Recent versions of Beautiful Soup (4.7+) use a package called Soup Sieve which provides the selector support. I personally find CSS selectors easier to use for these kinds of things. You can check out all the CSS selector features it supports here: https://facelessuser.github.io/soupsieve/selectors/.
This problem is actually really easy with selectors. It would be even easier if CSS level 4 :nth-col support was implemented, but it is still pretty easy without:
Here we simply target the table and target every second td element in every row.
import bs4
import requests

url = "https://en.wikipedia.org/wiki/List_of_postcode_districts_in_the_United_Kingdom"

data = requests.get(url)
soup = bs4.BeautifulSoup(data.text, 'html.parser')

for td in soup.select('table.wikitable.sortable tr td:nth-child(2)'):
    print(td.text.strip())

Truncated output:
AB10, AB11, AB12, AB15, AB16, AB21, AB22, AB23, AB24, AB25, AB99non-geo
AB13
AB14
AB30
AB31
AB32
AB33
AB34
AB35
AB36
AB37
AB38
AB39
AB41
AB42
AB43
AB44
AB45
AB51
AB52
AB53
AB54
AB55
AB56
AL01 AL1, AL2, AL3, AL4
AL05 AL5
AL06 AL6, AL7shared
AL07 AL7shared, AL8
AL09 AL9, AL10
B001 B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15, B16, B17, B18, B19, B20, B21, B23, B24, B25, B26, B27, B28, B29, B30, B31, B32, B33, B34, B35, B36, B37, B38, B40, B42, B43, B44, B45, B46, B47, B48,B99non-geo
B049 B49, B50

A: Try the below code.It should work.It will return the second column text.
import bs4
import requests
url="https://en.wikipedia.org/wiki/List_of_postcode_districts_in_the_United_Kingdom"

data=requests.get(url)
soup=bs4.BeautifulSoup(data.text,'html.parser')
My_table = soup.find('table',{'class':'wikitable sortable'})
My_row = My_table.find_all('tr')
for row in My_row:
   data= row.find_next('td').find_next('td')
   print(data.text.strip())

Output:
AB10, AB11, AB12, AB15, AB16, AB21, AB22, AB23, AB24, AB25, AB99non-geo
AB10, AB11, AB12, AB15, AB16, AB21, AB22, AB23, AB24, AB25, AB99non-geo
AB13
AB14
AB30
AB31
AB32
AB33
AB34
AB35
AB36
AB37
AB38
AB39
AB41
AB42
AB43
AB44
AB45
AB51
AB52
AB53
AB54
AB55
AB56
AL01 AL1, AL2, AL3, AL4
AL05 AL5
AL06 AL6, AL7shared
AL07 AL7shared, AL8
AL09 AL9, AL10
B001 B1, B2, B3, B4, B5, B6, B7, B8, B9, B10, B11, B12, B13, B14, B15, B16, B17, B18, B19, B20, B21, B23, B24, B25, B26, B27, B28, B29, B30, B31, B32, B33, B34, B35, B36, B37, B38, B40, B42, B43, B44, B45, B46, B47, B48,B99non-geo
B049 B49, B50
B060 B60, B61
B062 B62, B63
B064 B64
B065 B65
B066 B66, B67
B068 B68, B69
B070 B70, B71
B072  B72, B73, B74, B75, B76
B077 B77, B78, B79
B080 B80
B090 B90, B91, B92, B93, B94
B095 B95
B096 B96, B97, B98
BA01 BA1, BA2
BA03 BA3
BA04 BA4
BA05 BA5
BA06 BA6
BA07 BA7
BA08 BA8
BA09 BA9shared
BA09 BA9,non-geo shared[2] BA10
BA11
BA12
BA13
BA14
BA15
BA16
BA20, BA21, BA22
BB01 BB1, BB2, BB6
BB03 BB3
BB04 BB4
BB05 BB5
BB07 BB7
BB08 BB8
BB09 BB9
BB10, BB11, BB12
BB18, BB94non-geo
BD01 BD1, BD2, BD3, BD4, BD5, BD6, BD7, BD8, BD9, BD10, BD11, BD12, BD13, BD14, BD15, BD98,non-geo shared BD99non-geo
BD16, BD97non-geo
BD17, BD18, BD98non-geo shared
BD19
BD20, BD21, BD22
BD23, BD24shared
BD24shared
BF01 BF1non-geo
BH01 BH1, BH2, BH3, BH4, BH5, BH6, BH7, BH8, BH9, BH10, BH11
BH12, BH13, BH14, BH15, BH16, BH17
BH18
BH19
BH20
BH21
BH22
BH23
BH24
BH25
BH31
BL00 BL0,

redpajama_set_name: RedPajamaStackExchange


For greenhouse crops, sow indoors January-April. A warm kitchen windowsill is all you need for starting these seeds. Sow thinly, 0.5cm (¼") deep, in a pot of compost. Water well and place in a warm position. A temperature of 15-20°C (60-68°F) is ideal. Keep moist. Seedlings usually appear in 7-14 days. Transplant to individual pots when 10-15cm (4-6") tall. Grow on in cooler, but not cold conditions. Plant out April to May to large pots, growing bags or greenhouse border. Harvest: June-October. For outdoor crops, delay indoor sowing until March or April. Gradually accustom plants to outside conditions (avoid frosts), before planting out into warm, well-drained soil, 40cm (16") apart, when frosts are over. Harvest from August onwards.
This award-winning variety is a classic for salads because of the novel appearance, but it is also excellent cooked.


The Accounting Advisory Board provides strategic advice to the department on its mission, goals, policies, and programs. It is comprised of professionals from industry, public accounting, and private accounting. Advisory board members also participate in faculty recruitment, fund-raising, mentoring, and outreach activities.


China Birch Plywood Dubai 1/2 X 4′x 8′size - China .
China Plywood manufacturer, Commercial Plywood, Melamine .
China Hardwood Core Commercial Plywood for Construction .
Technical Plywood for Commercial Vehicle Building and .


If you are a senior that wants to learn how you can remain as active as possible in your golden years without injuring yourself you ought to read a copy of Healthy Happy & Fit. Of course it is not a replacement for sound medical advice but it does highlight things that other seniors participate in or do to remain as healthy as possible. No matter what age you are, it is important to do some form of exercise and to eat properly as a sedentary lifestyle filled with the consumption of unhealthy foods is not good for anyone at all. The audiobook explains how seniors can do all that and more! Dwayne Whiting understands the challenges that many seniors go through as his parents and their siblings are in the golden stage of their life. One thing that he did notice which intrigued him was the fact that as long as they were feeling okay, they would go out and get some exercise done. It could be a walk or even a trip to the gym. He respected their zest for life and admired the fact that at their age they were still willing to get up and keep active. Dwayne always kept this in his mind and when he had the opportunity to, he started to compile information on how seniors can keep healthy and active. That led to his book.


text:
NZ Property Council award wins
New Zealand Property Council award wins
03 August 2009 - At the recent 2009 New Zealand Property Council Awards, Aurecon were winners in the categories of Special purpose and Education and Arts.
The Kakariki House in Hamilton won the Award of Merit for Special Purpose. The Kakariki House achieved a Four Green Star design rating in Hamilton and is the first building in Waikato to receive a Green Star rating. The project incorporates Environmentally Sustainable Design (ESD) principles through the materials used in energy, ventilation and water. Amanda Bryan (Aurecon Hamilton) was engaged as Green Star Accredited Professional for the project.
The new Brian Perry Sports House in Hamilton won the Award of Merit for Tourism & Leisure. Aurecon was engaged to undertake the mechanical, electrical, fire engineering, hydraulics, land surveying and ESD services for the new building. Daniel Borszik was the Aurecon team leader.
"Brian Perry Sports House was built for its purpose in the cheapest way possible" said Matthew Cooper, Sport Waikato chief executive. "The main principles were to reduce overheads for the sport and enable collaboration across sport ... this award is a real testament to the creativity and planning from the team behind it."
Julie Nelson, WISE Chief Executive gave glowing praise for Kakariki House and Brian Perry Sports House. "These are two outstanding Hamilton developments, both driven by not-for-profit organisations working at grassroots in the community, that's a success story in itself."
Aurecon was also a consultant on the following projects that were successful at the awards evening and we congratulate the winners:
Mercy Ascot - Cancer Care Centre, Auckland - Award of Excellence for Special Purpose. The Auckland office was responsible for structural engineering
King's School, Auckland - Award of Merit for Education & Arts
The Auckland office was responsible for building services and structural engineering
The Stamford Residences, Auckland - Award of Merit for Multi-unit Residential. The Auckland office was responsible for structural engineering
Queen St Upgrade, Auckland - Award of Merit for Urban Design
The Auckland office was responsible for specialist lighting.
The New Zealand Property Council Rider Levett Bucknall Awards celebration took place on Thursday 25 June 2009 at Sky City in Auckland.
For further information, please visit www.propertynz.co.nz/

redpajama_set_name: RedPajamaCommonCrawl


Fight acne and stubborn breakouts while reducing acne-related skin damage with our natural rose acne face cream.
Are you tired of waking up with dull, blemish-prone skin? Are you looking for an acne solution that's gentle on your skin, regulates oil, and shrinks widened pores?
Stop using multiple products for your acne and aging signs! All you need is our all-natural acne face cream.
Let us introduce you to Anti-Acne Face Cream with Bulgarian Rose. This acne-fighting product with plant-based ingredients has been approved as 100 percent natural and safe by dermatologists and has been tested by an FDA-approved lab in EU.
Our natural face cream for acne is infused with one of the world's rarest flowers — the Bulgarian rose. RAAM's natural anti-acne face cream offers a variety of benefits in addition to standing up against discoloration and scarring by minimizing the chances of skin damage due to popped pimples. It hydrates and nourishes your skin to maintain an even skin tone and a glowing complexion while fighting acne.
Because this product is only 26% oil (Apricot Kernel Oil and Avocado Oil), 23% water, and 51% acne-fighting ingredients, you can apply it to clean, dry skin in the morning and at night. We suggest applying a small amount of this natural anti-acne face cream to your clean, dry skin.


After last week's attempts to learn key lessons from 2017, this column will now turn its attention to the year ahead. In the (unfortunate) absence of a crystal ball, no promises or guarantees can be offered, but below are five themes which advisers and clients will need to think about when it comes to portfolio strategy in 2018 and beyond.
Central banks and what looks like a more universal move toward tightening monetary policy.
Whether low unemployment finally translates into faster salary increases for workers and a wider acceleration in inflation.
The ongoing reach for yield.
The broader market cycle and whether the meteoric rise of Bitcoin and cryptocurrencies means we are nearer the end than we are the beginning.
Each one is outlined in further detail below.
Although the Bank of England's Mark Carney and European Central Bank's Mario Draghi are firmly in position, the US Federal Reserve will have a new chair in the form of Jerome Powell come February and the Bank of Japan's Haruhiko Kuroda sees his first term end in April. Kuroda looks likely to keep his job but Powell will be overseeing a period of change in the Fed's Marriner S. Eccles Building in Washington, as the identity of a number of Federal Open Market Committee members is due to change in 2018.
There also seems to be a shift in the direction of monetary policy, even if the pace remains glacial.
In November the Bank of England pushed through its first interest rate increase for a decade, while Governor Kuroda gave a speech in Zurich in which he hinted that the Bank of Japan may start to relax its grip on the Tokyo bond market by no longer holding the ten-year Government bond yield at zero (though he quickly backtracked). In December the Fed raised rates for the third time this year and fifth time this cycle.
In January the ECB will taper its monthly Quantitative Easing (QE) bond scheme from €60 billion a month to €30 billion. The Bank of England is expected to eke out a second one-quarter point rate rise in 2018. And the Fed is targeting three more rate hikes and a continuation of its Quantitative Tightening scheme, whereby it begins to reduce monetary stimulus.
While the rate of change may be slow, this still represents a key test for securities markets which have feasted on record-low rates and cheap liquidity. As this column has noted many times before, it has taken an average of eight to nine rate hikes to stop the US stock market in its tracks (although the range is wide from cycle to cycle), and three more this year would take the target to eight. Central banks reducing their asset holdings rather than increasing them will be a test for bonds and equities alike, especially the latter, which have benefitted from a perceived lack of alternatives when it comes to asset allocation in a low-inflation, low-yield, low-growth world.
This first graphic shows there is a possible link between the asset-buying schemes of the Bank of England, Bank of Japan, European Central Bank, Swiss National Bank and the US Federal Reserve and global stocks. It will be interesting to see if this link persists in 2018, should the Fed stick to QT and the ECB and even the BoJ start to slow the pace of QE, although it is possible that global economic and corporate profits growth prove capable of carrying the day.
This is not to say that every central bank is raising rates or tightening policy - Brazil and Russia are still cutting borrowing costs and this divergence could be a differentiator for emerging markets in 2018, even if the Banco Central do Brasil has already taken the headline Selic rate down to a record-low of 7.00%.
Despite (near) multi-decade lows in the unemployment rate of 4.3%, 4.1%, 3.6% and 2.8% in the UK, US, Germany and Japan respectively, wage growth for workers remains relatively subdued at 2.5%, 2.5%, 1.2% and 0.6% for the same four countries.
Why this should be remains a matter of fierce debate. In the UK it is possible to point to auto-enrolment (meaning that workers are getting a better package but the benefits are back-end loaded and not strictly salary-related), the rise of self-employment, the development of the gig economy and job sharing, corporations being careful ahead of Brexit and the rise of automation, as staff try not to price themselves out of a job and a robot into one. There is also an argument that the minimum wage and living wage are having the unintended side-effect of persuading employers to offer fewer hours to offset the cost of higher hourly pay, with the result that staff are hardly better off, if at all.
Some of these themes apply internationally too and it may be that the rise of the robots and the gig economy keep wages subdued.
This appears to be the expectation of the markets, judging by the lowly rates of expectation priced in by five-year inflation expectations, which is just 1.99% in the US for example.
That is in keeping with the current Goldilocks scenario of an economy that is warm enough to help corporates increase profits but not too hot to stoke rate rises or inflation or so cool that it threatens earnings growth.
But if this scenario changes then bond and equity markets alike will have to pay attention, so advisers and clients will have to stay alert for two reasons.
First, if the economy does accelerate, then higher wages or greater investment in capacity may be needed, to the detriment of short-term margins and earnings – something which stock valuations and earnings estimates do not appear to be factoring in.
Second, faster wage growth could also persuade central banks to act more quickly to tighten policy and turn off the liquidity taps. This does look unlikely now but it is the sort of negative surprise that could hit sentiment hard.
Bond yields generally remain depressed (some $11 trillion of bonds worldwide still come with negative yields, according to the Financial Times newspaper) and central bank QE schemes have ground down the premium, or spread, on offer from sub-investment grade (junk) and investment grade corporate and government bonds relative to US Treasuries, UK Gilts and German bunds.
If interest rates do rise then bond prices could fall by a degree which more than offsets the financial gain offered by the coupons. A very subdued inflationary environment is needed to keep bonds safe at this level, although global debts, weak demographics in the west and the price-crushing powers of the internet mean this is by no means impossible.
Advisers and clients need to be aware of duration risk (and how sensitive individual bond holdings or their preferred active or passive bond funds are to movements in interest rates).
Even if bond yields remain low, income-seekers still have a problem, one where the most tempting solution is to turn to equities. After all, the prospective yield on the FTSE 100 is 4.3% for 2018, according to consensus forecasts, a figure which easily outstrips cash or the 1.16% yield available on the 10-year Gilt.
Yet care is needed. Several high-profile income stocks came a cropper in 2017, notably Pearson and Provident Financial, even if the oil majors BP and Shell confounded the doubters by holding their mighty dividend payments once more.
Advisers and clients must therefore look carefully at the stocks which feature in the top-ten lists of their preferred equity income funds, especially as just four sectors – banks, insurers, consumer staples and consumer discretionary – are forecast to generate the vast bulk of UK dividend growth for 2018, while oils are a big chunk of the total pot.
The higher oil goes, the safer the dividends of Shell and BP become, and thus the safer the yield of the FTSE 100 in some ways, although higher oil would represent a cost to consumers and corporates alike in other sectors, so even that scenario is not a zero-sum game.
Markets continue to warm to the reflationary potential of the fiscal-spending, tax-cutting and regulation-slashing programme outlined by US President-Elect Donald and rising US share prices represent the clearest sign of enthusiasm for the proposed tax reform programme.
Estimates suggest that US corporate earnings per share could benefit by between six and ten percentage points, depending upon which estimates you use – although this does beg the question of whether the smart gains seen in the Dow Jones Industrials, S&P 500, NASDAQ Composite and Russell 2000 indices already factor in this boost, given they have risen at a faster rate than that since President Trump won the November 2016 Presidential Election.
For the moment, however, the analogies with President Reagan's first term (1981-84) are providing the market with a powerful narrative. 'The Gipper' also cut taxes, increased defence spending and preached deregulation to such powerful effect that US GDP growth soared to 8% year-on-year and stocks boomed, but even the most ardent bulls of US stocks must note that Reagan inherited a far more propitious set of circumstances than Trump.
As the table below shows, interest rates and inflation were falling, Government debt was low (and left room for manoeuvre) and stocks were cheap after a torrid bear market. Under Trump, rates and inflation seem to be slowly creeping higher, debt is already reaching uncomfortable levels and stocks are at nosebleed valuation levels, according to Professor Robert Shiller's cyclically-adjusted price earnings (CAPE) ratio, after a nine-year bull market.
CAPE is a poor near-term market timing tool but history suggests it has the potential to be a fair predictor of returns from US stocks on a 10-year view and if that pattern holds up then advisers and clients may choose to assess their US exposure and ensure they feel the risk-reward ratio is appropriate, given historically-high valuation and also the manner in which Japan, the UK and emerging markets appear to be trading on multiples which are less demanding relative to their history.
Advisers and clients may therefore be tempted to check their portfolios and asset allocations, to see where, if anywhere, they have exposure to unloved (and potentially cheap) and overloved (and potentially expensive) assets.
The issue of valuation remains a subjective one, but this column receives plenty of feedback during the year and the table below is based on both its assessment of valuation relative to history and also the number of questions and comments received about given topics.
Areas where little or no interest has been shown feature in the "pessimism" and "scepticism" boxes.
Those topics which stirred considerable correspondence feature in the sections marked "optimism" and "euphoria," with a valuation overlay applied for good measure.
It will be interesting to see if the most popular, momentum-driven areas remain as popular in 2018 or whether the more contrarian, value-driven options come to the fore.


LAC-MEGANTIC, Que. - The embattled rail company involved in the Lac-Megantic derailment has suspended an employee linked to the disaster, now feared to have killed 50 people.
The railway revealed Wednesday that it had sidelined the employee amid concerns that he might not have properly applied the brakes on the train.
That statement from railway president Ed Burkhardt came during a contrite visit to the battered town where he was heckled by locals while being escorted around by police.
The Rail World Inc. president said his train engineer had declared that he'd set the required 11 handbrakes on the vehicle, but that the statement had since fallen into doubt.
He said his employee had been suspended pending a police investigation — which is an abrupt reversal from the public message his company had been delivering the previous day.
"I think he did something wrong," Burkhardt said Wednesday.
"We don't summarily fire people and we have to go through a process with the union... (But) I don't think he'll be back working for us, that's my personal opinion."
Burkhardt said police have talked about prosecuting his engineer and that they have told the man to stay where he is.
Repeated attempts to reach the train engineer over the last two days have been unsuccessful and the union representing him refused to comment Wednesday.
Just a day earlier the company called the engineer, Quebec resident Tom Harding, a "hero" for apparently rushing to the scene and managing to stop some of the ghost cars.
The latest account is also vastly different from that of previous days when the company appeared to be directing blame at the neighbouring municipality's fire department instead.
The railway had said that, shortly before the disaster, the department in Nantes had shut off the engine while fighting an earlier blaze and that affected the brakes. The fire department, however, said it was simply applying proper procedure.
It's unclear how those two sides left off before they exited the scene. However, the train was left unattended, took off, and began rolling downhill with increasing speed on a destructive 20-minute journey to Lac-Megantic.
The federal Transportation Safety Board is investigating and provincial police are conducting a separate criminal probe in which they have already interviewed 70 people — including the railway boss Wednesday.
Police are now warning of worse news ahead.
''Now we are standing here with a number of 50 persons we are considering as missing and most probably dead in this tragedy,'' said provincial police Insp. Michel Forget.
Among the 50 people considered missing, the official death toll of bodies found stands at 20. One victim has been identified, although the individual's identity has not been made public.
In his account to media Wednesday, Burkhardt said the fire department was dealing with another company employee on-site, a track foreman, who was not familiar with diesel engines. Meanwhile, he said, the fire department was not familiar with train safety.
He has stated that the fire department should have called Harding, who had completed his shift and went off to sleep at a hotel.
But Burkhardt appeared to turn on his engineer Wednesday.
"We think he applied some handbrakes — the question is, did he apply enough of them? He's told us that he applied 11 handbrakes and our general feeling now is that that is not true. Initially, we took him at his word," he said.
"It seems that adequate handbrakes were not set on this train and it's the engineer's responsibility to set them."
The issue of culpability could carry deep financial consequences as threats of lawsuits have already surfaced, and various players are preparing for an expensive rebuilding effort.
The Quebec government announced Wednesday an initial $60-million fund to help victims, while declaring that flags across the province would spend a week lowered to half-mast.
Burkhardt promised the company's full assistance.
He said it would partner with the Red Cross, insurers and governments to help fund humanitarian aid and reconstruction of homes.
"Our financial resources are going to be devoted to this," said the veteran railman.
The company has attracted considerable criticism for its response to the crisis.
Before arriving in town, four days after the disaster, the president of Montreal, Maine & Atlantic's Chicago-based holding company — Rail World Inc. — joked in interviews about the angry response he might get from the locals.
Burkhardt quipped about having to wear a bullet-proof vest when he visited.
Even Wednesday, he again showed flashes of his sense of humour. A reporter asked how much he was worth, financially. Burkhardt replied: "A whole lot less than I was Saturday."
He also joked about safety at one point while he was walking alongside a horde of journalists. More than a dozen news photographers and TV camera people walked backwards ahead of him to capture his image.
"Walking backwards is very dangerous," Burkhardt said.
"We're having a conversation about safety and you guys are doing something very unsafe right now."
The French version of its website remains under construction, and a translated French-language news release sent over the weekend was riddled with errors.
The provincial government added new criticism Wednesday.
"It's a completely deplorable attitude from the company," said Premier Pauline Marois. "I understand he doesn't speak French but he could have gotten someone and been there on-site."
Meanwhile, Marois revealed that her government has taken a step that, in normal times, she conceded would be unusual.
She said the province's finance minister called the head of the Caisse de depot et placement to inquire about its holdings in the MMA railway.
The giant pension-fund manager is supposed to be a hands-off institution — with political interference to be avoided at risk of damaging Quebecers' savings with politically motivated investment decisions.
Marois said Finance Minister Nicolas Marceau had called to "seek information" about the Caisse, the $176-billion fund that holds a minority share in the railway.
The Caisse has a 12.77 per cent share in the railway — but that investment is worth almost nothing, estimated at $1,000 at the end of 2012. This is after the Caisse invested $7 million in share capital in 2003, and provided a $7.7 million loan that was fully repaid in 2011.
Burkhardt speculated that the tragedy would lead to changes in industry policy.
He said his company has already stopped using one-man crews.
"I really question right now whether that should continue (in the industry) — I don't think it will," he said.
"It certainly will not on this railway."
He became agitated when asked why he hadn't apologized yet.
Burkhardt responded to a reporter that perhaps he hadn't been listening to the first dozen apologies — then said he would add another one, making what he called one more "abject apology."
Following the news conference, Burkhardt was taken in an unmarked police car to meet with investigators at the provincial police station in Lac-Megantic.
Burkhardt and MMA president, Robert Grindrod, spent more than four hours at the department before leaving in a station wagon with Maine licence plates.
"Oh, all kinds of questions," Burkhardt said to a reporter when he was asked what police asked him about.
The railway boss did not respond when asked whether he could face charges and declined to say whether police asked him about Harding, his suspended engineer.
"I'm not going to answer any questions."


SCoC Would Like to Say. . .
...thanks to all who made our quarterly Chamber Program a success!
Haskell County Historical Society & Museum for hosting us!
Station 53 for providing our meal!
To the following Managers/Owners who provided information on their businesses..
And to all of the SCoC Members and guests who were in attendance!
Next Chamber Business Meeting is August 18, 2014.
Newer PostDetails on the Haskell County Fair!
Older PostInformational Video from APC, Inc.


text:
Q: Calling resignFirstResponder doesn't work within overrides firstResponder How to focus activated UITextField with UIResponder?
Code below:
//  customTextField.swift
import UIKit
class customTextField: UITextField {

override func becomeFirstResponder() -> Bool {
    if self.tag == 1 {
        self.borderStyle = .Line
        self.superview?.viewWithTag(2)?.resignFirstResponder()
        self.superview?.viewWithTag(3)?.resignFirstResponder()
    } else if self.tag == 2 {
        self.borderStyle = .Line
        self.superview?.viewWithTag(1)?.resignFirstResponder()
        self.superview?.viewWithTag(3)?.resignFirstResponder()
    } else {
        self.borderStyle = .Line
        self.superview?.viewWithTag(1)?.resignFirstResponder()
        self.superview?.viewWithTag(2)?.resignFirstResponder()
    }
    return true
}
override func resignFirstResponder() -> Bool {
    print("This is called")
    self.borderStyle = .None
    super.resignFirstResponder()
    return true
}}

I would like to check which textfield is the firstResponder through View's tag. And then if other TextField should be unfocused by resignFirstResponder.
But, the resignFirstResponder within the becomefirstResponder's code block isn't even called when I touch a textField in the view.

A: Do not break the superclass: Pass messages along
In the process of overwriting system messages, like becomeFirstResponder, you may inadvertently disable the parent class. The safest, no-op becomeFirstResponder is this:
override func becomeFirstResponder() -> Bool {
    return super.becomeFirstResponder()
}

Omitting super.becomeFirstResponder() will compromise UITextField.
Also let the original logic (when to become or not become a responder) take its course. Always responding true or false changes the behavior of the parent class, which may have unwanted and unfortunate side effects.
    override func becomeFirstResponder() -> Bool {
        let becomeFirstResponder = super.becomeFirstResponder()
        // Do stuff
        return becomeFirstResponder
    }

Do not replicate the OS
No need to keep track of the current responder.
Let the OS message you of who is the responder: attempting to do the tracking otherwise may actually not work when the onscreen keyboard gets dismissed without a new field being tapped, and is bound to break. Instead, listen to resignFirstResponder in the same manner:
override func resignFirstResponder() -> Bool {
    return super.resignFirstResponder()
}

Less code, more flexibility
Putting both rules together, and using .RoundedRect & .Line for an explicit redraw (.None has no effect), your entire CustomTextField could look like so:
class CustomTextField: UITextField {

    override func becomeFirstResponder() -> Bool {
        let becomeFirstResponder = super.becomeFirstResponder()
        if becomeFirstResponder {
            self.borderStyle = .line
        }
        return becomeFirstResponder
    }

    override func resignFirstResponder() -> Bool {
        let resignFirstResponder = super.resignFirstResponder()
        if resignFirstResponder {
            self.borderStyle = .roundedRect
        }
        return resignFirstResponder
    }
}

Notice that no action is taken if super.becomeFirstResponder() or super.resignFirstResponder() did not succeed.

Demo

► Find this solution on GitHub and additional details on Swift Recipes.


It's official – The smart home has arrived. From boiling the kettle, to setting your thermostat, technology within the home is rapidly evolving and is as simple as opening an app on your phone. Whilst there is a wide range of technologies and products to choose from, we take a look at the products making our lives that little bit easier, blending in to our everyday routines with ease.
The Nest thermostat automatically adapts as your life changes. Just use it for a week and it programs itself. Saving energy through smart technology, the Nest retains information suited to your lifestyle and home – it gets to know the temperature you like and how your house functions to ensure maximum efficiency when in use. Only using the energy that it needs, this handy little device has saved over 8 billion kWh of energy in millions of homes worldwide, making it a useful gadget if you are looking to save money on your energy, or simply have more control over the energy that you are using.
A smart, internet-connected programmable control for central heating and hot water which can be operated using a smart phone or tablet. Simply download the Wave app to your compatible device to take control of your heating system from anywhere in the world where an Internet connection is available. This level of boiler control can make a huge difference to the efficiency of your heating system, allowing you to tailor its overall performance through intelligent controls.


text:
<?php
class Receiving extends CI_Model
{
	function get_info($receiving_id)
	{
		$this->db->from('receivings');
		$this->db->join('people', 'people.person_id = receivings.supplier_id', 'LEFT');
		$this->db->where('receiving_id',$receiving_id);
		return $this->db->get();
	}

	function get_invoice_count()
	{
		$this->db->from('receivings');
		$this->db->where('invoice_number is not null');
		return $this->db->count_all_results();
	}

	function get_receiving_by_invoice_number($invoice_number)
	{
		$this->db->from('receivings');
		$this->db->where('invoice_number', $invoice_number);
		return $this->db->get();
	}

	function get_invoice_number_for_year($year='', $start_from = 0)
	{
		$year = $year == '' ? date('Y') : $year;
		$this->db->select("COUNT( 1 ) AS invoice_number_year", FALSE);
		$this->db->from('receivings');
		$this->db->where("DATE_FORMAT(receiving_time, '%Y' ) = ", $year, FALSE);
		$this->db->where("invoice_number IS NOT ", "NULL", FALSE);
		$result = $this->db->get()->row_array();
		return ($start_from + $result[ 'invoice_number_year' ] + 1);
	}

	function exists($receiving_id)
	{
		$this->db->from('receivings');
		$this->db->where('receiving_id',$receiving_id);
		$query = $this->db->get();

		return ($query->num_rows()==1);
	}

	function update($receiving_data, $receiving_id)
	{
		$this->db->where('receiving_id', $receiving_id);
		$success = $this->db->update('receivings',$receiving_data);

		return $success;
	}

	function save ($items,$supplier_id,$employee_id,$comment,$invoice_number,$payment_type,$receiving_id=false)
	{
		if(count($items)==0)
			return -1;

		$receivings_data = array(
		'supplier_id'=> $this->Supplier->exists($supplier_id) ? $supplier_id : null,
		'employee_id'=>$employee_id,
		'payment_type'=>$payment_type,
		'comment'=>$comment,
		'invoice_number'=>$invoice_number
		);

		//Run these queries as a transaction, we want to make sure we do all or nothing
		$this->db->trans_start();

		$this->db->insert('receivings',$receivings_data);
		$receiving_id = $this->db->insert_id();

		foreach($items as $line=>$item)
		{
			$cur_item_info = $this->Item->get_info($item['item_id']);

			$receivings_items_data = array
			(
				'receiving_id'=>$receiving_id,
				'item_id'=>$item['item_id'],
				'line'=>$item['line'],
				'description'=>$item['description'],
				'serialnumber'=>$item['serialnumber'],
				'quantity_purchased'=>$item['quantity'],
				'discount_percent'=>$item['discount'],
				'item_cost_price' => $cur_item_info->cost_price,
				'item_unit_price'=>$item['price'],
				'item_location'=>$item['item_location']
			);

			$this->db->insert('receivings_items',$receivings_items_data);

			$items_received = $item['receiving_quantity'] != 0 ? $item['quantity'] * $item['receiving_quantity'] : $item['quantity'];

			// update cost price, if changed AND is set in config as wanted
			if($cur_item_info->cost_price != $item['price']
					AND	$this->config->item('receiving_calculate_average_price') == 'receiving_calculate_average_price')
			{
				$this->Item->change_cost_price($item['item_id'],
												$items_received,
												$item['price'],
												$cur_item_info->cost_price);
			}

			//Update stock quantity
			$item_quantity = $this->Item_quantities->get_item_quantity($item['item_id'], $item['item_location']);
            $this->Item_quantities->save(array('quantity'=>$item_quantity->quantity + $items_received,
                                              'item_id'=>$item['item_id'],
                                              'location_id'=>$item['item_location']), $item['item_id'], $item['item_location']);

			$recv_remarks ='RECV '.$receiving_id;
			$inv_data = array
			(
				'trans_date'=>date('Y-m-d H:i:s'),
				'trans_items'=>$item['item_id'],
				'trans_user'=>$employee_id,
				'trans_location'=>$item['item_location'],
				'trans_comment'=>$recv_remarks,
				'trans_inventory'=>$items_received
			);
			$this->Inventory->insert($inv_data);

			$supplier = $this->Supplier->get_info($supplier_id);
		}
		$this->db->trans_complete();

		if ($this->db->trans_status() === FALSE)
		{
			return -1;
		}

		return $receiving_id;
	}

	function delete_list($receiving_ids,$employee_id,$update_inventory=TRUE)
	{
		$result = TRUE;
		foreach($receiving_ids as $receiving_id) {
			$result &= $this->delete($receiving_id,$employee_id,$update_inventory);
		}
		return $result;
	}

	function delete($receiving_id,$employee_id,$update_inventory=TRUE)
	{
		// start a transaction to assure data integrity
		$this->db->trans_start();
		if ($update_inventory) {
			// defect, not all item deletions will be undone??
			// get array with all the items involved in the sale to update the inventory tracking
			$items = $this->get_receiving_items($receiving_id)->result_array();
			foreach($items as $item) {
				// create query to update inventory tracking
				$inv_data = array
				(
						'trans_date'=>date('Y-m-d H:i:s'),
						'trans_items'=>$item['item_id'],
						'trans_user'=>$employee_id,
						'trans_comment'=>'Deleting sale ' . $receiving_id,
						'trans_location'=>$item['item_location'],
						'trans_inventory'=>$item['quantity_purchased']*-1

				);
				// update inventory
				$this->Inventory->insert($inv_data);

				// update quantities
				$this->Item_quantities->change_quantity($item['item_id'],
														$item['item_location'],
														$item['quantity_purchased']*-1);
			}
		}
		// delete all items
		$this->db->delete('receivings_items', array('receiving_id' => $receiving_id));
		// delete sale itself
		$this->db->delete('receivings', array('receiving_id' => $receiving_id));
		// execute transaction
		$this->db->trans_complete();

		return $this->db->trans_status();
	}

	function get_receiving_items($receiving_id)
	{
		$this->db->from('receivings_items');
		$this->db->where('receiving_id',$receiving_id);
		return $this->db->get();
	}

	function get_supplier($receiving_id)
	{
		$this->db->from('receivings');
		$this->db->where('receiving_id',$receiving_id);
		return $this->Supplier->get_info($this->db->get()->row()->supplier_id);
	}

	function invoice_number_exists($invoice_number,$receiving_id='')
	{
		$this->db->from('receivings');
		$this->db->where('invoice_number', $invoice_number);
		if (!empty($receiving_id))
		{
			$this->db->where('receiving_id !=', $receiving_id);
		}
		$query=$this->db->get();
		return ($query->num_rows()==1);
	}

	//We create a temp table that allows us to do easy report/receiving queries
	public function create_receivings_items_temp_table()
	{
		$this->db->query("CREATE TEMPORARY TABLE ".$this->db->dbprefix('receivings_items_temp')."
		(SELECT date(receiving_time) as receiving_date, ".$this->db->dbprefix('receivings_items').".receiving_id, comment, invoice_number, payment_type, employee_id,
		".$this->db->dbprefix('items').".item_id, ".$this->db->dbprefix('receivings').".supplier_id, quantity_purchased, item_cost_price, item_unit_price,
		discount_percent, (item_unit_price*quantity_purchased-item_unit_price*quantity_purchased*discount_percent/100) as subtotal,
		".$this->db->dbprefix('receivings_items').".line as line, serialnumber, ".$this->db->dbprefix('receivings_items').".description as description,
		(item_unit_price*quantity_purchased-item_unit_price*quantity_purchased*discount_percent/100) as total,
		(item_unit_price*quantity_purchased-item_unit_price*quantity_purchased*discount_percent/100) - (item_cost_price*quantity_purchased) as profit
		FROM ".$this->db->dbprefix('receivings_items')."
		INNER JOIN ".$this->db->dbprefix('receivings')." ON  ".$this->db->dbprefix('receivings_items').'.receiving_id='.$this->db->dbprefix('receivings').'.receiving_id'."
		INNER JOIN ".$this->db->dbprefix('items')." ON  ".$this->db->dbprefix('receivings_items').'.item_id='.$this->db->dbprefix('items').'.item_id'."
		GROUP BY receiving_id, item_id, line)");
	}

}
?>

redpajama_set_name: RedPajamaGithub