text:
BMC Medical Research Methodology
Understanding competing risks: a simulation point of view
Arthur Allignol1,2,
Martin Schumacher2,
Christoph Wanner3,
Christiane Drechsler3 &
Jan Beyersmann1,2
BMC Medical Research Methodology volume 11, Article number: 86 (2011) Cite this article
10k Accesses
Competing risks methodology allows for an event-specific analysis of the single components of composite time-to-event endpoints. A key feature of competing risks is that there are as many hazards as there are competing risks. This is not always well accounted for in the applied literature.
We advocate a simulation point of view for understanding competing risks. The hazards are envisaged as momentary event forces. They jointly determine the event time. Their relative magnitude determines the event type. 'Empirical simulations' using data from a recent study on cardiovascular events in diabetes patients illustrate subsequent interpretation. The method avoids concerns on identifiability and plausibility known from the latent failure time approach.
The 'empirical simulations' served as a proof of concept. Additionally manipulating baseline hazards and treatment effects illustrated both scenarios that require greater care for interpretation and how the simulation point of view aids the interpretation. The simulation algorithm applied to real data also provides for a general tool for study planning.
There are as many hazards as there are competing risks. All of them should be analysed. This includes estimation of baseline hazards. Study planning must equally account for these aspects.
The analysis of time-to-event data ('survival analysis') has evolved into a well established application of advanced statistical methodology in medicine. E.g., in the New England Journal of Medicine, survival methods have evolved from an occasionally used technique in the late 70s over moderate use in the late 80s into the leading statistical procedure by 2005 [1]. The archetypical application analyses time until death, but combined endpoints are also frequently considered. E.g., a recent literature review in clinical oncology [2] found a multitude of combined endpoints including, e.g., progression-free survival, distant metastasis-free survival, locoregional relapse-free survival, etc. The medical problems at hand will, as these endpoints exemplarily suggest, usually be more complex than can be addressed by the analysis of time until one potentially combined event type.
Competing risks techniques allow for a more specific analysis in that they consider time until occurrence of the combined endpoint and endpoint type, e.g., progression in contrast to death without prior progression. The relevance of competing risks in medical research is highlighted by methodological papers in various medical fields. We mention [3–5] as recent examples. A classical statistics textbook account has been given in the first edition of [6] in 1980, and a definite mathematical treatment based on counting processes is included in [7]. Excellent tutorial papers in the statistical literature are [8, 9].
However, despite an obvious practical relevance and a firmly established methodological background, competing risks are not always well accounted for in published survival analyses in medical journals: E.g., another recent literature review [10] in clinical oncology found that 27 out of 125 included randomised controlled trials considered time to progression, but only 5 out of 125 studies accounted for such endpoint types being non-exclusive. A similar picture has been reported for studies on the effect of implantable cardioverter defibrillator on subsequent cardiac events [11].
The key to an adequate competing risks analysis is: There are as many hazards as there are competing risks. Unless all of these hazards, which are often called cause-specific hazards, have been analysed, the analysis will remain incomplete. In particular, only a complete analysis will allow for predicting event probabilities.
The aim of this paper is to suggest an algorithmic or simulation point of view towards this key issue. The idea behind this point of view is that it gives a clear building plan of how the involved hazards generate competing risks data over the course of time. However, although the algorithm is mathematically well established [12], it is rarely used in practice [13]. We will use it as an operational device for understanding competing risks.
The remainder of the paper is organised as follows: The Methods Section introduces competing risks as arising from a multistate model, gives an algorithmic interpretation of the involved hazards and provides a description of the data example from a recent study on cardiovascular events in diabetes patients [14]. In this Section, we also explain 'empirical simulation', where one simulates based on the empirical study probabilities, and give an overview on simulation scenarios that will be considered. The Section closes with a brief summary of the difference between the present paper and the common latent failure time approach to competing risks. Results are reported in the Results Section. Our simulations are 'empirical simulations', and they work as a proof of concept: Interpreting a competing risks analysis from a simulation perspective can be viewed as a thought experiment. The actual simulations show that the simulation perspective works. Finally, a discussion and a conclusion are offered, with a focus on consequences for practical competing risks analyses, including graphical presentation and planning in the presence of competing events.
The competing risks multistate model
Figure 1 depicts the multistate model of a competing risks process (X t ) t≥0 with initial state 0 and two competing event states 1 and 2. X t denotes the state that an individual is in at time t. The restriction to two competing events is for ease of presentation only. Initially, every individual is in state 0 at time origin, i.e., X 0 = 0. The individual stays in this state, i.e., X t = 0 until occurrence of any first event. Usually, there is one event of interest, modelled by transitions into state 1, and all other first event types may be subsumed into the competing event state 2.
Competing risks multistate model. Competing risks multistate model with cause-specific hazards α 0j (t), j = 1, 2.
The competing risks process moves out of the initial state 0 at the event time T. At time T , the process enters one of the competing event states 1 or 2. Hence, the state X T that an individual is in at time T denotes the type of the first event, often called cause of failure. X T equals either 1 or 2.
Key quantities in competing risks are the cause-specific hazards (CSHs) α 0j (t), j = 1, 2,
The dt notation in (1) is a short, but more intuitive form of the more common α 0j (t) = limΔt↘0 P(T ∈ [t, t + Δt), X T = j | T ≥ t)/Δt. The interpretation of (1) is that the CSH at time t times the length dt of a very (infinitesimally) small time interval equals the conditional probability of making an 0 → j transition within that very small time interval [t, t + dt). The CSHs can be envisaged as forces of transition, which work along the arrows in Figure 1. Analogous to cumulative distribution functions, basic statistical inference addresses cumulative quantities. We therefore also write A 0j (t) for the cumulative CSHs, A 0j (t) = .
The CSHs are key, because, as seen below, the pertinent probabilities are deterministic functions of the CSHs, and because both nonparametric estimation and Cox-type regression modelling build on them. The fundamental nonparametric estimator is the Nelson-Aalen estimator of the cumulative CSHs
j = 1, 2, where the summation is over all observed event times s ≤ t. Variance estimation and, properly standardised, asymptotic normality of is discussed in detail in Chapter IV of [7]. The most important regression approach are Cox models for the CSHs. If, as is usual, we assume that covariates have different, i.e., cause-specific effects on the CSHs, the partial likelihood factorises such that a Cox model for α 01(t) may be fitted by additionally censoring type 2 events, and vice versa for a Cox model for α 02(t), see, e.g., Chapter VII of [7]. The R [15] packages mvna[16] and survival[17] provide for convenient computation of the Nelson-Aalen estimator and the Cox model, respectively.
The α 0j 's sum up to the all-cause hazard α 0·(t)dt = P (T ∈ dt | T ≥ t) with cumulative all-cause hazard A 0·(t). The survival function of T is therefore a function of both α 0j 's, . As usual, P (T > t) is estimated using the Kaplan-Meier estimator, which is a deterministic function of the cause-specific Nelson-Aalen estimators.
The so-called cumulative incidence functions (CIFs) are the expected proportion of individuals experiencing a certain competing event over the course of time,
j = 1, 2. The interpretation of the right hand side of (2) is that the CIF at time t equals the integral over all 'probabilities' to make an 0 → j transition precisely at time u. For this, an individual has to stay in state 0 until just before time u, which is reflected by the term P (T > u-). Conditional on being in state 0 just before time u, an 0 → j transition at time u is reflected by the term α 0j (u) du.
One consequence is that the CIFs are involved functions of all CSHs via P (T > u-). The CIFs P (T ≤ t, X T = 1) and P (T ≤ t, X T = 2) add up to the all-cause distribution function 1 - P (T > t). The Aalen-Johansen estimators of the CIFs can be obtained from (2) by substituting P (T > u-) with the Kaplan-Meier estimator and α 0j (u) du with the increment of the cause-specific Nelson-Aalen estimator. A detailed discussion of the Aalen-Johansen estimator is in Chapter IV of [7]; variance estimation is assessed in [18]. In R, survival is typically used for estimating P (T > t). The Aalen-Johansen estimator may be computed using etm[19], and prediction of the CIFs based on Cox models for the CSHs is implemented in mstate[20].
It is crucial to any competing risks analysis that both cause-specific hazards completely determine the stochastic behaviour of the competing risks process [7, Chapter II.6]. This is mirrored above by the CIFs and the all-cause distribution function being deterministic functions of all CSHs. However, these deterministic relationships are involved. Therefore, we will pursue an algorithmic interpretation of the CSHs below.
Algorithmic interpretation of the cause-specific hazards
Thinking of the CSHs as momentary forces of transition which move along the arrows in Figure 1 suggests that competing risks data are generated over the course of time as follows:
The event time T is generated with distribution function 1 - P (T > t), i.e., with hazard α 01(t) + α 02(t) = α 0·(t).
At time T , event type j occurs with probability α 0j (T )/α 0·(T ), j = 1, 2.
Using this algorithm for simulation studies in competing risks has been discussed in [13]. It is important to note, however, that the algorithm goes beyond the computational question of how to implement simulations. Rather, the algorithm reflects the probabilistic question of how to build a probability measure based on the CSHs. This aspect is discussed in detail by [12] in the more general context of multistate models which are realized as a nested series of competing risks experiments.
The algorithmic perspective of this paper then implies that the task of statistical inference is to detect the ingredients of the above algorithm. We illustrate this approach in the data example below. To this end, we note that the analysis of a combined endpoint is restricted to step 1 of the above algorithm. Here, the effect of a treatment, say, on both CSHs determines whether the occurrence of an event (of any type) is delayed or accelerated. In step 2, the type of an event again depends on the treatment effect on both CSHs. We illustrate below that interpretation is straightforward if the treatment effects on the CSHs work in opposite directions or if one CSHs remains unaffected. However, interpretation will become more challenging if there are unidirectional effects on both CSHs. We will find that, in general, it is also mandatory to consider cause-specific baseline hazards in the interpretation.
The 4D study
The background of the 4D study was that statins are known to be protective with respect to cardiovascular events for persons with type 2 diabetes mellitus without kidney disease, but that a potential benefit of statins in patients receiving hemodialysis had until then not been assessed. Patients undergoing hemodialysis are at high risk for cardiovascular events. The 4D study was a prospective randomised controlled trial evaluating the effect of lipid lowering with atorvastatin in 1255 diabetic patients receiving hemodialysis. Patients with type 2 diabetes mellitus, age 18-80 years, and on hemodialysis for less than 2 years were enrolled between March 1998 and October 2002. Patients were randomly assigned to double-blinded treatment with either atorvastatin (619 patients) or placebo (636 patients) and were followed until death, loss to follow-up, or end of the study in March 2004.
The 4D study was planned [21] and analysed [14] for an event of interest in the presence of competing risks. The event of interest was defined as a composite of death from cardiac causes, stroke and non-fatal myocardial infarction, whichever occurred first. The other competing event was death from other causes. Wanner et al. reported a CSH ratio of 0.92 (95%-confidence interval [0.77, 1.10]) for the event of interest. There was essentially no effect on the competing CSH.
The simulation study below will use the data of the placebo group. In this group, 243 (38.2% of 636) events of interest and 129 (20.3%) competing events were observed. There were 264 (41.5%) censored patients. The Nelson-Aalen estimators for the event of interest and for the competing event are displayed in Figure 2.
Nelson-Aalen estimators of the cumulative CSHs. Nelson-Aalen estimators (solid lines) of the cumulative CSHs with log-transformed 95% confidence intervals in the placebo group.
'Empirical simulation'
Simulations were based on the empirical probabilities defined by . To avoid the issue of model misspecification, which is outside the scope of the present investigations, 'ideal' Cox models were used for generating data in the treatment group as explained below. Event times and event types were generated following the two-step algorithm described earlier.
To be specific, event times in the placebo group were drawn from the distribution defined by the Kaplan-Meier estimator derived from . Here, a practical complication arose in that the Kaplan-Meier estimator only spent about 76% of the probability mass. I.e., the Kaplan-Meier curve did not drop down to 0 because of right-censoring, which is a common phenomenon in clinical trials. This was handled by putting point mass beyond the largest observed time; corresponding realisations were always censored. In other words, on average about 100% - 76% = 24% of the simulated event times equalled some time that was larger than the largest observed time in the original data set. The corresponding observations were always censored with censoring times generated as explained below. Event types were generated by the binomial experiment of the two-step algorithm, substituting the CSHs by the increments of the cumulative CSHs. The algorithm was analogously applied, when transformed cumulative CSHs were used for the placebo group.
Data in the treatment group were generated based on 'ideal' Cox models. That is, CSH ratios exp(β 1) for the event of interest and exp(β 2) for the competing event were specified. If the original empirical baseline hazards were used, data were drawn based on the probabilities defined by . If transformations of were used for generating placebo data, the CSH ratios acted on the transformed cause-specific baseline hazards. This reflects the situation that the true underlying baseline CSHs are α 01(t) and α 02(t) (or transformations thereof) in the control group, while the CSHs of the treatment group are exp(β 1)α 01(t) and exp(β 2)α 02(t) for the case of untransformed baseline hazards. Random censoring times were generated for all individuals based on the Kaplan-Meier estimator of the censoring survival function in the placebo group. Note that this estimator did spend 100% of the probability mass.
Overview of simulation scenarios
The scenarios investigated in the next Section differed both with respect to the choice of β 1 and β 2 and in terms of the cumulative baseline hazards, i.e., the cumulative CSHs in the placebo group. The choice of the β's broadly falls into three categories.
One category is characterised by β 2 = 0, i.e., there is no effect on the competing CSH. A prime example are implantable cardioverter defibrillators [11], which display a beneficial effect on the CSH of sudden cardiac death but no effect on the CSH for death from other causes. The assumption of β 2 = 0 straightforwardly implies the direction of the treatment effect on the CIF: If β 1 < 0, the CIF of interest in the treatment group is always less than the one in placebo group. The relationship is reversed, if β 1 > 0. This is intuitively understood thinking of the CSHs as momentary forces of transition, and it is reflected in step 2 of the simulation algorithm. E.g., if β 1 < 0 and β 2 = 0, the binomial event type 1 probabilities are reduced for the treatment group.
A second category is characterised by opposite treatment effects on the CSHs. This category straightforwardly implies the direction of the treatment effect on the CIF, too: The constellation β 1 < 0 and β 2 > 0 implies a smaller CIF of interest in the treatment group but also a larger competing CIF. These relations are reversed for β 1 > 0 and β 2 < 0. This is again intuitively implied by thinking of the CSHs as momentary forces of transition, and it is also reflected in step 2 of the simulation algorithm. E.g., if β 1 < 0 and β 2 > 0, the binomial event type 1 probabilities are reduced for the treatment group.
Finally, unidirectional treatment effects on the CSHs constitute the third category. Interestingly, the interpretation of unidirectional effects is straightforward when both competing events are fatal in the sense that a treatment with β 1 < 0 and β 2 < 0, say, is beneficial. But unidirectional effects also present the most challenging scenario in terms of understanding the resulting course of the CIFs. The interpretation for step 1 of the simulation algorithm is straightforward. If, e.g., β 1 < 0 and β 2 < 0, events of any type will happen later. The interpretational challenge becomes apparent in the second step of the algorithm: If, e.g., β 2 < β 1 < 0, the relative magnitude of the CSHs changes such that the binomial event of interest probabilities are increased. The interpretational difficulty is the increase of this probability, although β 1 is negative. This constellation may result in an (eventually) increased CIF of interest.
All three categories are encountered in practice. Examples from clinical trials in hospital epidemiology are given in [22].
Difference to the latent failure time model
Some readers may be more familiar with competing risks as arising from risk-specific latent times, say, T (1) and T (2). The connection to our multistate framework is T = min(T (1), T (2)) with event type X T = 1, if T (1) < T (2), and X T = 2 otherwise. The latent failure time model imposes an additional structure, which has been heavily criticised mainly for three reasons. The dependence structure of T (1) and T (2) is, in general, not identifiable [23]. Since the latent times are unobservable, there is something hypothetical about them, which questions their plausibility [24]. Perhaps most importantly, it has been disputed whether the latent failure time point of view constitutes a fruitful approach to answer questions of the original subject matter [25].
Despite of this critique, latent times are the predominant approach for simulating competing risks data [13]. Assuming, for tractability, T (1) and T (2) to be independent with hazards equal to the cause-specific hazards α 01(t) and α 02(t), respectively, is computationally correct in that simulation based on this model yields the right data structure.
However, nothing is gained from assuming the additional latent structure, either. As a consequence, we will emphasise simulation and interpretation along the lines of the Algorithmic interpretation of the cause-specific hazards outlined earlier. This avoids the concerns on identifiability, plausibility and usefulness.
E.g., in the 4D study, the typical interpretation of the latent times would be that T (1) is the time until death from cardiac causes, stroke or non-fatal myocardial infarction, while T (2) is the time until death from other causes. Such an interpretation has given rise to debating whether, say, a patient may conceptually still die from other causes after having died because of a cardiac event. In contrast to this, our approach only assumes that a patient is conceptually at risk of experiencing any of these events, provided that none of these events has happened so far.
We studied ten different scenarios, which are tabulated in Table 1 and cover all effect categories discussed earlier. Scenarios 1-5 have β 1 similar to the actual study result [14], and scenarios 6-10 have β 1 similar to the planning figures [21]. Table 1 also displays the use of different baseline hazards. For each of the scenarios, 1000 simulation runs were considered with 500 individuals in the placebo group and 500 individuals in the treatment group.
Table 1 Scenarios in the simulation study
Table 2 presents, for each scenario and based on Cox analyses of the CSHs, the mean log CSH ratios and , empirical 95% confidence intervals, the coverage probabilities of the Wald-type confidence intervals for the estimated regression coefficients, and the empirical power.
Table 2 Simulation results
For Scenarios 1-5, we also plotted the true CIFs (solid black lines), the average of the Aalen-Johansen estimators (dashed black lines) and 300 randomly selected Aalen-Johansen estimators (grey lines). The reason to only plot a random subsample was to maintain a grey shading in the plots.
We collect some general observations. In the Figures, the true CIFs are visually hardly distinguishable from the average of the Aalen-Johansen estimators from each simulation study. This entails that the algorithmic point of view is appropriate: Simulation along this line yields data that are consistent with the original quantities. Similar statements hold for the average of the estimated regression coefficients and the coverage probability of their confidence intervals. The Figures also show that both regression coefficients and baseline hazards matter. E.g., keeping both regression coefficients, but changing baseline hazards alters the CIFs. Similarly, keeping both the CSH ratio of interest and the baseline hazards, but changing the competing CSH ratio alters the CIFs.
We also note that recovering the true CIFs implies that we would have also recovered the original cumulative hazards of Figure 2. This is so, because knowledge of all CIFs allows to derive all CSHs and vice versa.
Scenarios 1 and 2: no effect on the competing CSH
Scenarios 1 and 2 are chosen with regression coefficients similar to the 4D study. Scenario 1 used the original cumulative baseline hazards and scenario 2 used the transformed tuple . This transformation amplifies the hazard for the event of interest, because except for the right tail of the time interval displayed in Figure 2.
Figures 3 and 4 illustrate that the CIF of interest is lower in the treatment group, as implied by β 1 < 0 under the side condition β 2 = 0. However, the difference is small, because the effect mirrored by β 1 = -0.1 is rather moderate. The effect is somewhat amplified for the CIFs of interest when using as a baseline CSH, because the transformation amplifies this hazard. The effect of a 'more important' baseline CSH for the event of interest is also reflected in the smaller empirical 95% confidence interval for the estimation of β 1 and an increased empirical power. This is so, because increasing the baseline CSH of interest while not changing the competing baseline CSH will lead to more events of interest. In both scenarios, we find a slight increase of the competing CIF in the treatment group. Comparing both scenarios, one also finds that the overall magnitude of the competing CIF is reduced by amplifying the baseline CSH of interest. Finally, we note that the empirical power for the competing event approximately keeps the nominal level of 0.05.
Scenario 1 of Table 1. Solid black lines are the true CIFs, solid grey lines are 300 randomly selected Aalen-Johansen estimators. The average of the Aalen-Johansen estimators is drawn as dashed black lines. Dotted lines in the left plots are the corresponding untreated CIFs.
Scenarios 3 and 4: opposite treatment effects on the CSHs
Scenarios 3 and 4 are chosen with β 1 similar to the 4D study, but β 2 > 0 having an opposite effect. We deliberately chose |β 2| > |β 1| and, in scenario 4, transformed cumulative baseline hazards to illustrate that the magnitude of a regression coefficient must be seen in connection with the magnitude of the corresponding baseline hazard. The transformation x ↦ x 2 reduces the magnitude of the competing hazard, because . Figures 5 and 6 confirm a decreasing treatment effect on the CIF of interest and an increasing effect on the competing CIF. These effects are, however, diminished when using as a baseline CSH, because the transformation reduces the magnitude of this hazard. This is, e.g., reflected in the empirical 95% confidence interval for the estimation of β 2, which excludes 0 only in the case of untransformed baseline CSHs. In analogy to this, the empirical power is considerably reduced for the competing event in the transformed case.
Scenario 5: unidirectional treatment effects on the CSHs
We chose β 1 = -0.1 as before and β 2 = -0.3. Figure 7 displays the true CIFs with transformed cumulative baseline hazards . Because the transformation amplifies the competing CSH, but has an opposite effect on the CSH of interest, we see a slowed down increase of the CIF of interest in the control group as compared to the first two scenarios. There is a visible treatment effect on the competing CIF, which is reduced as compared to the control group. In contrast, the CIF of interest evolves at a comparable and low magnitude in both groups before eventually displaying larger probabilities for the treated. In fact, the CIFs of interest cross, i.e., the curve for the treated first runs below the one for the control group and then crosses. However, the early difference is hardly visible due to the overall low magnitude of the CIF of interest.
The eventual difference between the CIFs of interest appears to contradict β 1 < 0, but can well be understood from a simulation perspective as outlined in the Overview of simulation scenarios. This is illustrated in Figure 8. We discuss the left part of the Figure first. It corresponds to the first step of the simulation algorithm and illustrates that events of any type happen later in the treatment group, because both β 1 and β 2 are negative.
Scenario 5, point masses of the empirical event time distribution. Point masses in [0.07, 5.4] of the empirical event time distribution. The left plot shows all event times. The right plot is restricted to times with an event of interest. Bottom of the plots are for the control group with ordinate indicated on the left, top of the plots for the treatment group with ordinate indicated on the right. Black bars are larger than their corresponding bars in the other group, which then are grey.
The plot shows the point masses of the empirical event time distribution for both treatment groups. The Figure has been restricted to [0.07, 5.4] in order to avoid the steep increases of the survival function towards the corners of the observed time interval. Black bars indicate larger point mass as compared to their corresponding bars in the other group. The corresponding bars indicating smaller point mass are grey. We also note that black bars do not really superimpose grey bars and vice versa in the Figure, although this impression is occasionally conveyed by the high density of bars. Figure 8 (left) clearly shows that probability mass is moved towards later event times in the treatment group. This is also reflected by the CIFs, which start to increase later for the treatment group, although this is hardly visible for the CIF of interest.
However, the left plot does not illustrate why the CIFs of interest cross. This is explained in the right plot. It corresponds to the second step of the simulation algorithm and illustrates that treatment shifts probability mass towards type 1 events in general and, more specifically, to later type 1 events as a consequence of β 2 < β 1 < 0, see the Overview of simulation scenarios.
To this end, note that in an actual data situation the empirical counterpart of step 2 of the simulation algorithm will often equal either 0 or 1, if there are no type 1 and type 2 events being observed at the same time. In our data example, both type 1 and type 2 events happened at only 18 out of 322 time points considered in Figure 8. Figure 8 (right) profits from the fact that the binomial probabilities are often degenerated and only shows those times with an observed type 1 event. If such a time is drawn, the event type is almost always determined to be of type 1.
The right plot illustrates two things: Firstly, black colour dominates the upper part of the plot, indicating that the event of interest is more likely to happen in the treatment group. Secondly, the colouring moves from grey to black for the treatment group and from black to grey in the control group. The interpretation is that, initially, event type 1 times are drawn with higher probability in the control group. The picture is being reversed as time proceeds, which leads to crossing CIFs, and eventually the cumulative proportion of type 1 events is larger in the treatment group. Note, however, that there is overall low probability mass on early type 1 event times, which implies that the CIFs of interest initially are hardly distinguishable and rather small.
An analogous plot of Figure 8 (right) for type 2 events shows that probability mass is almost uniformly reduced for type 2 event times by the treatment effect (figure not shown).
Scenarios 6-10
Scenarios 6-10 repeated the previous investigations with a more pronounced treatment effect of β 1 = -0.3. Results are reported in Table 2. The most striking difference to the results from scenarios 1-5 is an increased empirical power for events of type 1. The increased empirical power, however, does not only depend on β 1 = -0.3, but on all aspects discussed above. E.g., both scenarios 6 and 7 have (β 1, β 2) = (-0.3, 0), but the cause-specific baseline hazard for type 1 events is amplified in scenario 7. This leads to scenario 7 having better empirical power than scenario 6. In contrast, power is substantially decreased for the situation studied in scenario 10.
This paper envisaged the CSHs as momentary forces of transition, which suggests an algorithmic perspective towards competing risks. 'Empirical simulations' worked as a proof of concept. The algorithmic perspective was used on the interplay between CSHs and CIFs.
The involved relationship between CSHs and CIFs has inspired a boost in methodological research on testing and direct modelling of the CIFs, e.g., [26–29]. Similar to our paper, a number of recent references have used simulation of competing risks data to investigate these methods. In particular, Gray's [26] test [5, 30, 31] and the Fine-Gray [27] model [22, 32] have attracted attention. Both these exemplary references and the present paper found a subtle interplay between different CSH constellations and subsequent impact on the CIFs.
The difference to the present paper is that a typical simulation study will put the simulation algorithm aside as only a computational tool, once the data have been generated. Thus, one will typically specify the CSHs, use some simulation algorithm [13] for data generation and analyse the data with the methodology at hand. Then, the CSH specifications and the results of the data analyses will be compared. In contrast to this, we have advocated to use the simulation algorithm itself as an operational tool for interpretation. In this context, it is worthwhile to note that the algorithm of our paper does not experience a number of problems which come with the common latent failure time model. E.g., the problem of dependence of the latent times has motivated to include different dependence structures in some simulation studies. There is no such problem in our set-up, which therefore facilitates interpretation.
We discuss practical consequences next. To begin, it is interesting to revisit the results of the 4D study in the light of the simulation algorithm. As stated earlier, the original study finding was a CSH ratio of 0.92 for the event of interest and essentially no effect on the competing CSH. The competing CSH ratio was, of course, not exactly equal to 1.00, but it displayed a slight reduction. Because the treatment effect on the CSH of interest was moderate, and because the Nelson-Aalen estimators of the cumulative CSHs were not exactly proportional between treatment groups, the Aalen-Johansen estimators of the CIFs of interest display a somewhat subtle relationship in the original report. (Figure three in [14], not reproduced here.) E.g., the CIFs cross before displaying a moderate benefit for the treatment group. However, the difference between the CIFs is slight before crossing and must therefore not be overinterpreted. As a consequence, we believe that interpretation of the competing risks situation at hand is well guided by the idealised situation of the simulation scenario 1.
Next, we reiterate that it is crucial that all CSHs are analysed. In the Backgroung Section, we noted that this is often not the case in clinical research. We also illustrated that a comprehensive analysis should not be restricted to hazard ratios only, but that ideally the cause-specific baseline hazards will be considered, too. The bottom line is that the interpretation of the CSH ratio of interest depends both on the baseline CSH of interest, the competing CSH ratio and the competing baseline CSH. In particular, a missing analysis of the competing CSH may have seriously misleading consequences.
An important issue in this context is that of graphically presenting results. A popular and adequate choice are plots of the CIFs, which should, in particular, be plotted for all event types, if all competing risks are harmful. However, it was also illustrated that the connection between these plots and CSH analyses is not straightforward, such that further graphical tools would be helpful. The most obvious choice is to also show the estimated cumulative CSHs as in Figure 2. This should be done much more often. The reason is that the CSHs regulate the stochastic behaviour of the competing risks process as explained in the Methods Section and as illustrated in the Results Section.
In addition, plots such as Figure 8 which highlight the simulation perspective can be useful. The interested reader is also referred to 'vertical modelling' [33] and multistate incidence rate graphics [34]. We also note that 'vertical modelling' aims at modelling the binomial probabilities in step 2 of the simulation algorithm as a smooth curve. This approach is appropriate when taking the simulation algorithm as a starting point to model competing risks data. We reiterate that our aim has been different in that we took the simulation perspective as an operational tool to interpret the standard CSH analyses.
We return to the key fact that all CSHs should be analysed in the presence of competing risks, and that this is often not accounted for in clinical research. These issues raise the question of planning competing risks studies, see [35] for a recent review. If the aim is to compare CSHs, a typical assumption made during the planning phase of the study is that of constant or piecewise constant hazards, e.g., [21, 36, 37]. In addition, it is often assumed that the treatment does not affect the competing CSH, see [35]. In practice, it may be difficult to find an adequate closed form for time-dependent CSHs. Sample size calculations may become quite formidable, if the planned analysis is more complex than testing the CSH of interest only. Whatever the planned statistical experiment is, we note that our empirical simulation approach provides for a general tool to study empirical power and, hence, to decide on sample size, if data of a control group - or of patients similar to the anticipated control group - are available. This is also illustrated in Table 2. Interestingly, Figure 2 suggests that assuming constant CSHs might be a reasonable assumption for the present control group, but it should be pointed out that the simulation approach does not rely on such an assumption. It could be applied without further ado, if the CSHs show a pronounced time-dependency. In particular, one would not need to specify a closed form for the time-dependent CSHs. In closing, we mention that, while we have focused on the Cox model as the major tool to analyse CSHs, other models such as Aalen's additive model may be used for CSHs, too; see [38] for a recent textbook treatment. The simulation perspective of this paper may then applied to results from other CSH models, too.
This paper suggests an algorithmic or simulation point of view for the interpretation of competing risks analyses. This point of view follows the construction of competing risks data based on the CSHs, envisaging the hazards as momentary forces of transition. Concerns on identifiability and plausibility that are common in the latent failure time context do not arise.
Simulation studies based on the empirical probability measure of a real data analysis served as a proof of concept. The simulation point of view was found to be adequate in that it recovered the original empirical law. Manipulating baseline hazards and treatment effects highlighted different aspects of a competing risks analysis.
All CSHs should be analysed, including the cause-specific baseline hazards. 'Empirical simulations' also provide a flexible tool for study planning in the presence of competing risks.
Horton N, Switzer S: Statistical methods in the journal. New England Journal of Medicine. 2005, 353 (18): 1977-1979. 10.1056/NEJM200511033531823.
Le Tourneau C, Michiels S, Gan HK, Siu LL: Reporting of time-to-event end points and tracking of failures in randomized trials of radiotherapy with or without any concomitant anticancer agent for locally advanced head and neck cancer. Journal of Clinical Oncology. 2009, 27 (35): 5965-5971. 10.1200/JCO.2009.22.3685.
Kim H: Cumulative incidence in competing risks data and competing risks regression analysis. Clinical Cancer Research. 2007, 13 (2): 559-565. 10.1158/1078-0432.CCR-06-1210.
Grunkemeier GL, Jin R, Eijkemans MJ, Takkenberg JJ: Actual and Actuarial Probabilities of Competing Risks: Apples and Lemons. The Annals of Thoracic Surgery. 2007, 83 (5): 1586-1592. 10.1016/j.athoracsur.2006.11.044.
Dignam JJ, Kocherginsky MN: Choice and Interpretation of Statistical Tests Used When Competing Risks Are Present. Journal of Clinical Oncology. 2008, 26 (24): 4027-4034. 10.1200/JCO.2007.12.9866.
Kalbfleisch JD, Prentice RL: The Statistical Analysis of Failure Time Data. 2002, John Wiley & Sons
Andersen PK, Borgan Ø, Gill RD, Keiding N: Statistical models based on counting processes. 1993, Springer Series in Statistics. New York, NY: Springer
Andersen P, Abildstrøm S, Rosthøj S: Competing risks as a multi-state model. Statistical Methods in Medical Research. 2002, 11 (2): 203-215. 10.1191/0962280202sm281ra.
Putter H, Fiocco M, Geskus R: Tutorial in biostatistics: competing risks and multi-state models. Statistics in Medicine. 2007, 26 (11): 2277-2432. 10.1002/sim.2710.
Mathoulin-Pelissier S, Gourgou-Bourgade S, Bonnetain F, Kramar A: Survival end point reporting in randomized cancer clinical trials: a review of major journals. Journal of Clinical Oncology. 2008, 26 (22): 3721-3726. 10.1200/JCO.2007.14.1192.
Koller MT, Stijnen T, Steyerberg EW, Lubsen J: Meta-analyses of chronic disease trials with competing causes of death may yield biased odds ratios. Journal of Clinical Epidemiology. 2008, 61 (4): 365-372. 10.1016/j.jclinepi.2007.05.009.
Gill RD, Johansen S: A survey of product-integration with a view towards application in survival analysis. The Annals of Statistics. 1990, 18 (4): 1501-1555. 10.1214/aos/1176347865.
Beyersmann J, Latouche A, Buchholz A, Schumacher M: Simulating competing risks data in survival analysis. Statistics in Medicine. 2009, 28: 956-971. 10.1002/sim.3516.
Wanner C, Krane V, März W, Olschewski M, Mann J, Ruf G, Ritz E: Atorvastatin in patients with type 2 diabetes mellitus undergoing hemodialysis. New England Journal of Medicine. 2005, 353 (3): 238-248. 10.1056/NEJMoa043545.
R Development Core Team: R: A Language and Environment for Statistical Computing. 2009, R Foundation for Statistical Computing, Vienna, Austria, [ISBN 3-900051-07-0], [http://www.R-project.org]
Allignol A, Beyersmann J, Schumacher M: mvna: An R Package for the Nelson-Aalen Estimator in Multistate Models. R News. 2008, 8 (2): 48-50. [http://www.r-project.org/doc/Rnews/]
Lumley T: The survival Package. R News. 2004, 4: 26-28. [http://CRAN.R-project.org/doc/Rnews/]
Allignol A, Schumacher M, Beyersmann J: A Note On Variance Estimation of the Aalen-Johansen Estimator of the Cumulative Incidence Function in Competing Risks, with a View towards Left-Truncated Data. Biometrical Journal. 2010, 52: 126-137. 10.1002/bimj.200900039.
Allignol A, Schumacher M, Beyersmann J: Empirical Transition Matrix of Multistate Models: The etm Package. Journal of Statistical Software. 2011, 38 (4): 1-15.
de Wreede LC, Fiocco M, Putter H: The mstate package for estimation and prediction in non- and semi-parametric multi-state and competing risks models. Computer Methods and Programs in Biomedicine. 2010, 99: 261-274. 10.1016/j.cmpb.2010.01.001.
Schulgen G, Olschewski M, Krane V, Wanner C, Ruf G, Schumacher M: Sample sizes for clinical trials with time-to-event endpoints and competing risks. Contemporary Clinical Trials. 2005, 26: 386-395. 10.1016/j.cct.2005.01.010.
Grambauer N, Schumacher M, Beyersmann J: Proportional subdistribution hazards modeling offers a summary analysis, even if misspecified. Statistics in Medicine. 2010, 29: 875-884. 10.1002/sim.3786.
Tsiatis A: A nonidentifiability aspect of the problem of competing risks. Proc Natl Acad Sci USA. 1975, 72: 20-22. 10.1073/pnas.72.1.20.
Prentice R, Kalbfleisch J, Peterson A, Flournoy N, Farewell V, Breslow N: The analysis of failure times in the presence of competing risks. Biometrics. 1978, 34: 541-554. 10.2307/2530374.
Aalen O: Dynamic modelling and causality. Scandinavian Actuarial Journal. 1987, 00000: 177-190.
Gray RJ: A class of k-sample tests for comparing the cumulative incidence of a competing risk. Annals of Statistics. 1988, 16 (3): 1141-1154. 10.1214/aos/1176350951.
Fine J, Gray RJ: A proportional hazards model for the subdistribution of a competing risk. Journal of the American Statistical Association. 1999, 94 (446): 496-509. 10.2307/2670170.
Klein J, Andersen P: Regression Modeling of Competing Risks Data Based on Pseudovalues of the Cumulative Incidence Function. Biometrics. 2005, 61: 223-229. 10.1111/j.0006-341X.2005.031209.x.
Scheike TH, Zhang MJ, Gerds TA: Predicting cumulative incidence probability by direct binomial regression. Biometrika. 2008, 95: 205-220. 10.1093/biomet/asm096.
Freidlin B, Korn EL: Testing treatment effects in the presence of competing risks. Statistics in Medicine. 2005, 24: 1703-1712. 10.1002/sim.2054.
Bajorunaite R, Klein JP: Comparison of failure probabilities in the presence of competing risks. Journal of Statistical Computation and Simulation. 2008, 78 (10): 951-966. 10.1080/00949650701473791.
Latouche A, Boisson V, Porcher R, Chevret S: Misspecified regression model for the subdistribution hazard of a competing risk. Statistics in Medicine. 2007, 26 (5): 965-974. 10.1002/sim.2600.
Nicolaie M, van Houwelingen H, Putter H: Vertical modeling: A pattern mixture approach for competing risks modeling. Statistics in Medicine. 2010, 29 (11): 1190-1205.
Grambauer N, Schumacher M, Dettenkofer M, Beyersmann J: Incidence densities in a competing events analysis. American Journal of Epidemiology. 2010, 172 (9): 1077-1084. 10.1093/aje/kwq246.
Latouche A, Porcher R: Sample size calculations in the presence of competing risks. Statistics in Medicine. 2007, 26 (30): 5370-5380. 10.1002/sim.3114.
Lakatos E: Sample Sizes Based on the Log-Rank Statistic in Complex Clinical Trials. Biometrics. 1988, 44: 229-241. 10.2307/2531910.
Barthel FMS, Babiker A, Royston P, Parmar MKB: Evaluation of Sample Size and Power for Multi-arm Survival Trials Allowing for Non-uniform Accrual, Non-proportional Hazards, Loss to Follow-up and Cross-over. Statistics in Medicine. 2006, 25 (15): 2521-2542. 10.1002/sim.2517.
Martinussen T, Scheike T: Dynamic Regression Models for Survival Data. 2006, New York, NY: Springer
The pre-publication history for this paper can be accessed here:http://www.biomedcentral.com/1471-2288/11/86/prepub
This work was supported by grant FOR 534 from the Deutsche Forschungsgemeinschaft.
Freiburg Center for Data Analysis and Modeling, University of Freiburg, Germany
Arthur Allignol
& Jan Beyersmann
Institute of Medical Biometry and Medical Informatics, University Medical Center Freiburg, Germany
, Martin Schumacher
Department of Medicine 1, Division of Nephrology, University of Wuerzburg, Germany
Christoph Wanner
& Christiane Drechsler
Search for Arthur Allignol in:
Search for Martin Schumacher in:
Search for Christoph Wanner in:
Search for Christiane Drechsler in:
Search for Jan Beyersmann in:
Correspondence to Arthur Allignol.
AA, MS and JB conceived the study. AA carried out the implementation. JB and AA drafted the first version of the manuscript. All authors contributed to the writing and approved the final version.
Authors' original submitted files for images
Below are the links to the authors' original submitted files for images.
Authors' original file for figure 1
Allignol, A., Schumacher, M., Wanner, C. et al. Understanding competing risks: a simulation point of view. BMC Med Res Methodol 11, 86 (2011) doi:10.1186/1471-2288-11-86
Received: 19 January 2011
DOI: https://doi.org/10.1186/1471-2288-11-86
Simulation Algorithm
Baseline Hazard
Empirical Power
Simulation Point
Compete Risk Analysis


text:
VMS puede referirse a:

 Las siglas de Virtual Memory System, un sistema de memoria virtual, una tarea del sistema operativo en la que se usa un espacio de intercambio (swap) para que los procesos crean que hay más memoria RAM que la disponible; o

 OpenVMS, o simplemente VMS sistema operativo de Hewlett-Packard, originalmente creado por Digital Equipment Corporation (DEC) para sus mini-computadoras VAX.

Siglas de informática

redpajama_set_name: RedPajamaWikipedia


National To All Those With High Hopes Of RGB Free SCOTUS, Don't Get Your Hopes Up!
Discussion in 'Firearm Laws & Legal' started by arakboss, Feb 11, 2019.
She may linger for some time based on precedent set by many other old timer Justices: What Happens if Ruth Bader Ginsburg Remains Too Sick to Work?
As I see it, there are two paths that could lead to an RGB free court with in the next couple of years. Death or a Complete Blue Wave in the 2020 elections. I won't comment on which would be better for 2A supporters.
"Justices who anticipate that they will interact with each other year after year can expect a concession in one case to be reciprocated later on."
Flymph, NW Backpacker, Ura-Ki and 2 others like this.
Are you having a convo with yourself?
uberguy, Papa, Flymph and 15 others like this.
Papa, Flymph, NW Backpacker and 10 others like this.
If you could like your own posts, you wouldn't need any of us!
uberguy, Papa, Flymph and 4 others like this.
Papa, Flymph, NW Backpacker and 3 others like this.
I don't need no steenkin' likes!!
Papa, Flymph, NW Backpacker and 6 others like this.
NW Backpacker and Ura-Ki like this.
uberguy, Papa, NW Backpacker and 2 others like this.
Nope just the same ol redundant sheit!
Flymph, NW Backpacker, Ura-Ki and 1 other person like this.
bee boo bot, who's keeping track anyway?
ZigZagZeke, NW Backpacker, Ura-Ki and 1 other person like this.
I think most of us share that view but according to the article I linked to RBG could be a drueling vegetable and still be acting on the bench thanks to her aides.
Seems to me a SCOTUS Justice should actually be in attendance with the other eight justices... I understand recuperation, but even recuperation has its limits. If she's incapable of attending on a regular basis and thus impacting her ability to discharge her duties, then perhaps it's time to hang up the robe.
Flymph, Caveman Jim, NW Backpacker and 3 others like this.
One day it will probably happen.
And this begs the real question, who is speaking with her voice in the hallowed chambers of our highest court? And, how is it that this is even allowed!
Caveman Jim, NW Backpacker and nammac like this.
Caveman Jim, NW Backpacker and Ura-Ki like this.
I haven't looked at the ages of the conservative SC judges but if any are over age 60 or 65, Trump should ask them if they'd consider turning in their resignation effective "on the day their replacement is confirmed by the Senate".


As a local business, we love working with businesses from Derby too. We want to get you to where you want to be. Ahead of your competitors, generating enquiries from your website and closing more sales that ever before.
In a world where we search Google to find out the weather, look up route guidance and find local businesses and services we need, it is no surprise that Google is integral to the way we generate sales.
Sound interesting? Contact us to find out how SEO can improve your business.
Discover our powerful low cost marketing packages.


text:
REVIEW: Baskin Robbins Reese's 3-Pointer
March 6, 2017 March 5, 2017 / seansskillet
Everyone has their favorite things, and for me, three of the greatest achievements of man are basketball, ice cream, and peanut butter. As beautiful as all of these elements of life are on their own it's not too often that all of them come together. Sure, peanut butter is great in ice cream, and Reese's will release occasional limited cups in tandem with the NBA or NCAA, but for all three of these things to combine into one is something of pure magic; and in tandem with March Madness Baskin Robbins is making my dreams a reality with their newest flavor of the month – Reese's 3-Pointer. This made-for-Sean E scoop combines Reese's Pieces candies, Reese's Peanut Butter Cups, and a Reese's Peanut Butter and Chocolate ribbon all swimming in a sea of chocolate ice cream.
The chocolate ice cream is your standard affair – a smooth light milk chocolate that isn't over the top sweet, bitter, or remarkably rich. It's much more basic than the chocolate fudge base Baskin Robbins have at their disposal, and while it isn't a bad base ice cream it's definitely the most underwhelming aspect of this scoop.
The mix ins utilized here are a real treat for those with a love for the PB cup and the most dominant of them is the chocolate peanut butter ribbon. The ribbon has a smooth, almost flaky texture that reminds me of a soft serve cone that has been dipped in a chocolate shell with the way that it melts on the tongue. It's a solid peanut butter-infused chocolate, and with the Reese's spread being the second ingredient on the list it's no surprise how powerful the flavor comes through. it does a great job of boosting up the ice cream and weaving the Reese's profile into nearly every bite.
The Reese's Pieces are a bit of a miss in this format; they freeze pretty hard and lose all of their signature creamy and oiliness that makes them a movie theater staple. The chunks of peanut butter cup are the best part of this flavor and pop with the nutty saltiness you know and love, working with the ribbon to really shine against the mellow chocolate base.
The coolest part about this flavor is that it is literally like eating an ice cream version of a Reese's Peanut Butter cup. While many flavors will utilize chocolate and peanut butter (like BR's own great Peanut Butter 'N Chocolate) or peanut butter cups as a mix in, this one eats liked the beloved Hershey's classic turned into a frozen scoop-able dessert and is a treat for Reese's lovers like myself. While it's a couple of execution points away from a full on alley oop, it's a damn fine flavor that most people will be happy stuffing their nutritional stat sheet with.
baskin robbins reeses 3-pointer, chocolate, flavor of the month march 2017, peanut butter, reeses, reeses pieces, review
← REVIEW: Cap'n Crunch's Limited Edition Blueberry Pancake Crunch
REVIEW: Ben & Jerry's Urban Bourbon →

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: Functional equivalent to the concurrent multimap In another question, I asked about concurrent multimaps for Java.
Is there some functional programming (immutable) pattern that can be used instead in a Scala or Clojure program? I image that the Scala solution will probably involve actors and the clojure one an atom, ref or agent, but there may be a better way. Since both languages allow "falling back" to Java interop and just using a Java solution, I can use whatever answer I get to my first question, but that will not adhere to the functional programming paradigm. How do Haskell programmers solve this?

A: Standard Clojure maps and sets are immutable (and persistent)[1], so they work just as well in concurrent programs.  You may want to store them in a ref/agent/var/atom depending on your requirements, and you can just update the ref/agent/var/atom as ever.
You can have a more mutable map, if the values are actually refs, like this:
{:a (ref #{1 2 3})
 :b (ref #{4 5 6})}

In this case, you'll be able to actually add values to already existing key (in transaction of course).  Addition and removal of keys will still return new maps, which would share the same refs as the original maps, and so changes to one of them will be visible to the others:
user=> (def mmap {:a (ref #{1 2 3}) :b (ref #{4 5 6})})
#'user/mmap
user=> mmap
{:a #<Ref@be0446: #{1 2 3}>, :b #<Ref@10aa282: #{4 5 6}>}
user=> (def mmap2 (assoc mmap :c (ref #{7 8 9})))
#'user/mmap2
user=> mmap2
{:c #<Ref@405f6: #{7 8 9}>, :a #<Ref@be0446: #{1 2 3}>, :b #<Ref@10aa282: #{4 5 6}>}
user=> mmap
{:a #<Ref@be0446: #{1 2 3}>, :b #<Ref@10aa282: #{4 5 6}>}
user=> (dosync (alter (:a mmap2) conj 0))
#{0 1 2 3}
user=> mmap
{:a #<Ref@be0446: #{0 1 2 3}>, :b #<Ref@10aa282: #{4 5 6}>}
user=> mmap2
{:c #<Ref@405f6: #{7 8 9}>, :a #<Ref@be0446: #{0 1 2 3}>, :b #<Ref@10aa282: #{4 5 6}>}

[1] That is, adding/removing/modifying keys, and values actually return a new map, without changing the original.

A: A functional data structure is an immutable data structure. Immutable data structures do not have problems with concurrency because they cannot be modified.

A: There is an implementation in Scala in Akka library
https://github.com/akka/akka/blob/v2.3.0/akka-actor/src/main/scala/akka/util/Index.scala

redpajama_set_name: RedPajamaStackExchange


text:
The TEN7 Podcast – Episode 69
Adam Hale of Summit CPA Group: Thinking Differently About Accounting
Ivan Stegic — September 11, 2019
Your browser does not support the audio element. TEN7-Podcat-Ep-069-Adam-Hale-of-Summit-CPA-Group.mp3
How many accounting firms do you know that do value-based pricing, or embrace being a distributed company? Adam Hale, partner and COO of Summit CPA, the premier CPA for digital agencies enlightens host Ivan Stegic on how his progressive firm is changing the way people think about accounting.
Adam Hale of Summit CPA Group
Company naming tips to make yourself look bigger
A Jerry Maguire story, with CPAs
The life of a COO, keepin' things movin'
Their accidentally distributed accounting firm
Summit is the misfits at accounting conferences
Changing the way people think about accounting
Summit is the premier CPA for the digital agency industry
Introduction to the Bureau-verse
What is a Virtual CFO?
Value-based billing, no contracts
Their new podcast, the Virtual CPA Success Show for Creative Agencies (podcast launching Sept 2019)
Accounting + communications = popular at parties
Accounting now loves big data, but forgot to teach people how to explain it
Growing a family, on an accountant's schedule
Lullabot
Carl Smith of Bureau of Digital
Digital Dollars and Cents: A Virtual CFO's Playbook to help Digital Companies Create a Financial Roadmap to Success by Jody Grunden
Yonder conference
Summit CPA's value-based pricing policy
IVAN STEGIC: Hey everyone! You're listening to the TEN7 podcast, where we get together every fortnight, and sometimes more often, to talk about technology, business and the humans in it. I am your host Ivan Stegic. My guest today is Adam Hale, who is partner and COO of Summit CPA Group, with global headquarters in Fort Wayne, Indiana. Adam majored in accounting in college, but also minored in communications, so we're going to see if I'm able to get him out of his shell in today's episode. Adam, welcome. It's a great pleasure to have you on the podcast.
ADAM HALE: Thank you. So, do I get to talk now? The communication piece. I just want to make sure. One-word answers.
IVAN: [laughing] Yes, one-word answers, that's the preferred mode of communication here. [laughing] So, Summit CPA . You are a partner and you are also COO. What the heck is Summit?
ADAM: That can go in a couple different directions. So, in a broader sense, I guess, we are the defender of profits, is the way I look at it. So, we are a virtual CFO firm, and our purpose is really just helping businesses clarify direction. Our background is obviously in finance, we are a CPA firm, and so, we do a lot with forecasting and helping clients figure out business. A lot of times clients feel like they have a vision, they have goals, they have targets. We just help make those a reality and help them look ahead through a financial lens.
IVAN: Why is it called Summit?
ADAM: That's a good question. We actually started it in the Summit City, which is in Fort Wayne. It's a city built up on an actual summit. But the reason being, most CPAs, like law firms, have the name of the owner in them. So, when we first started Summit CPA back in 2002, my partner—actually I was an employee at the time—rather than calling it Grunden Hale or just Grunden—that's his last name by the way . . . [laughing]
IVAN: [laughing] Hi Jody.
ADAM: [laughing] Yeah. Rather than do that, Jody was very visionary with a lot of what we do here at Summit, both on how we price and how we think about things, and one started with the way we named the company. Jody from the very get go was like, "Hey, I don't want it to be about me or be about you, I want it to be about our entire company. And I want people, whenever they think about us, they don't know if there are two of us or a thousand of us." So, again, just straight from the very beginning of the creation of Summit CPA, that's the kind of vision that we went with right out of the gate. So, he just wanted to be bigger than us, I guess.
IVAN: And you just mentioned that you're originally an employee, but you're a partner, but you also talk about being there right at the beginning and founding it. So, how did that work out? I know you had one job before Summit, right? Right out of college?
ADAM: Yeah, actually I was with Jody. So, we have a little, I call it our "Jerry McGuire moment." I don't know if you're familiar with that movie? [laughing]
IVAN: Love that movie. [laughing]
ADAM: So, he completed me. [laughing]
IVAN: [laughing] We're going to have to have Jody on the show and ask him if that's true.
ADAM: Yeah, well, luckily for him, he gets to be Tom Cruise in this little story. I'm Renee.
So, right out of college I interviewed with a couple different places. I met with Jody and another person, really liked their personality, their style, it wasn't super uptight, so I was pretty excited about that, and took the opportunity. Within like three months of working there—it was a regional CPA firm—and he was running that office. For whatever reason there was a little bit of a falling out with how things were being run. Jody was like, "Hey, they wanted me to let you go. They wanted me to do all this stuff." Of course, I was a great team member, so it's not like they wanted to let me go, they just didn't really believe in Jody's style.
In the accounting world, it's "eat what you kill." Everybody puts in 80-90 hours a week and the partners are supposed to lead by example, and Jody was all about leverage, building a business, instead of being self-employed. So, that's kind of the way it started. He left and when he left, he just said, "Hey, you want to come with me?" And I had some conversations with the existing CPA firm owner, didn't really like the way they went, showed a lot of character on Jody's side, so I decided, yeah, I would follow him and his goldfish to the new place. So, that's what we did. So, I was employee number one, probably for about two or three years, and then by happenstance in 2006 there was an opportunity for me to take on a bigger role, and we were having more people, so that's what I did.
IVAN: Good for you, that's amazing. So now, Jody and Adam are partners in Summit CPA, and your role is COO. So, Chief Operating Officer. Tell me what your day looks like. What are you mostly concerned with as the COO?
ADAM: COO, that's the integrator, that's the person that just makes shit happen. Jody, again, he's a very vision driven type of a person, so he comes up with a lot of great ideas, a lot of crazy ones too. So it's really my role, my job, to listen and then just make sure that that gets translated to the team, and that we can execute with it.
So, a typical day for me . . . I work from home, so, the first couple hours of my day is just getting kids ready for school, making sure they have their stuff, you know how that goes. So, I get a pretty late start to the morning, but in terms of the work, it's really just happiness. I know that especially in the digital space, like Director of Happiness is like a thing sometimes.
But for me, it's about making sure that the team and our clients are both in aligned with where our core values are, and the direction of the company. And that exists in everything, from how we execute on different things, what our deliverables are, how we're communicating with our clients, how we communicate with team. So a day for me is typically just tons of meetings. So, I'm meeting either with internal team, just about what's going on with their clients, and how I can help and support them. And then also some client-facing activities as well, where I'm just adding weight to a conversation, bringing in my experiences, doing those kind of things.
IVAN: You're kind of greasing the wheels, aren't you?
ADAM: That's the job man. So, that's what I try to do. Keep things moving.
IVAN: You guys are headquartered in Indiana, as you talked about, Fort Wayne. Were you always a distributed company?
ADAM: No. In fact, we were probably brick and mortar for almost the first ten years of operations. Partly because we just didn't know any better and didn't know there was an alternate solution. And, in fairness, technology wasn't the greatest back then. I was using dial-up internet, I think, at my first job there. So, the internet connections, people weren't used to doing video conferences. So, technology's definitely helped out.
But the way that worked is—it's funny—my partner actually bought the building that we were in, and through our growth, we actually we grew out of the building, and we had to do a bunch of construction. So, we kicked everybody out of the office. And so, Jody in his book, he talks a lot about his fish tank, because he was really proud that when he did the remodel and the rebuild, he put this really elaborate fish tank in there. He calls it his $100,000 fish tank, because we spent $100,000 on the remodel.
And then what we found out is that when it was time to bring back everybody into the office, everybody's like, "No, I'm pretty good working at home now." So, we got a lot of pushback about people working from home because they weren't nested, they didn't set up all their stuff and do all those kind of things. But through this process, they had to stay at home for three or four months, so they had to make it work. And once they did—myself included—there was a big pushback for going distributed, and when we went through that process, the majority of us ended up staying home. The reason why that was a thing for us is, is we had a couple people on the team that had moved to different locations, they moved out of state, and we wanted to keep them on the team, so we were going to figure out a way to make it work.
It was a little disjointed at first. In distributed teams, culture's a big thing, and whenever you have a physical location, you end up with the subculture. And the distributed folks on our team felt that. And so, by making this addition so that we could bring more people in office, we ended up actually doing the complete opposite, and then it was soon after we kind of just fully embraced the, "Hey, let's just everybody work from home, and let's just intentionally hire that way." And that's what we did.
IVAN: That sounds like a parallel universe story to the one that we had in becoming distributed. We were also in an office space that we owned, and through happenstance decided to try being distributed and then no one came back. [laughing]
ADAM: [laughing] Funny how that works.
IVAN: [laughing] Yeah, it is. And I was also against trying to be distributed at the outset as well, and now, now it's like the only way I think we should ever do business. But maybe that will change again at some point. I think being distributed is more common in the industry you work in, in digital space, and an agency such as my own. It seems to be not very common when it comes to a bunch of accountants and a bunch of finance people. Am I wrong?
ADAM: Oh, no. Whenever we go to conferences, we are definitely an outcast in the room, and we always have been, in terms of how we bill and do things. But whenever we speak to accounting firms, and we talk about being distributed, they just look at us like we're crazy. And, we probably are a little bit, but it works out super well for us. And then, whenever we walk through the advantages and how we work together, and the fact is everybody works from home anyway, you know, a day or two a week. So, it's not that big of a leap these days.
Security is obviously a big concern, so we talk through what we do for that in order to make sure everything's locked down. And then once we talk for a little bit, the conversation actually turns. It's just the bigger firms that can't figure out how to change their ways, but all the smaller firms that we work with, they're like, "You know what, I think that's the direction we're going to go." So, it's changing.
Actually, that's what our mission statement is at Summit CPA, is: changing the way people think about accounting. So, we want that to be the way our team thinks about how we work. We want that to be the way our colleagues think about accounting, and then our customers. We want our customers to expect the type of service that we deliver. We want everybody to push that into whatever accounting firm they're working with. They should expect this kind of service.
IVAN: As far as I'm concerned, you're the premier CPA for the digital agency industry. Everyone I know, who are our competitors and friends, they use Summit. Why focus on this particular industry?
ADAM: The history of it was—and I think we've talked about it before—but Lullabot actually ended up being our first client, and I think it hit Jody's spam filter.
IVAN: [laughing] Oh, did it really?
ADAM: Yeah. [laughing] I remember him coming into my office, it was like close to the end of the day, and he was just like, "Hey, I got this email. This company's not from Fort Wayne." So, back then it was like, "Okay, that's cool. We've got a couple folks that are outside of the area." So, he's like, "You think we should just give them a call?" We were like, "Yeah, yeah," like everything else we do, we're like, "Yeah, let's give it a shot." And so, we were talking to them for a while and we thought they were just pitching us on our website and how horrible it was at the time, [laughing] although we thought it was great. But oddly enough, no, they were asking, "Hey, could you be our CFO?"
And then they explained to us that they were distributed, and so we went down that path of how that worked. Because we were telling them, "You know, you're kind of far away. We can't come see you." And they were like, "No, that's cool. This is the way it would work." And so, they really opened our eyes to a different way to do business. And so, it was a great experience, great people. We were pretty fortunate in that regard.
Then the other thing that happened was, the industry itself is so collaborative and very open to working together, just in general, which is, by the way, not the way most industries work. You know, if they find out you work with somebody else that knows somebody, it's kind of a scary thing for a lot of different industries. Not so much in the creative space, that's not what we found. In fact, they referred us to a couple of our other—I'll call them anchor clients—in the space, and then they referred a couple people. So, through just referrals, we had this great launchpad for just working with great people and great ideas and the way they operated and did everything.
And then on the financial side, it was a total cheat. Because you run exactly like a CPA firm. So, what Jody and I are super passionate about, is running our firm and growing it and doing all these things in the metrics, they're the exact same ones that you have.
So, it was very natural for us, and something that we were able to speak about very easily, and be able to draw our own comparisons and bring things into it. And then as we created this network of other agencies, we were able to talk about industry best practices and standards, and what we've seen work, and then that's grown to where we work with at least 70 digital agencies on a weekly basis, helping them through forecasting and being that VCFO. It's been great.
IVAN: That's one of the things I appreciate most about the workshops that you have, is, the ability to provide a metric, that is based on actual data from actual agencies that are similar to the agency I run. There's a lot of power to that. And I know when we were in Bend, you said with great confidence, the average rate that a digital agency has right now based on the last year of data is $162 per hour. Right? There's a value to that. I don't think any of your competitors can say that.
ADAM: No. And just the vernacular and understanding the culture, because again, there's different things that, once you get to know. What I really love about Summit and what we do, and what I think is different from most CPA firms is the level of involvement that we have with our clients. We join the leadership team. We don't want to just be the finance person in the room or be the person that you come to whenever you have a question that's related to finance. We listen to what's going on in the company, how things are going. And then we just work that back into the forecast.
So, it's not always sometimes about how the other person did it. It's like, this is the average, this is where it should be, and here's why. Here's what we've seen work/not work, and this is why it might be best fit for you based on everything that we know about you. So, it really is a lot of industry knowledge and experience, but then it can be still tailored for the individual agency, if that makes sense.
IVAN: That does make sense. And, when Lullabot first came to you, were you distributed at that time?
ADAM: No. That's why I say, we were totally in the dark with the whole concept. It was really eye opening. Actually, that's how we got to know Carl from the Bureau [of Digital], is that they ran a conference called Yonder, and we ended up going out to San Diego and being a part of Yonder, which was a distributed company. So, it wasn't really geared specifically toward agencies. We had a kickball company there. We had all kinds of different businesses.
And at the time, because of Lullabot, we were going distributed. So, we weren't quite all the way there, but we went to that conference to get best practice ideas on how to interact with the team and all those kind of things. I happened to actually be sitting right next to Carl at the conference and we were just having a good time, joking and talking about finance, and that kind of stuff, and whenever we got back, I asked Jody to reach out to him, or he reached out to Jody, I can't remember what it was. And Carl's like, "Hey, I'm part of this group, this community." And, the Bureau is fantastic.
IVAN: It is. Absolutely.
ADAM: Every industry should have it. It's kind of like group thing, group therapy. It's amazing.
IVAN: It is amazing.
ADAM: You've been to a couple, right?
IVAN: Yeah.
ADAM: Yeah. So, he didn't want someone to come in and just pitch the group or be this thing. He's like, "Hey, I want somebody just to come in and help us understand the finances, because this topic comes up a lot in our conversations." So, that's what we did. We thought, "Hey, this is a good opportunity to learn and grow and have some of our clients there, and contribute to the community, and that's what we did. And Jody's an empty nester so, yeah, you'll always hear Jody at those things. He's at almost every single one. I do whatever I can. [laughing] I've got four young children, so I've got a lot to do there, but Jody is great. He takes one for the team for us. Everybody knows his Hawaiian shirts. That became sort of his theme. He's our mascot.
IVAN: I'm kind of surprised he didn't have a picture of the Hawaiian shirt in the book he published.
ADAM: That's true. Wow.
IVAN: Maybe in the next one.
ADAM: Yeah, he's working on a second book, so yeah, you're right, maybe that should be the cover. The Hawaiian shirt. I'll have to let him know.
IVAN: [laughing] You gotta write that down. So, you mentioned the acronym VCFO, Virtual CFO. For what it's worth, I love that term. I feel like I know exactly what it means. That's good description. But, talk to me about what a VCFO does in your mind, and what does a company like mine get from a VCFO? Are you my VCFO? Is Jody my VCFO? How does that work? What is it and how does it work?
ADAM: It's a great question. It should, just by the words alone, it should define itself. What we found is that back in 2006 or so, whenever we—I don't want to say we coined the phrase or invented it—but we were one of the very first to use it, and it was just because we were cheap in terms of SEO, we couldn't use a calendar CPA or any of those things. So, what it meant to us was, exactly what it says, being the chief financial person in the room, to be able to explain what's going on with the business. Because everything has tentacles into the finance side. What we found over the years is, every CPA firm now has fractional or VCFO on their website. And to them a lot of times it means back office accounting, which we can do. If you need help paying your bills, managing cashflow. That's a part of our service. But that's not core to what we do.
And then there's also those folks out there that are specialists. They come in, they do a heavy level consulting for a lot of money up front, and then they leave you to figure out the rest. That's not what we do either. So, our Virtual CFO service, it's almost like Staff Aug [Staff Augmentation]. So, am I your CFO? Not anymore. I'm greasing the wheels, as you said, just kind of moving things along. Jody's team mascot, so he's always on the road, kind of doing those kind of things. But we've got a team of just great, great people that have a wide variety of experience, and we bring them in-house, show them what we're looking at, how we do things. So, it's a pretty consistent feel from CFO to CFO, in terms of client experience.
But the things that we help with are jumping in, first things first. Making sure garbage in/garbage out. Making sure everything's clean, set up, so we can compare you to the industry, figure that out. Then we go through and we do heavy forecasting. So, we're asking about goals and vision and all those things, and if you don't know, we can help you craft those and figure them out.
We're like the GPS: you tell us where you want to go, we help you figure out the best path to get there. But beyond that, we jump in the seat next to you and we're your copilot. So, as life happens, as you have to go left instead of right, we help you get back on track and move things around. That's our job. So, we're helping people with profit sharing plans, M&A (mergers and acquisitions) deals, financing for bank, trying to make sure we're getting the financing that we need.
We're also helping with scaling up and down, unfortunately. Sometimes you have to scale things back. Those are common things that we work with. We also help out with bizdev, setting them on a path, in a direction, giving them the tools that they need, so they know what to sell, and how to sell it in terms of pricing, and things of that nature. So, we're very involved in that process as well. And then again, we can fill in the back office stuff. So, if your COO is the one doing all of the bill pay, and doing a lot of those tactical things on the finance side, we can take those over. So, we manage cashflow, and pay bills for probably about one third of our clients.
In some instances, we'll do invoicing. We do tax work for probably about 80-85% of our client base. So, that's tax planning projections and prep. So, again, every single month we do a soft tax plan, and then around this time of year we're dialing things in, making sure everything's where it's supposed to be, setting aside money for taxes, helping you do that as you go, and then our tax team comes in and works really closely with our CFO team to make sure that we're minimizing taxes, while we're maximizing profits on the other side of the business.
IVAN: You mentioned earlier, when we started talking, that the way that Jody likes to operate and the way that you operate is that you have a different kind of way of billing and thinking about pricing structure, and so on. How is that different than the norm? What does the structure look like with you?
ADAM: Everything is value based and fixed fees, so there are no surprises in terms of billing. We charge a flat fee on a weekly basis. There's no contract, length of service for a year, any of that kind of stuff. We just ask for 30 days' notice and we'll help with any kind of transition that you need. Fortunately, that doesn't happen very often unless we're helping clients through an M&A deal where they're selling out. But if and when it does, there's no commitment on our client side. They just say the word.
So, what's unique about that is, again, in our space, in the accounting world—although they're starting to come around, and they're starting to do some flat fee services—we do everything on a flat fee, and so usually it's hourly billing. And so, what happens is, everybody's your best friend at the beginning of the engagement, they ask a lot of great questions, and you do a lot of cool stuff, and then they get the bill for the quarter hour here/there and stop calling. So, that's natural. I would do the same thing.
IVAN: [Laughing] Oh, yeah.
ADAM: There's a reason why they say "Don't call the attorney just yet." [laughing] We didn't want to have that. We knew that the key to our success was access and communication with our client, and it was more about the long-term relationship than it was about picking up the quarter of an hour. And so, we made a very deliberate effort right out of the gate, shortly thereafter, I mean it took a few learning lumps and man we really screwed up our pricing pretty bad at the beginning. We just were not charging much at all. I think we finally got that dialed in, but it took a little while. But I think that's a big differentiator as well; you know what to expect from us. We advocate budgeting and forecasting, so makes sense that we would do the same for our service.
IVAN: Absolutely it does. One of the things I took to heart from the workshop that you had in Bend was the fixed fee expected dollars that are going to be spent, and we started migrating our clients from being time and materials that were on maintenance contract to fixed fee. We also went ahead and removed our annual commitments as well, and boy does that make a difference, and man is that conversation easy when there's no annual negotiation and no annual fee increase, and you're not locked in. That really makes a difference.
ADAM: Oh yeah. It lets your value speak for itself. And that was really important to us too. If a client wasn't seeing the value, and we value bill, we understand. Sometimes there's a difference of opinion there, or maybe they need something else that you can't offer, that's fine.
IVAN: So, I hear you have a podcast coming out with a great name. Is that true?
ADAM: Of course, it's a great name. It's the Virtual CPA Success Show for Creative Agencies. I don't have a start date just yet, but it should be launching sometime in September, so this month. We're just getting out a couple episodes and working out the kinks and then we should be live. We'll do a couple of those each month.
IVAN: That sounds amazing. So, visit the website to find out more. That's summitcpa.net. That's where you'll find it. You've been at Summit for a long time. What were you doing "BS" (before Summit)?
ADAM: Well.
IVAN: You were at that agency, weren't you? Or that accounting firm?
ADAM: Yeah, that's what I say, it was pretty short-lived prior to Summit. It's a little bit of a blessing. A lot of my friends went through and worked through all their Big Four experiences and then to corporate and then back to public, and I was pretty fortunate to land where I did. It gave me an opportunity to grow. That's the nice thing about as many people on your podcast probably that are in, kind of an ownership role, understand is that, there's a lot of flexibility there. It's scary at times. And sometimes you go down the wrong path. But all those learning lumps along the way have gotten us where we are today. And so, I'm very proud of that, and glad I was able to start out the way that I was.
IVAN: And before that, you were in college and graduated—as I said at the top of the podcast—with a major in accounting and minor in communications, and I wanted to ask about that. You don't usually find people who are in accounting, also in communications. So, how did you end up going down that road?
ADAM: What? I'm pretty sure accountants are known to be usually the person at the party everybody wants to chill with. I'm pretty confident of that. [laughing]
IVAN: [laughing] You are being bad. I don't like stereotypes, and you're perpetuating that stereotype. But maybe I am too. Tell me how that happened.
ADAM: We're popular around April. You know, everybody's got a question.
IVAN: [laughing] That's right.
ADAM: But no. It was a huge push. When I was going to school, the big thing was accountants are dorks, nobody wants to talk to them, they are boring and dry. That kind of a thing. So, actually our professors were pushing communications. The CPA exam was pushing communications.
IVAN: Really?
ADAM: Yeah. So, it was, everything was centered around communications. Oddly enough, over the last five years or so, with big data, our job is taking data and turning it into information that people can use. So I think the pushes went away from communications, and it's been driven more towards big data. So, you'll see a lot of folks in accounting focusing on just information systems and trying to make sure that they can corral the big data. Now, unfortunately, they won't be able to talk to anybody about it [laughing], because they forgot that part. So, they can read the numbers, they can find it and smash it together, but that's what dashboards are for, right? [laughing]
IVAN: Right. Why talk to other humans?
ADAM: Why talk to people? It's real time. Just get it yourself, it's on your phone. [laughing] Text me if you need anything. So, that was the route. It was just one of those things. And I've always enjoyed just talking to people and I never shut up, so it was a pretty easy ask of me. So, yeah, it was good stuff.
IVAN: And what university did you go to?
ADAM: Indiana University is where I got my degree from.
IVAN: And did you grow up in that area? Is that kind of your home base? You're an Indianan?
ADAM: Oh, yeah.
IVAN: Is that the right word? Indianan?
ADAM: Hoosier, actually.
IVAN: Hoosier, okay. So, you're a Hoosier, born and bred.
ADAM: Born and bred. I am. I grew up, I went away for college and came back. And I met my wife early on in college, and so her family was from around here, and then whenever things were picking up and we thought we had the ability to go mobile, which I think is so cool how some of the folks on our team do that. We have somebody on our team, her and her husband are going to live every three months, they're going to live in a different city for the next twelve months.
IVAN: So, no kids, huh?
ADAM: There you go. So that's where I'm going with this [laughing]. I've got four kiddos and love them to death. Grandparents are a super important role in their life, and they have both sets still alive and well, here in the area.
IVAN: Good.
ADAM: So, we try to do really cool vacations and then obviously work. Here's your tax tip of the day, work it into some cool conferences [laughing] or, luckily, the Bureau always goes to some really neat places, you can work some stuff in there. But it's been great. Again, I wouldn't do it any different. It's just nice to be around family and still have the ability to go to cool places.
IVAN: And how old are your kids, Adam?
ADAM: So, I am an accountant so, and this will probably come as a surprise, but they're 13, 11, 9 and 7. So, every two years. [laughing] And not between January and April 15th. So, ta dah! [laughing]
IVAN: [laughing] So, let's talk about the tax ramifications of having children that are not between January and April and are spaced equally for two years. I can't tell if you're joking or not. Tell me about it.
ADAM: [laughing] No, that was completely intentional.
IVAN: Oh my God. Tell me why.
ADAM: It's different for me now, but whenever I was grinding it out, January through April, you're working 80 hours a week, so I would have no time for a birthday, or if my wife was near labor, like that was going to be an issue. So, again, those kind of things are pretty important to me. Obviously, I want to be there for my family, and so, I just wanted to make sure they were nowhere near the dead zone, January through April. [laughing]
IVAN: Okay. Got it.
ADAM: That was the intent.
IVAN: And every two years, like you get the benefit of an additional write-off on a regular basis. Like, that's the plan? [laughing]
ADAM: I wish. No, trust me [laughing] they cost way more than you get a deduction and a credit for. No, the idea originally was like, "Let's get them out of diapers and then have the next one." And then it's like we're getting a little older. So, we kept them a little closer together, knowing that we were going to have four.
IVAN: So, you're going to have four, you had them every two years, so, if my math is correct, that's about eight, maybe more years, of diapers in a row.
ADAM: Well, the diapers are bad enough. Think about how long my poor wife was pregnant, just in terms of over the course of that timeframe. She was more pregnant than she wasn't. [laughing] So, luckily, she enjoyed her pregnancies, but nevertheless, she definitely was the saint in the family for taking that on.
IVAN: Well, shout out to your wife.
ADAM: For sure. Yeah, absolutely.
IVAN: Last question. Do you have any potential accountants in your children?
ADAM: Actually, my oldest daughter, she's super creative, which is the complete opposite of me. I always talk about how innovative I am, meaning I can just take somebody else's cool idea and make it better. She's definitely more creative, and so I've been trying to push her towards more art stuff and design, that kind of thing. I think that I have a little bit of hope maybe in my youngest daughter. She holds the rest of us accountable to different stuff. So, she might be my little accountant. The rest of them are probably too cool for me. So, I don't know.
IVAN: Well, I wish you the greatest of luck with all of that. I've had a wonderful time speaking with you on the podcast here. Learned a lot. And, I appreciate you being on the show.
ADAM: Appreciate you having me and look forward to talking again soon, hopefully.
IVAN: Indeed. Adam Hale is partner and COO of Summit CPA, and he was my guest today. You can find them online at summitcpa.net. You've been listening to the TEN7 Podcast. Find us online at ten7.com/podcast. And if you have a second, do send us a message. We love hearing from you. Our email address is podcast@ten7.com. And don't forget, we're also doing a survey of our listeners. So, if you're able to, tell us about what you are and who you are, please take our survey as well at ten7.com/survey. Until next time, this is Ivan Stegic. Thank you for listening.
Ivan Stegic
Words that describe Ivan: Relentlessly optimistic. Kind. Equally concerned with client and employee happiness. Bowtie lover. Physicist. Ethical. Lighthearted and cheerful. Finds joy in the technical stuff. Inspiring. Loyal. Hires smart, curious and kind employees who want to create more good in the world. His favorite things right now: the TEN7 podcast and becoming the next Björn Borg.
Alison and Chad Paris of Parisleaf: Purpose as a Guiding Principle
Ivan Stegic — August 14, 2019
Jason Clark of VIA Studio: Lover of Mysteries and Believer in Hope
Pets of TEN7


text:
Q: RxJs Observable How to Handle Success Is there a way to handle the success of an RxJs POST or GET (or all CRUD operations for that matter) in the Angular service, instead of in the Angular component (via subscribe)?
I would like to set up a BehaviorSubject to emit that a user has successfully logged in. I was thinking of sharing the success results with various sibling components via my BehaviorSubject (this.loggedIn.next(true)), as these sibling components need to make changes based on a single service userLogin() call.
This is my userLogin method and BehaviorSubject in my AuthenticationService:
private loggedIn = new BehaviorSubject<boolean>(false);

userLogin(user): Observable<any> {
return this.http
  .post(this.apiUrl, user, httpOptions)
  .pipe(catchError(this.handleError));
}

This is pseudo code for what I want in my AuthenticationService:
private loggedIn = new BehaviorSubject<boolean>(false);

userLogin(user): Observable<any> {
return this.http
  .post(this.apiUrl, user, httpOptions),
  this.loggedIn.next(true),            <<--------
  .pipe(catchError(this.handleError));
}

Thank you in advance!

A: you can try:
private loggedIn = new BehaviorSubject<boolean>(false);

userLogin(user): Observable<any> {
return this.http
  .post(this.apiUrl, user, httpOptions)
  .pipe(map((res: any) => {
                this.loggedIn.next(true)
                return res;
        }), catchError(this.handleError));
}

A: handle it after subscribed
    ngOnInit() {
            this.loading.present();
            this.yourService.getUsers().
                subscribe(data => {
                    console.log(this.data);
                },
               //Errr----->***
              err =>{ console.log('HTTP Error', err),this.loading.dismiss()}
            );
        }

in service it can be handle
https://scotch.io/bar-talk/error-handling-with-angular-6-tips-and-best-practices192
 handleError(error) {
    ///your error
       let errorMes = '';
       if (error.error instanceof ErrorEvent) {
         // client-side error
         errorMes = `Error: ${error.error.message}`;
       } else {
         // server-side error
         errorMes = `Error Code: ${error.status}\nMessage:
         ${error.message}`;
       }
       window.alert(errorMes);
       return throwError(errorMes);
     }


text:
Q: Use of Fork-Join in Verilog I would like to do a task that checks in parallel one of the two statements commented below and that doesn't break the execution of the program that follows it:
The Task checks if startTx has been generated. It must wait for startTx signal 5 clock cycles. If the startTx is asserted, it prints a successful message. If not (after the timeout), it prints an error message and increases the error counter.
What I've done so far is:
    task checkStart;
      begin
      fork
    // evento 1
        begin
          waitCycles(5); // timeOut
          $display("[Error! %t] Time Out has been reached", $time);
          errors = errors + 1;
        end
    // evento 2
        begin
          @(posedge(startTx))
          $display("[Info] startTx has been generated successfully");
        end
      join
      disable fork;
      end
    endtask

But doesn't seem to be working as it apparently checks for both statements to be true and I would like something as 'join_any' from SystemVerilog that breaks whenever one of both statements become true.

A: This works without using the SystemVerilog join_any.  Comment startTx or uncomment it to see the two conditions that occur.
module tb ();

  bit SIGNAL;
  bit startTx;

  int errors;

  task checkStart;
    fork
      // evento 1
      begin  : timeout
      #500; // timeOut
      $display("[Error! %t] Time Out has been reached", $time);
      errors = errors + 1;
      $finish;
      end
    // evento 2
    begin  :wait_for_signal
      @(posedge(startTx))
      $display("[Info] startTx has been generated successfully");
      disable timeout;
    end
     //
    join
    //
    $display("+++++ Finished checkStart ++++++");
  endtask

initial
 begin
   checkStart();
    // Do something else
    #20;
    $display("**** normal finish ****");
    $finish;
 end

initial
  begin
    #1;
    // coment one of these at a time
    //startTx = 1;
    startTx = 0;
  end

endmodule


text:
Hot off the Press Book Group
2022-12-08 18:00:00 2022-12-08 19:00:00 America/Chicago Hot off the Press Book Group Share a book you've enjoyed and get to know some of Ms. Morgan's latest favorites over pizza. O'Neal Library - Storytelling Room
Add to Calendar 2022-12-08 18:00:00 2022-12-08 19:00:00 America/Chicago Hot off the Press Book Group Share a book you've enjoyed and get to know some of Ms. Morgan's latest favorites over pizza. O'Neal Library - Storytelling Room
EVENT TYPE: | Children's Events | Book Group |


text:
Q: Diamond with questionmark in page item I'm having a issue with special characters like ö, ä, etc..
My report column 'achternaam' has the value:
Schr��der  while it needs to be Schröder

Classic report - select:
WITH  voorstel  as (
  SELECT rownum i, vrstl.voornaam, vrstl.achternaam, vrstl.voorvoegsels, vrstl.rol
    from XMLTABLE (
      '/json/row'
      PASSING apex_json.to_xmltype( V('P4084_API_RESPONSE') )
      COLUMNS
       volg_nr VARCHAR(20) PATH 'Volg_nr',
       voornaam VARCHAR(20)  PATH 'Voornaam',
       voorvoegsels VARCHAR(20) PATH 'Voorvoegsel',
       rol VARCHAR(20) PATH 'Rol',
       achternaam  VARCHAR(25)  PATH 'Achternaam') as vrstl
  )
  select   voorstel.i
         , voorstel.voornaam
         , CONVERT(voorstel.achternaam, 'al32utf8', 'UTF8')  achternaam
         , voorstel.voorvoegsels
         , voorstel.rol
  from voorstel

:P4084_API_RESPONSE:
   [{"Volg_nr":1,"Rol":"AUT","Achternaam":"Busser","Voornaam":"Marianne"},
    {"Volg_nr":2,"Rol":"AUT","Achternaam":"Schröder","Voornaam":"Ron"},
    {"Volg_nr":3,"Rol":"ILL","Achternaam":"Stam","Voornaam":"Dagmar"}]

NLS_DB_PARAMETERS

A: There is an option on the specific column to not escape special characters.  Have you tried that?
I would say try the above (if you haven't) without and with the conversion.
CONVERT(voorstel.achternaam, 'al32utf8', 'UTF8')


text:
Sardar Saab
Sardar Joginder Singh alias Sardar Saab (Jackie Shroff) and his younger brother (Guggu Gill) act as messiahs for the people suppressed by the rich, wealthy and powerful. They do not shy away from taking law and order in their own hands. Due to the nature of their work, Sardar Saab sends his son (Daljeet Kalsi) to New Zealand, who meets Mehak Arora (Neetu Singh) and falls in love with her. Daljeet and Mehak want to get married to each other and their parents before the rituals take place. Once Daljeet reaches Delhi, Sardar Saab is arrested by the police and he gets killed in a bomb blast. How Daljeet avenges his killing forms the rest of the story.
Jackie Shroff
Guggu Gill
Neetu S
Sudesh Berry
Shivendra Mahal
Karamjit Anmol
Sardar Sohi
Amit Prasher
Mika Singh
Daljeet Kalsi
Navneet Misser
Bunty Nagi
Verdict: A cliched and predictable revenge saga. Sardar Saab is a special film in more ways than one. Firstly, it brings back Jackie Shroff on Punjabi silver screen after a hiatus. Moreover, Guggu Gill teams up with Jackie Shroff for the first time. And lastly, at a time when rom-coms are the preferred choice for []... ...Read full review


> trick just in one step.
> Problem is I can't find it on my brand new Kali Linux installation.
> Isn't it supposed to be installed with my version of John?
wpapcap2john is available in GitHub source trees but is not "released".
OpenMP in Makefile before building.