Page 2 of 2 FirstFirst 12
Results 26 to 45 of 45

Thread: CDG: Negative $values for players that have to be drafted

  1. #26
    Join Date
    Apr 2006
    Location
    New Orleans, Louisiana, United States
    Posts
    2,893

    Default

    Quote Originally Posted by RobR@HQ View Post
    jdwexler, your question as I read it was "why am I seeing different dollars per point for two different players". I told you that's because you selected force positions and suggested that if you temporarily disabled it, you'd see their unadjusted values. In the end, the answer to your question is that your are seeing different dollar values per point because of force positions. That's the only way your last catcher can have value above replacement in your league . . . if you give him more dollars per point or give him more points. I don't believe they are faulty values.
    Not quite what was saying. The issue I was that I'm getting different dollars per point above replacement level at that postion.

    If the CDG guides me to pay an extra $30 for a player at a given position in order to recoup a marginal 100pts when I could pay the same amount to recoup 50% more marginal points, that strikes me as plainly faulty.

    If you have an alternate algorithm in mind, feel free to lay it out. User feedback goes a long way to improving CDG.
    Sure. I'd like to see the best player not to be drafted at each position valued at $0 (or the have the last player at each position worth $1- not sure which of these makes more sense). Then each player gets a dollar value for based on the amount of points above the positional replacement level he is. eg, Say the top 14 catchers in my league will in total accrue 5% of the total above replacement level points. So all those catchers added up equal a total value of $182- 5% of the league's total budget ($260*14). Then each catcher is worth whatever % of $182 as is equal to the % of his points relative to the position. If Mauer will get 10% of all those above replacement catchers' points, then he is worth $18.20.

    You then need to adjust for how each positions points are distributed. I don't know how to properly do this. Michael suggested using z-scores, and I think this is basically what the rotochamp system does. I'm too weak a stats guy to know if that's the optimal approach.

    I appreciate the opportunity to give input and hope it is useful. And I definitely appreciate the continued engagement in helping me figure this out. Do you anticipate that any adjustments (including fixing the acknowledged bug re:$1 values for last to be drafted players) will be made by this week?
    some of my music here

  2. #27
    Join Date
    May 2003
    Location
    Canada
    Posts
    14,706

    Default

    I don't see that it is a flaw if any valuation system turns out Catchers (or anyone else) with negative values. If we pay the minimum $1 for the last catcher and he bats .190 with 0 HR and 12 RBI and 0 SB in 250 AB, he's a negative-value player. He will drag down our BA considerably while not adding points anywhere else. The fact that a fantasy league has a (completely separate) pricing system that obliges us to pay $1 for this negative value doesn't change the fact that it's still negative value. If we know that the 24th catcher is a -$12 value, we are guaranteed an $11 loss on that player, which seems to be useful intelligence on the market as an incentive to get a catcher who comes closer to providing positive value or, at least, less negative value.

    I do see a flaw in the proposed position-based valuation system: If the last catcher is 0-12-0-.190 (250) and the last CI is 11-55-3-.265 (250), it feels absurd that we say they are both $1 players.
    - - - - - - - - - - - - - - - -
    'Put Marvin Miller in the Hall of Fame!'

  3. #28
    Join Date
    Jun 2003
    Location
    Saint Louis, MO
    Posts
    7,766

    Default

    Quote Originally Posted by PD@HQ View Post
    I don't see that it is a flaw if any valuation system turns out Catchers (or anyone else) with negative values. If we pay the minimum $1 for the last catcher and he bats .190 with 0 HR and 12 RBI and 0 SB in 250 AB, he's a negative-value player. He will drag down our BA considerably while not adding points anywhere else. The fact that a fantasy league has a (completely separate) pricing system that obliges us to pay
    $1 for this negative value doesn't change the fact that it's still negative value. If we know that the 24th catcher is a -$12 value, we are guaranteed an $11 loss on that player, which seems to be useful intelligence on the
    market as an incentive to get a catcher who comes closer to providing positive value or, at least, less negative
    value.


    I do see a flaw in the proposed position-based valuation system: If the last catcher is 0-12-0-.190 (250) and the last CI is 11-55-3-.265 (250), it feels absurd that we say they are both $1 players.
    THIS!

    Just because there are rules about who has to be rostered from the player pool, does not mean that the player pool has some kind of obligation to provide us with positively valued (versus priced) to fill all of the spots.

    It's been suggested that the way to handle catcher scarcity is, if the worst catcher is worth $-4, to add $5 to all 24 draftable catchers, shifting $120 draft dollars into the pool of crummy players that are catcher eligible. This seems nuts; everyone worth $1 or less will simply sell for a buck, maybe two. It's a game theory problem, not a marginal return problem.

  4. #29
    Join Date
    Apr 2006
    Location
    New Orleans, Louisiana, United States
    Posts
    2,893

    Default

    Patrick, this is for a points league (points correlate with runs created- scoring system in post#10). There is no such thing as a top 14 player at any position who has negative value. Even if a top 14 player projected for negative points, he would still have positive $value over the #15 player at his position because he would get you less negative points.

    I've never played in a traditional roto league. Does it not work this way? I would have thought that if you have to draft a catcher than you are better off spending more than $1 on, say, the #8 catcher in a 12 team league even if he is a drag on your BA or whatever since the #12 catcher will drag it down even more if you get stuck with him.
    some of my music here

  5. #30
    Join Date
    Jun 2003
    Location
    Detroit, MI
    Posts
    26,310

    Default

    I'm with Jdwexler on this debate (and, J.D., I play in a Rotisserie scoring format and it doesn't change the nature of the debate).

    Quote Originally Posted by PD@HQ View Post
    I don't see that it is a flaw if any valuation system turns out Catchers (or anyone else) with negative values. If we pay the minimum $1 for the last catcher and he bats .190 with 0 HR and 12 RBI and 0 SB in 250 AB, he's a negative-value player. He will drag down our BA considerably while not adding points anywhere else. The fact that a fantasy league has a (completely separate) pricing system that obliges us to pay $1 for this negative value doesn't change the fact that it's still negative value. If we know that the 24th catcher is a -$12 value, we are guaranteed an $11 loss on that player, which seems to be useful intelligence on the market as an incentive to get a catcher who comes closer to providing positive value or, at least, less negative value.

    I do see a flaw in the proposed position-based valuation system: If the last catcher is 0-12-0-.190 (250) and the last CI is 11-55-3-.265 (250), it feels absurd that we say they are both $1 players.
    First off, when you say in italics that he is a negative-value player, it's not different from when Matt says a player really is a negative value player. It's a conclusion, not an argument.

    Let's assume to make the illustrations clear cut that we're in a world where all fantasy owners share the same projections. That is a common unstated assumption of assigning dollar values to projections.

    One problem is that we are buying roster slots, not the actual player's statistics. If the last catcher to be drafted is projected for 0-12-0-.190 (250) and will (as is likely without doing any math) have value worse than having an open roster slot, then the fantasy owner who purchases this stinky catcher for $1 will immediately after the draft reserve him and work with an open batting spot if the rules let him do so. The dollar value of that last catcher should have been based on the value of the option of MAX(stinky catcher, open roster slot, better catcher that might appear in the pool during the season). In practice, we seldom value those options (the Custom Draft Guide doesn't, RotoLab doesn't), but an extreme example like our stinky catcher, it's throwing off the values substantially.

    My point here is if you are saying that how can someone worse than a vacant roster slot be valued for a dollar, then I would answer the problem is not "forced positions is wrong" but the problem is that we shouldn't value stinky catcher based on his own production but rather based on the expected production from the roster slot as a whole.

    Quote Originally Posted by usualsuspects View Post
    THIS!

    Just because there are rules about who has to be rostered from the player pool, does not mean that the player pool has some kind of obligation to provide us with positively valued (versus priced) to fill all of the spots.

    It's been suggested that the way to handle catcher scarcity is, if the worst catcher is worth $-4, to add $5 to all 24 draftable catchers, shifting $120 draft dollars into the pool of crummy players that are catcher eligible. This seems nuts; everyone worth $1 or less will simply sell for a buck, maybe two. It's a game theory problem, not a marginal return problem.
    OK, so let's worth through an illustration. You are in an auction league with just two fantasy owners and you each must roster a 1B and a C and you each have $5 to spend. You and your opponent share the same projections. There are no adds and drops allowed during the season. The pool looks like this according to your draft software with the forced positions option turned off:
    1B - $5
    1B - $3
    1B - $1
    C - $1
    C - ($4)
    C - ($5)

    Your opponent, with the same projections and same software, turns on the forced positions option and his dollar values are reallocated as follows:
    1B - $2.71
    1B - $1
    1B - ($0.71)
    C - $5.29
    C - $1
    C - $0.14

    So let's return to the issues as you framed them. Whose dollar values seem nuts? Is it the case that all catchers will simply sell for a buck, maybe two? Is this a game theory problem or a marginal return problem?
    ďAdvertising bans, plain packaging, bans on smoking in public spaces, deterrent messages on cigarette packages, medical advice, education -- all have had some effect especially in Western countries. But still a billion people in the world are addicted to lighting little bonfires of plant material between their lips." -- Matt Ridley

  6. #31
    Join Date
    Jun 2003
    Location
    Detroit, MI
    Posts
    26,310

    Default

    I'm clarifying the above post -- sorry if it's rude.

    1) In my illustration above, even the forced position dollar values aren't perfect either, although to my eye they are better than the dollar values computed when the forced position option is turned off. The problems are because (i) one bids in dollar increments not in pennies and (ii) no owner can bid more than his remaining dollars minus $1 for each roster spot greater than one. The fact that the pricing model doesn't adjust for those problems would not trouble us nearly as much if we were dealing with a real life situation involving lots of fantasy owners and lots of players to be auctioned. I'll also assert that the magnitude of the forced position problem does not shrink dramatically when we deal with a real life situation involving lots of fantasy owners and lots of players to be auctioned. You may choose to believe my assertions or not but try not to let those other problems distract you from the point I was trying to make with my simplified illustration.

    2) Perhaps I should explain how the forced positions method of allocating dollars works because the second set of dollar values was not random given that we had the first set of dollar values. Each player has a single number representing his value. It could be his standing gain points, the sum of his z-scores, the number of projected points if one is in a points-based league, or his Rotisserie dollar value prior to factoring in forced positions -- define that number as "value." The projected dollar value for each player including forced positions is computed as $1 + leaguewide marginal value above replacement player value / leaguewide dollars to be allocated above $1 per player to be rostered, assuming that $1 is the minimum bid and that replacement player value is computed based on the guy's position.
    ďAdvertising bans, plain packaging, bans on smoking in public spaces, deterrent messages on cigarette packages, medical advice, education -- all have had some effect especially in Western countries. But still a billion people in the world are addicted to lighting little bonfires of plant material between their lips." -- Matt Ridley

  7. #32
    Join Date
    Jun 2003
    Location
    Detroit, MI
    Posts
    26,310

    Default

    3) In a real life situation, given the presence of middle infield, corner infield, and utility "positions" in most league formats, the talent levels out between positions so that often one has just two positions for the purposes of allocating dollar amounts -- catcher and other batters.
    ďAdvertising bans, plain packaging, bans on smoking in public spaces, deterrent messages on cigarette packages, medical advice, education -- all have had some effect especially in Western countries. But still a billion people in the world are addicted to lighting little bonfires of plant material between their lips." -- Matt Ridley

  8. #33
    Join Date
    Jan 2008
    Posts
    1,951

    Default

    Good discussion. Let me just add a brief statistical point. Dollar values are on what's called an "interval" scale. One property of interval scales is that the number 0 is arbitrary. A player valued at $0 does not have no value - contrast this with something that is 0 inches tall (ratio scale), reflecting an absence of height. Because of this, when working with dollar values, the numbers are not multiplicative. A $10 player is not necessarily worth twice as much as a $5 player. Or the magnitude of difference between a $5 player and a $10 player is not necessarily the same as the difference between a $30 player and a $35 player. Think of $ values as being similar to degrees Fahrenheit. 0 does not mean a complete absence of temperature, and 100 degrees does not mean there is twice as much heat as 50 degrees.

    If you want your dollar values on a ratio scale (like inches), you need to set $0 as the value of a player who contributes 0 R, HR, RBI, SB, and who goes 0-for-infinity at the plate so it reflects the true absence of value.
    Last edited by makelele; 03-20-2011 at 10:13 AM.

  9. #34
    Join Date
    May 2003
    Location
    Canada
    Posts
    14,706

    Default

    In a points league, there can be no negative value, so I guess the very worst player is your $1 baseline, and everyone scaled up from there. But in Roto, there is a very real negative value, for hitters who deliver shoddy BAs in significant ABs, and no offsetting usefulness in HR/RBI/SB/R. And pitchers, of course, have two ratio categories in which to provide negative value.

    I've never played in a traditional roto league. Does it not work this way? I would have thought that if you have to draft a catcher than you are better off spending more than $1 on, say, the #8 catcher in a 12 team league even if he is a drag on your BA or whatever since the #12 catcher will drag it down even more if you get stuck with him
    Yes, this was my point: Knowing you will be spending at least $1 provides you an incentive to move up the food chain to avoid the worst neg-value player(s). This does not, in my view, make such player(s) positive-value players; it makes them positive-price players. (Although the rules have already required them to be positive-price because negative-price bidding is not an option. Which raises an interesting possibility for a rules change -- why not allow negative-price bidding? If I'm willing to take some -$5 catcher, why can't I bid -$5 dollars? That is, why can't I get $5 added to my remaining total as a reward for taking a neg-value player out of the pool? This would provide a lot of opportunities for owners to arbitrage perceived value differences. To borrow from Michael's example, if we suppose that all 11 other owners are working from the same projections, which say Joe Shlabotnik is a -$5 player, and I believe Joe is due for a good year and will be only a $0 player, I could attempt to exploit that difference with a negative bid. Of course, someone else could raise my bid to -$4 and it might go on until he veered into positive price -- but if he did, it would be a market result, not a rules result.)

    Very interesting discussion.
    - - - - - - - - - - - - - - - -
    'Put Marvin Miller in the Hall of Fame!'

  10. #35
    Join Date
    May 2003
    Location
    Canada
    Posts
    14,706

    Default

    Quote Originally Posted by michael
    we shouldn't value stinky catcher based on his own production but rather based on the expected production from the roster slot as a whole.
    I don't understand what this means. We have to assign a value to each player, which we do based on the difference between him and an open slot.
    - - - - - - - - - - - - - - - -
    'Put Marvin Miller in the Hall of Fame!'

  11. #36
    Join Date
    Apr 2006
    Location
    New Orleans, Louisiana, United States
    Posts
    2,893

    Default

    Quote Originally Posted by PD@HQ View Post
    In a points league, there can be no negative value
    To be clear, a player can have negative points in a points league. A pitcher's negative points from ER, H, & BB can outstrip his positive points from innings and a batter's ABs can total a higher negative value than for which his hits and bbs might compensate. Im sure that in the vast majority of cases players on fantasy teams wind up in the black, but I played in a league last year where useful players had large negative point values. Didn't change the fact that they usually still would have positive $values at the draft table.

    Yes, this was my point: Knowing you will be spending at least $1 provides you an incentive to move up the food chain to avoid the worst neg-value player(s). This does not, in my view, make such player(s) positive-value players; it makes them positive-price players. (Although the rules have already required them to be positive-price because negative-price bidding is not an option. Which raises an interesting possibility for a rules change -- why not allow negative-price bidding? If I'm willing to take some -$5 catcher, why can't I bid -$5 dollars? That is, why can't I get $5 added to my remaining total as a reward for taking a neg-value player out of the pool? This would provide a lot of opportunities for owners to arbitrage perceived value differences. To borrow from Michael's example, if we suppose that all 11 other owners are working from the same projections, which say Joe Shlabotnik is a -$5 player, and I believe Joe is due for a good year and will be only a $0 player, I could attempt to exploit that difference with a negative bid. Of course, someone else could raise my bid to -$4 and it might go on until he veered into positive price -- but if he did, it would be a market result, not a rules result.)

    Very interesting discussion.
    Patrick, I could be misunderstanding your argument, but it seems to me you are making a category error due to semantic confusion over the word "value" (which has been used in a couple different ways here). The whole thrust of this thread has been about the utility of the $values that the CDG gives us to bring to the draft table. This is distinct from the point value (or roto category value). The salient question for me is what $dollar value should we assign to each player so we have an idea how much to bid on him at the draft table. Just because a guy is so bad as to have a negative point projection (or be a drag on your roto categories) doesn't change his value per se. Only his points value relative to your other choices (ie the other players you can draft at his position) affect his $value. If my opponent brings a CDG sheet with negative $values for players in the top 14 at his position (even if those guys are below some leaguewide replacement level they want to set), I am going to crush him in the draft.

    I'm not even sure if you'd disagree with any of this. If that's the case, then fine- but then I still can't see the utility of assigning negative $value to these players (ie top 14 at their position players in a 14 team league) for any reason.
    Last edited by PD@HQ; 03-20-2011 at 03:52 PM.
    some of my music here

  12. #37
    Join Date
    Apr 2006
    Location
    New Orleans, Louisiana, United States
    Posts
    2,893

    Default

    Quote Originally Posted by makelele View Post
    Good discussion. Let me just add a brief statistical point. Dollar values are on what's called an "interval" scale. One property of interval scales is that the number 0 is arbitrary. A player valued at $0 does not have no value - contrast this with something that is 0 inches tall (ratio scale), reflecting an absence of height. Because of this, when working with dollar values, the numbers are not multiplicative. A $10 player is not necessarily worth twice as much as a $5 player. Or the magnitude of difference between a $5 player and a $10 player is not necessarily the same as the difference between a $30 player and a $35 player. Think of $ values as being similar to degrees Fahrenheit. 0 does not mean a complete absence of temperature, and 100 degrees does not mean there is twice as much heat as 50 degrees.

    If you want your dollar values on a ratio scale (like inches), you need to set $0 as the value of a player who contributes 0 R, HR, RBI, SB, and who goes 0-for-infinity at the plate so it reflects the true absence of value.
    Thanks for this. Sometimes you have an intuitive understanding of something, but it takes a clearly worded expression of it to get a better handle on it.
    some of my music here

  13. #38
    Join Date
    Apr 2006
    Location
    New Orleans, Louisiana, United States
    Posts
    2,893

    Default

    Rob-

    Here is Tom Tango's formula for assigning $values (much more lucidly expressed than what I could muster):

    1. Figure out the points for every player

    2. Figure out the last player to be selected at each position, and get his points.

    3. Subtract 2 from 1. That’s your player’s QALPAP (quatlus above last player at position).

    4. Add up the QALPAP of the 120 nonpitchers and 84 pitchers. That’s the league-wide total QALPAP.

    5. Take the maximum payroll per team x 12 teams. That’s the total league payroll.

    6. Take the figure in 6, and subtract out 204$ (that’s the minimum 1$ x 204 players… if your minimum is 500,000$… then use that.) This is your marginal dollars.

    7. Take the figure in 6, and divide by the figure in 4. This is the dollar per QALPAP.

    8. Take each player’s QALPAP (from step 3) and multiply by step 7, and add the minimum salary ($1 or 500,000$ or whatever it is).
    some of my music here

  14. #39
    Join Date
    Apr 2006
    Location
    New Orleans, Louisiana, United States
    Posts
    2,893

    Default

    I think I still see a defect in this valuation method- namely that it doesn't allow the system to "see" how the distribution of players at a given position compares to that of other positions.

    Let's say in a 10 team league that the projections put Mauer at 91pts and the 9 other C's at 1pt each. Okay, those 9 C's are worth $1 each and Mauer is worth 90% of the total C dollars. So he's worth a lot by this measure- probably $100bucks or maybe more.

    But, this probably actually understates his value by quite a bit. Suppose the players at other positions were all bunched closer together: 15pts for the top guy then 10, 10, 10, 10, 10, 10, 10, 10, 5.

    In this case Mauer would be worth your entire $260 budget (and more if you were able to spend it!). You get a 90point advantage at one position that will win the league for you by itself. You can't get that kind of gain anywhere else.

    Is this a correct assessment? Obviously, you will never get something so extreme in real life, but it seems to me that there is something that has to be corrected for on a smaller scale.
    some of my music here

  15. #40
    Join Date
    Jun 2003
    Location
    Detroit, MI
    Posts
    26,310

    Default

    Quote Originally Posted by Michael@HQ View Post
    ... we shouldn't value stinky catcher based on his own production but rather based on the expected production from the roster slot as a whole.
    What I mean is that if one is purchasing a stinky catcher in a league with no transactions of any kind, then, yes, the dollar value assigned by one's projection software to the catcher should use his stinky stat line since whoever buys him on drafte day is doomed to live with the catcher the whole season. If instead, one can drop stinky catcher and go with an open catching slot or maybe hope that there is a decent catcher that appears on the waiver wire or the free agent pool who is even better, then one should use the projected stats for the roster slot as a whole, which could be much better than the stinky catcher's own projected stat line.
    ďAdvertising bans, plain packaging, bans on smoking in public spaces, deterrent messages on cigarette packages, medical advice, education -- all have had some effect especially in Western countries. But still a billion people in the world are addicted to lighting little bonfires of plant material between their lips." -- Matt Ridley

  16. #41
    Join Date
    May 2003
    Location
    Canada
    Posts
    14,706

    Default

    Quote Originally Posted by jdwexler;626130Let's say in a 10 team league that the projections put Mauer at 91pts and the 9 other C's at 1pt each. Okay, those 9 C's are worth $1 each and Mauer is worth 90% of the total C dollars. So he's worth a lot by this measure- probably $100bucks or maybe more. But, this probably actually [I
    understates[/I] his value by quite a bit. Suppose the players at other positions were all bunched closer together: 15pts for the top guy then 10, 10, 10, 10, 10, 10, 10, 10, 5. In this case Mauer would be worth your entire $260 budget (and more if you were able to spend it!). You get a 90point advantage at one position that will win the league for you by itself. You can't get that kind of gain anywhere else.
    Except don't you surrender back your 90-point advantage at C when you have to install $1 players at every other position?
    - - - - - - - - - - - - - - - -
    'Put Marvin Miller in the Hall of Fame!'

  17. #42
    Join Date
    Jun 2003
    Location
    Saint Louis, MO
    Posts
    7,766

    Default

    Quote Originally Posted by Michael@HQ View Post

    OK, so let's worth through an illustration. You are in an auction league with just two fantasy owners and you each must roster a 1B and a C and you each have $5 to spend. You and your opponent share the same projections. There are no adds and drops allowed during the season. The pool looks like this according to your draft software with the forced positions option turned off:
    1B - $5
    1B - $3
    1B - $1
    C - $1
    C - ($4)
    C - ($5)

    Your opponent, with the same projections and same software, turns on the forced positions option and his dollar values are reallocated as follows:
    1B - $2.71
    1B - $1
    1B - ($0.71)
    C - $5.29
    C - $1
    C - $0.14

    So let's return to the issues as you framed them. Whose dollar values seem nuts? Is it the case that all catchers will simply sell for a buck, maybe two? Is this a game theory problem or a marginal return problem?
    Who plays in a league with only two owners and only two offensive positions?

    If you do, then a game theory solution and a marginal return solution will converge. The rules of the game are important. Setting up massively oversimplified special cases like a two owner league, or leagues with nine catchers that hit like Mike Piazza, 15 that hit like Steve Swisher, and the 1B's are all Lyle Overbay doesn't much help understand the solution for league and player configurations that do occur. If there are six negatively valued catchers that must be bought (typical?) there will be 6-9 teams that don't have to buy any of them in a "normal" 12 team league. Do 12 teams really flush an extra $120 on catchers to avoid rostering the worst one, when half the teams will get two positively valued catchers anyhow?

  18. #43
    Join Date
    Apr 2006
    Location
    New Orleans, Louisiana, United States
    Posts
    2,893

    Default

    Quote Originally Posted by PD@HQ View Post
    Except don't you surrender back your 90-point advantage at C when you have to install $1 players at every other position?
    It depends on the number of other positions. If there are only 8 other positions than Mauer would win the league on his own and be worth your entire budget. You can come up with a scheme for the normal amount of positions too. The point is that there is a scarcity issue here for which valuation systems do not account, and I'd like to know how to mathematically adjust for this. Obviously the adjustments will be much smaller in a normal league, but I think some of the top end talent in my format is being undervalued.
    some of my music here

  19. #44
    Join Date
    Jun 2003
    Location
    Detroit, MI
    Posts
    26,310

    Default

    Quote Originally Posted by usualsuspects View Post
    Do 12 teams really flush an extra $120 on catchers to avoid rostering the worst one, when half the teams will get two positively valued catchers anyhow?
    It is the same principle at work with a full league. Actual behavior will not always be rational, but teams should allocate their dollars based on their projections using the forced positions. A failure to do so means that they are flushing their money chasing first basemen when if one just waits, one can roster the last first baseman for $1 even if everyone agrees he'll produce $3 of value.
    ďAdvertising bans, plain packaging, bans on smoking in public spaces, deterrent messages on cigarette packages, medical advice, education -- all have had some effect especially in Western countries. But still a billion people in the world are addicted to lighting little bonfires of plant material between their lips." -- Matt Ridley

  20. #45
    Join Date
    May 2003
    Location
    Westwood, MA
    Posts
    47,537

    Default

    Just FYI, we have a new version of the CDG in place with a fix for the "force positions" valuation error discussed somewhere in this thread.

Bookmarks

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •