The challenge of Boy Scouts’s homosexuality policy

My family has a rich Scouting background. I tell people, “We have so many Eagle Scouts, even my gay brother is an Eagle Scout.” It’s true.

I don’t like Boy Scouts of America’s (BSA’s) homosexuality policy, which bars homosexual adult leaders. I’d like a change: our understanding of homosexuality has improved, and BSA’s policy needs to improve, too. But at the same time, I don’t think the public debate appreciates the risk of change.

Every Scout unit is owned by a chartered organization. A charter is a license to use Boy Scouts’s program.

Most chartered organizations have negative views of homosexuality:

  1. 56% of Scouts are in units chartered by religious institutions with officially negative views of homosexuality, like the United Methodist Church, Latter Day Saints (Mormon) Church, and the Catholic Church.
  2. 3% of Scouts are in units chartered by religious institutions that accept homosexuality, like the United Church of Christ.
  3. The remaining 41% are in units chartered by civic or educational organizations, and their stances can vary. For example, a University Park, Texas unit, chartered by a parents’ club, barred a homosexual parent from leadership based on objections of other parents. (My son’s pack is chartered by a PTA.)

Even when accounting for variances within institutions–for example, some United Methodist congregations are accepting of homosexuality, some United Church of Christ congregations don’t accept it–it’s still likely that most chartered organizations have negative views of homosexuality.

The BSA is in a difficult spot: its ultimate power, its livelihood, rests in chartering organizations–they run the Scouting units, they provide all the youth, and they have the final voting authority in BSA.

Can BSA survive if it angers most its chartering organizations?

I wish BSA could be neutral, letting chartered organizations do their own homosexuality policies, like what was recently proposed. But in seeking change, I don’t want to recklessly harm or destroy the centerpiece of the American Scouting movement.

I’m sure some of you will say this is still perpetuating discrimination. That’s just not true. It has taken decades, sometimes centuries, for society to correct civil rights problems. It’s not reasonable to expect the BSA to make instant-presto changes, especially given that it must be sensitive to the policies of its chartered organizations.

The ACLU’s scorched earth war on Boy Scouts isn’t the right solution. We can do this better, and we can do it right, with a pragmatic, dialogue-rich approach. In the end, destroying the organization is not the right way to fix its policies.

NTTA should set 75 mph speed limits

75 MPH speed limit signThe North Texas Tollway Authority (NTTA) can set 75 mph speed limits on much of its road system.

HB 1353, which was effective Sept. 1, 2011, basically says any road can have a 75 MPH speed limit (full text) if justified by TxDOT’s speed zoning procedure. Before then, 75 mph was only allowed in a few, politically-chosen  counties.

This speed zoning procedure generally requires the speed limit to be set at the 85th percentile speed of traffic.

What’s the 85th percentile speed? It’s the upper end of the “flow of traffic”.

Speed limits set at the 85th percentile speeds fully legalize this “flow of traffic”–the speeds of reasonable drivers–and only criminalizes demonstrably unsafe speeds. (more info)

What’s the 85th percentile speeds on NTTA roads?

Texas 121 TollOn the Sam Rayburn Tollway (TX 121), the average 85th percentile speed across the entire roadway is 74.1 mph. That rounds to 75 mph. Virtually all of the tolled part of TX 121 could be set to 75 mph with no hassle.

How about thePresident George Bush Turnpike logo President George Bush Turnpike? Not so fast. (Ha ha, get the pun?) 7 year old data has the entire road averaging a 71 mph 85th percentile speed. But wait, there’s more! 7 years ago, its speed limit was 60 mph! The speed limit is now 70, so the 85th percentile speeds have probably crept up. Plus there’s the new eastern extension, which may have changed traffic patterns. This entire road needs to be rechecked!
Dallas North Tollway logoThe last road is the Dallas North Tollway. It’s surprising:

  • Between I-35E and I-635 has a 73 mph 85th percentile speed! That rounds to 75 mph! It’s debatable if the sag curves under many of the bridges really need a 50 mph advisory speed. If that could be dispensed with, or raised to, say, 60 mph, then you could easily see a 70 or 75 mph limit on the old part of the DNT!
  • Between I-635 and the Collin County Line: 69 mph. This part could go to 70 mph.
  • Between the Collin County line and Sam Rayburn (TX-121): 73 mph, another 75 mph candidate!
  • Between 121 and the northern end: Surprisingly, only 69 mph! So the 70 mph limit there wouldn’t be changed. However, this measurement was taken when the speed limit was only 65. It’s 70 now, so the speed could have crept up a hair. This section needs to be rechecked.

