Algorithmic Pricing – Bad for Everyone

There is so much promise that technology has, but it feels like we’ve taken the wrong turns somewhere along the line and now we’re in a very weird place. While this post will focus on ancestry.ca – the intent is to comment on the wider problem, not this particular website.

From a family tree / genealogy point of view – having computer access to mountains of data makes searching for information so much easier than it used to be. Now, there is also something satisfying about traveling to a given location and finding the original paper records, or walking an old graveyard and finding tombstones that tell a story about the people who lived in that community. Ideally you want to combine all of these approaches to have a rich experience about exploring a family history.

While you can use ancestry.ca for free, the real value is access to the trove of data they have available. To get access you pay a monthly fee – and this is fair – running a website (even this one) isn’t free. But what do you charge people? It’s pretty variable, it depends on some fix costs – but there are many other variable costs, and coming up with a fair number is hard.

Of course with marketing you also want to set a fixed price, but offer deals to encourage customers to make the leap from fee to paying. Here is where I struggle with the approach when those discounts move around dynamically.

A gift membership seems like a great way to get someone started. However, this is what you get if you want to go down that path

Two plans, and either 6 or 12 months.

Contrast this with what just subscribing offers you

Ok, well – there is a lower plan that is significantly cheaper if we consider a 12 month plan. So maybe a good gift is that “All Canadian Records” version. That was my plan – and so I printed out the website page and said – hey, here you are I will gift you the 12 month lowest tier plan.

Then weirdness started. The first attempt to take the logged in ancestry account and subscribe landed at a page that offered up a different price.

Wait, what? Where did my 12 month option go? This is not nearly as good a deal. Let’s grab another computer and visit the site to see what’s going on.

Great, now we only see a monthly price? No more multi-month discounts?

Of course, the next thing I do is start trying different browsers. I get a variety of the 3 possible choices all captured above. However, I’m still struggling to figure out how do I purchase the right “cheap” one of $119.88 / year?

In the end, I kept creating new incognito windows in Chrome until I got the right price. This actually took a bit of trying as mostly I was getting only the 6 month option. Once I got the right price I clicked on the “Become a Member” button, and signed in on that window. As I worked through the credit card payment page, it seemed – yes, I was paying for the right $119.88 price – my total was +tax, and it went through on my credit card at that price. Problem solved.

This does make me wonder, how would a normal person do this? A gift membership would push people to a higher level plan (and extra $60/year). If they got only the monthly cost ($14.99) that stacks up to an $60.11/year. The 6-month plan is an extra $20.10/year. From a yearly price point – the cheapest gift membership is 50% more expensive; monthly payments also work out to 50% more expensive, and the 6-month option is 17% more expensive.

Just like casinos, the house always wins with algorithmic pricing. This type of pricing makes me less (and likely many others) less likely to actually buy things from companies that do this. I value the service they are providing, but I want to pay a fair price – not one that is a roll of the dice.

PSA: DNS servers have no priority order

It is a common misconception that DNS servers that your system uses are managed in a priority order. I had this misunderstanding for years, and I’ve seen many others with the same.

The problem comes from the router or OS setup where you can list a “Primary” and “Secondary” DNS server. This certainly gives you the impression that you have one that is ‘mostly used’ and a ‘backup one’ that is used if the first one is broken, or too slow. This is false, but confusingly also sometimes true.

Consider this stack exchange question/answer. Or this serverfault question.  If you go searching there are many more questions on this topic.

Neither DNS resolver lists nor NS record sets are intrinsically ordered, so there is no “primary”. Clients are free to query whichever one they want in whichever order they want. For resolvers specifically, clients might default to using the servers in the same order as they were given to the client, but, as you’ve discovered, they also might not.

Let me also assure you from my personal experience, there is no guarantee of order. Some systems will always try the “Primary” first, then fall back to the “Secondary”. Others will round-robin queries. Some will detect a single failure and re-order the two servers for all future queries. Some devices (Amazon Fire Tablets) will magically use a hard coded DNS server if the configured ones are not working.

Things get even more confusing to understand because there is the behaviour of the individual clients (like your laptop or phone), and then the layers of DNS servers between you and the authoritative server. DNS is a core part of how the internet works, and there is lots of information on the different parts of DNS out there.

The naming “Primary” and “Secondary” come from the server side of DNS. When you are hosting a system and configure the domain name to IP mapping, you set up your DNS records in the “Primary” system. The “Secondary” system is usually an automated replica of that “Primary”. This really has nothing to do with what the client devices are going to do with those addresses.

Another pit-fall people run into when they think there is an ordering, is when they setup a pi-hole for ad-blocking. They will use their new pi-hole installation as the “Primary” and then use a popular public DNS server (like 8.8.8.8) as the “Secondary”.  This configuration sort of works – at least some of the time, your client machine will hit your pi-hole and ad-blocking will work. Then, unpredictably it will not block an ad – because the client has used the “Secondary”.

Advice: Assume all DNS servers are the same and will return the same answer. There is no ordering.

I personally run two pi-hole installations. My “Primary” handles about 80% of the traffic, and the “Secondary” about 20%. This isn’t because 20% of the time my “Primary” is unavailable or too slow, but simply that about 20% of the client requests are deciding to use the “Secondary” for whatever reason (and that a large amount of my traffic comes from my Ubuntu server machine). Looking deeper at the two pi-hole dashboards, the mix of clients looks about the same, but the “Secondary” has fewer clients – it does seem fairly random.

If your ISP hands out IPv6 addresses, you may find that things get even more interesting as you’ll also have clients assigned an IPv6 DNS address, this adds yet another interface to the client device and another potential DNS server (or two) that may be used for name lookups.

Remember, it’s always DNS.

30 Years

I’ve passed 20, then 25-year milestones and while it was very nice to hear from co-workers and friends on those dates it wasn’t significant. Hitting 30 years is surprisingly different for me, it is unbelievable to hit this milestone. I’m fortunate to have more than a handful of co-workers who have longer tenure than I do, some more than a decade ahead of me. It is these people that are showing me the way forward from here.

I’m proud to be a technical leader in my area. Recognized as a “Master Inventor“. Called upon to mentor and coach people both in my group and outside. I regularly work with customers, consultants, and other companies. Sometimes I even get my hands dirty with code and the work of keeping some of our cloud services going. 30 years in, and there is still plenty to keep me actively engaged and looking for the next hill to climb.

Now, 30 years counts all my full-time work. The company I started at: Object Technology International, was purchased by IBM and we were granted our tenure at that company as IBM tenure. I have many great memories of the work we did at OTI. Inside IBM we continued to make our mark in the Java space. I did a stint in Corporate helping communicate technical strategy. My most recent chapter is about building IBM Cloud. While this has all been within “one company” I’ve had a lot of different jobs over the years.

One of the things that I find attractive about computers is what they enable a single individual to accomplish. That is still true, but I’ve learned that the real magic is when you get a team of people working together to solve a problem that a has real impact. It is all my team members, past and present that I’m thankful for.

IBM continues to be a great place for me. I hope to continue to grow and learn. I’ve certainly become a better person over time, and I hope that I’ve helped others build their skills too.

None of my accomplishments would have been possible without the support of my wife and kids, to them I am forever grateful.