If NTTA strictly followed the 85th percentile rule (which is only fair, since we motorists are expected to strictly obey traffic laws), and didn’t use arbitrary “engineering judgment” to force lower limits, we could see 75 mph limits on most of its road network.*

*A caveat: Because of a pointless, broken program called environmental speed limits, there may be red tape to raising the speed limit on DNT between Frankford Rd. and SRT (TX-121) and PGBT between I-35E and TX 78. None of the rest of the NTTA road system is subject to this program.

Here’s the raw data from NTTA: ORR-2-21-2012. This has the Excel files and strip maps. The Excel files have the speed checks. You’ll use the percentile function to get each location’s 85th percentile speed. The strip maps show where each speed check was run.

Comparing current data to last time period’s data in Postgres

I have a Postgres table where each row shows the number of traffic tickets written by each city per month.

I needed to show the percentage change between the current and prior month’s ticketwriting. For example, if a city wrote 1000 tickets this month and 500 last month, then I wanted a field in the row for this month to show a 200% increase over last month.

Here’s how I did it.

I first had to create two functions:

-- number of traffic tickets for
-- the given month and city
CREATE FUNCTION traffictickets(
                   cityName CHARACTER VARYING,
                   MONTH TIMESTAMP WITHOUT TIME zone
                ) RETURNS INTEGER
     AS 'select "TrafficTickets"
         FROM raw."OCA tickets per city"
         WHERE "Date" = $2 AND "City" = $1;'
     LANGUAGE SQL
     IMMUTABLE
     RETURNS NULL ON NULL INPUT;

Then I made a short SQL script that referenced this function:

UPDATE raw."OCA tickets per city"
     SET "Change" = "TrafficTickets"::REAL /
        (CASE WHEN traffictickets("City", "Date" - INTERVAL '1 month') = 0
         THEN -1
         ELSE traffictickets("City", "Date" - INTERVAL '1 month')
         END)::REAL;

Viola, now each of my rows shows the percentage change between the current and prior month’s ticket counts! Except there’s a huge problem–the changes aren’t consistently meaningful.

If ticketwriting dropped month over month, the change field will be between 0 and 1: going from 100 tickets to 20 tickets the next month, the change is 0.2. But here’s the problem: if ticketwriting increased, the number will be between 1 and infinity. If ticketwritng increased from 20 to 100, the change is 5. Or if it changed from 2 to 150, the change is 75!

Yikes, I need some way of bringing these positive changes down to Earth.

I think I have a solution: show the change relative to the city’s average ticketwriting over all its years in my database.

I added a new function:

-- average number of traffic tickets written by
-- that city over all months in my table
CREATE FUNCTION averageticketsforcity(
                   cityName CHARACTER VARYING
                ) RETURNS REAL
     AS 'select avg("TrafficTickets"::real)::real
         FROM raw."OCA tickets per city"
         WHERE "City" = $1;'
     LANGUAGE SQL
     IMMUTABLE
     RETURNS NULL ON NULL INPUT;

Here’s the new version of the query:

UPDATE raw."OCA tickets per city"
     SET "Change" = ("TrafficTickets"::REAL -
      traffictickets("City", "Date" - INTERVAL '1 month')::REAL) /
      CASE WHEN averageticketsforcity("City") = 0
        THEN 1
        ELSE averageticketsforcity("City")
      END;

That seems to have fixed it. Now all my values appear to be equally meaningful to each other.