Category: Software

Workflow for Online Car Buying

A few years ago, I published a precedence diagram for the key operations of online car buying.  I was arguing against a linear process, and calling attention to some deadlocks.  Since then, I have been following the industry’s experiments with new process models, and coming to realize that these deadlocks are the great, unanalyzed, obstacle to process reform.

Practices that seem unfair, deceptive, or abusive may actually be crude attempts to solve the deadlock problem.

One example of a deadlock is that you can’t quote an accurate payment until you know the buy rate, and for that you need to submit a credit application.  This is usually solved by iteration.  You do a pre-approval or quote the floor rate, and then change it later.

Likewise, you can’t price protection products until you know the vehicle, but the customer wants to shop by payment.  Protection products are also priced by term, and you don’t know the desired term until you finish structuring the deal.

In fact, even the customer’s choice of vehicle depends on the monthly payment, which is downstream of everything else.  Virtually the only operation that’s not blocked by another operation is valuing the trade.Like an interlocking puzzle, “we don’t know anything until we know everything.”  Choosing any one item to lock first, without iteration, will result in a suboptimal deal – buying too much car, for too long a term, or overlooking the protection products.

Practices that seem unfair, deceptive, or abusive may actually be crude attempts to solve the deadlock problem.  For instance, quoting a payment with some leg in it, or goal-seeking the full approval amount.

Can you see how this ties into current debates about the hybrid sales model?  F&I presents a menu with a six-month term bump, which might not be optimal, just to compensate for too tight a payment from the desk.

Fortunately, in the world of online car buying, the customer is free to resolve deadlocks through iteration.  This means:

  1. Set up the deal one way
  2. Change any feature, like the term
  3. The change “cascades,” undoing other features
  4. Revisit those other features
  5. Repeat until all features look good together

The in-store process does not support iteration well, and probably never will, but an online process can.  All you need is the well-known concept of a “dirty” flag, to keep track of the cascading changes, along with navigation and a completeness gauge to guide the customer through steps #4 and 5.

You could analyze step #3 at the level of a dozen individual features.  I made that chart, too, but I believe it’s more useful to collect them into the canonical five pages shown here.

By the way, I have previously described the products page in some detail, along with the analytics to drive it.  Discussion of the “random survey question” is here.  Today’s diagram contemplates a mobile app, as do my recent posts, but the same approach will work for a web site.

Organizational Debt

In today’s post, I add to the copious literature on technical debt with a discussion geared to my audience of F&I entrepreneurs, and extend the metaphor into organizational design.  What I noticed, writing Maturity Model, is that software development is rich in models and metaphors that apply outside the trade.

Technical debt is incurred when software developers take shortcuts, usually because they are under time pressure.  This debt is accrued in program code, but it must eventually be paid off with real money, just like the debt on your balance sheet.  Here is a brief discussion of how that works.

Someone once insisted that my team “just code IF State = TX, and get on with it!”  Not on my watch.  We will categorize Texas, and then we will add other states to the category as we discover them.  For example, the category might be “waiver GAP states,” or “spousal consent states.”

Operating or back-office issues, often related to IT, are recurring concerns for strategic buyers. Problems with IT underinvestment have proved to be ordeals during many integration efforts.

If you go down the road of IF State = TX, then in short order you will have code with IF <list of ten states> do this logic, and for <five of them> also do this other logic, but for <three of the ten> do this instead and for <the other two> do both of those things.

Congratulations, you have saved forty hours of programmer time versus stubborn Mark Virag and some academic exercise involving categories.  Now you are married to this gnarly decision tree, and you will be debugging it forever.  The technical term is Big Ball of Mud.

One warning sign of technical debt is the “cut and paste” approach.  If your developers implemented the latest dealer, provider, lender, product, or state by copying code from the one before, then I guarantee you have technical debt.

Any developer worth his salt will, instead, make the copied code into a reusable method.  Developers are trained to do things the right way and, in my experience, only take such shortcuts because the boss told them to.

Why not cut and paste, if it gets the job done?  Because, if there are any bugs in the copied code, now they’re multiplied and scattered throughout the code base.  You will have to spend programmer time to fix each one separately, as they are encountered over time.

I could go on with examples all day.  The point I want to make is that technical debt is real money.  You may go “quick and dirty” this week, and save $5,000 of developer time, but you will be paying those same developers later when they have to fix the bugs.

You may reasonably decide that you are a little short this month, and take a loan from the invisible bank of technical debt, but you should do so consciously.  Don’t fool yourself that technical debt is free.  I have provided an example here in the form of TILA box, something my F&I readers will understand.

Now that I have that off my chest, let’s discuss investment decisions.  For example, if you’re a startup and strapped for cash, you may choose to pile up technical debt because it’s off balance sheet and may be the only kind of financing you can get.

Of course, no one actually thinks about it this way.  What they tell their developers is, “just keep patching it until we’re profitable and you can overhaul it later.”  You may even sell the company, rickety software and all, if the acquirer fails to do proper diligence.

When I was doing international software search for BMW, our due diligence guy in Munich was Dr. Dettweiler.  We would find some software that looked pretty on the outside, and then the doctor would fly in and discover it was all a façade, like a movie set held up with sticks.

McKinsey specifically warns against acquiring a company with a big ball of mud in the back office.  Like process maturity, this is a concept that goes beyond software development.

In my time as a consultant, I have designed an organization or two, and it’s a lot like programming.  You have to have the right boxes on the org chart, with the right procedures and job descriptions, kind of like designing objects that will respond to business events (except they’re people).

Organizational debt is caused by the same kinds of things that cause technical debt.  For example:

  • The structure worked fine ten years ago when we had one-tenth the number of people.
  • It was never actually “designed” to begin with, but we reorganize ad hoc every other year.
  • The structure is based on specific people instead of job functions.
  • There are processes for which no one is actually responsible, so things “slip through the cracks.”

Fortunately, people are remarkably resourceful.  They will create their own procedures and informal networks.  Good people can prop up a bad organization, like those sticks holding up the movie façade, but they can only hold out so long.  Sooner or later, they will start to slip – and customers will start to notice.

Now I feel like I really am writing a pitch for consulting services. Call now!  Free reorg with every digital transformation.  Seriously, though, my point is that organizations can harbor technical debt just as software can.  This is why I am a fan of formal methods like ISO certification and, yes, professional organizational design.

More broadly, I am starting to notice that software development concepts – like process maturity, technical debt, iteration, and agile teams – are applicable throughout the enterprise.  We’ll explore this further in an upcoming post.

Analytics for Menu Presentation

Last week, I presented a single-column format for menu selling on an iPhone, with the glib recommendation to let analytics determine the sort order.  Today, I will expand on that.  Our task is to sort the list of products in descending order of their relevance to the current deal, which includes vehicle data, consumer preferences, and financing terms.

This sorting task is the same whether we are flipping through web pages or scrolling down the mobile display.  The framework I present here is generalized and abstract, making the task better suited to automation, but ignoring the specific F&I knowledge we all take for granted.  I’ll come back to that later.

For now, let’s assume we have six products to present, called “Product One,” and so on, and four questions that will drive the sorting.  Assume these are the usual questions, like, “how long do you plan on keeping the car?”

That answer will be in months or years, and the next one might be in miles, but we are going to place them all on a common scale from zero to one (I warned you this would be abstract).  Think of using a slider control for each input, where the labels can be anything but the range is always 0.0 to 1.0.

Next, assign four weights to each product, representing how relevant each question is for that product.  The weights do not have to be zero to one, but I recommend keeping them all around the same starting magnitude, say 1 to 5.  Weights can also be negative.

For example, if there’s a question about loan-to-value, that’s important for GAP.  High LTV will correlate positively with GAP sales.  If you word that question the other way, the correlation will still be strong, but negative.  So, now you have a decision matrix that looks something like this:

Yes, we are doing weighted factor analysis.  Let’s say that, for a given deal, the answers to our four questions are, in order:

[0.3, 0.7, 0.1, 1.0]

To rank the products for this deal we simply multiply the decision matrix by the deal vector.  I have previously confessed my weak vector math skills, but I am certain that Python has an elegant way to do this:

Product Two ranks first, because of its affinity for high-scoring Question Four.  Product Four takes second place, thanks to the customer’s response to Question Two – whatever that may be.  By now, you may have noticed that this is the setup for machine learning.

If you are blessed with “big data,” you can use it to train this system.  In a machine learning context, you may have hundreds of data points.  In addition to deal data and interview questions, you can use clickstream data, DMS data, contact history, driving patterns (?) and social media.

If not, you will have to use your F&I savvy to set the weights, and then adjust them every thousand deals by manually running the numbers.

For example, we ask “how long will you keep the car?” because we know when the OEM warranty expires.  Given make, model, and ten thousand training deals, an AI will dope out this relationship on its own.  We will do it by setting one year past the warranty as 0.1, two as 0.2, etc.  We can also set a variable indicating how complete the manufacturer’s coverage is.

Same story with GAP.  Give the machine a loan amount and a selling price, and it will “discover” the correlation with GAP sales.  If setting the weights manually, set one for LTV and then calculate the ratio for each deal.

Lease-end protection, obviously, we only want to present on a lease deal.  But we don’t want it to crowd out, say, wearables.  So, weight it appropriately on the other factors, but give it big negative weights for cash and finance deals.

I hope this gives some clarity to the analytics approach.  In a consumer context, there is no F&I manager to carefully craft a presentation, so some kind of automation is required.

Menu Selling on an iPhone

Followers of my Twitter feed know that I have lately been looking at mobile apps, to see if anyone can present protection products on an iPhone.  I wrote about this three years ago and, according to my informal survey, the field is still open.

I don’t think anybody has a good way to present a menu on a consumer web site, much less an iPhone.

Not only is the iPhone a restrictive form factor but we must assume that the customer, not an F&I person, is operating it.  We would like to apply our Best Practices for Menu Selling, but the app must be able to apply them on its own.

For example, if we want to retain the package concept with the carefully chosen payment intervals, we can use an accordion control.  I proposed this for a client once, in an F&I context, but it doesn’t make sense for consumer use.

No, the best way to “present all the products, all the time,” is simply to make one long column with everything in it.  The iPhone presents challenges, but there are offsetting advantages.  We can show fifteen products in one column, and the customer has his leisure to scroll through them.

I prefer scrolling to swiping for a few reasons.  In the prototype shown here, we have the obligatory vehicle photo.  After the first scroll, that’s gone and the screen space is devoted to products.

The prototype shows monthly prices for the vehicle and the products.  This assumes the finance process is settled, and the app can choose products matching the finance term.  Touching any of the products will open up a full page with details, coverage choices, and a “sales tool” as in the earlier article.

I recommend using analytics to determine the sequence of products in the column, and even to A/B test the format of the product blurbs.  I have in mind a few different formats:

  • Text with graphic and price, as shown here.
  • No price ‘til you open it.
  • Lead with the sales tool.

I discuss analytics here, but I am not a fan of the full “ownership survey.”  Of the eight standard questions, maybe you can sneak in one or two elsewhere in the process.  Apart from that, we’re counting on data points found in the deal itself.

I also think “less is more” when confronting the customer with choices.  As you can see in the mockup above, there must be no complicated grades of coverage (or deductible).  If you’re configuring the app for a specific dealer, you may want to filter some options out of the dealer’s product table.

Depending on who’s managing the app, the products themselves may be rethought.  If you want to offer chemical, dent, key, and windshield as a combo product, then that’s a single choice.  Alternatively – since we have unlimited  column space – you can offer each one individually.  What you do not want is a product having fifteen different combinations.

Coming back to my informal survey of mobile apps, and the workflow given here, I believe there are already good examples of vehicle selection, credit application, trade valuation, and payment calculator.  Menu selling has been the only missing link, until now.

Best Practices for Menu Selling

I was asked recently to opine on this topic, which I do today with some reservation, for I can see the venerable four-column menu approaching its sell-by date.  The image shown here is a MenuVantage prototype from 2003.  Don’t get me wrong.  As I wrote here, this is still the best tool for the traditional setting in the F&I office … for as long as that setting prevails.

Best practices for menu selling split into two broad categories: those that are good for selling, and those that are good for compliance.  I will present them in that order.

Every product appropriate to the transaction type and “car status” of the current deal (i.e. Used Lease) should appear in column one.  Some menu systems use deal templates, making it easy to select the proper layout every time.

The home court advantage in the F&I suite is that you can do a four-column menu, and there is a professional there to present it.

For most systems, column one automatically drives the layout of the accept/decline “waiver” form.  This is best practice for compliance, and it’s good selling too.  Why have a product that you only present on special occasions?

The practical limit for products in column one is six, maybe eight, so choose wisely when laying out the menu template.  Using bundles will allow you to squeeze in more products.  I generally don’t like bundled products, as I wrote here, but this is a reason to use them.

Every menu should include a second, longer term, with the correct APR for that term.  There is a charming story about this in Six Month Term Bump, plus a downloadable spreadsheet.  Twelve months is overkill, and likely to raise an objection.

The amount of product you can finance without changing the monthly payment is given by this formula.  Without doing the annuity math, a good approximation is: base payment times five.The monthly payment in column four should be roughly $30 more than the base payment without products.  That way, you draw the customer’s attention into the menu without a big price barrier.  Likewise, payments should increase in small increments from right to left across the bottom of the menu.

Obviously, the increments will be larger for more expensive deals, say 10% of the base payment.  This is easy to do, if you are manually setting up each menu.  It takes a little more planning to do this with templates.  You can either tweak the individual products at deal time, or you can set up a different template for highline vehicles.

For example, offer the platinum VSC coverage in column one and the gold in column two.  By the way, do not reuse the VSC coverage choices (like gold, silver, and platinum) as your column headings.  That’s an obvious source of confusion.  Finally, your menu system should feature sales tools and custom content for each product, like the famous depreciation chart for GAP.

I have a few more recommendations, related to compliance.  If you already have a good grasp of unfair and deceptive practices, you can skip this part.  Be warned, though, that consumer watchdogs and regulatory agencies are looking over your shoulder.

The chart below (and the pull quote) is from the National Consumer Law Center.  You can tell that the dealer in green is using a menu system with a fixed markup over dealer cost.  The dealer in red is certainly making more PVR but he is also courting a federal discrimination charge.

Menu trainers like to say, “present all the products to all the customers, all the time.”  They might add, “at the same price.”  The NCLC report goes on to show that minority car buyers are systemically charged more for the same products.  Some dealers simply don’t allow the F&I manager to vary from the calculated retail price.  In states like Florida, that’s the law.

Giving F&I managers the discretion to charge different consumers different prices for the same product … is a recipe for abuse.

The menu should display the price of each product, not just the package price.  Some turn this into a selling feature by also showing the price as a daily amount.  It makes a good layout to have the most expensive product at the top, with prices descending down the column.

All of these measures require some kind of audit trail.  I have seen some very strong systems that track exactly what was presented, by whom, when, for how much, and whether the price was changed.  At a minimum, you should collect the customer’s signature on the waiver form, with all the products, their prices, and your standard disclosure text.

Next week, I will resume writing about the brave new world of flow selling, self-closing, and predictive analytics.  We may find that many of these practices – especially regarding compliance – are still relevant.

The Automotive eCommerce Ecosystem

Around the turn of the century, I was helping RouteOne to build their now-ubiquitous credit system.  Then, I moved on to aggregation models for the “I” side of F&I.  It was a lot of work.

We had to develop scores of unique interfaces for lenders and product providers.  We had to develop deal calculation engines, and then reverse engineer each DMS so our payments would match.  There were no automated sources for finance or product rates.  We had to walk ten miles in the snow …

Today’s eCommerce startups have it easy.  All of the key tasks are supported by readily available services, leaving the entrepreneur to focus on user experience and dealer support.

When I started writing about this space, the key challenges were price negotiation and trade valuation (and the test drive, but I’ll cover that in a later piece).  Today, you have reliable online trade valuation from Kelley, Trade Pending, and others.  Price negotiation can be handled through chat or one-price, generally on used vehicles.

You can have payment calculations, including incentives, from MarketScan, provider networks from PEN or F&I Express, and finance networks from RouteOne or Dealertrack.  Everything in this paragraph is an API, not to mention passing data from your eCommerce platform into the corresponding dealer system. Finally, even the old faithful DMS now exposes a variety of databases, like inventory.

A few months ago, I described the role of venture capital in driving process change.  I think this eCommerce ecosystem is equally important.  Entrepreneurs can enter the space at a very low cost, relative to ten years ago, and meet most of their requirements through interfaces.

Speculation on fractal based programming language

We flew east out of Panama City, and I looked down on the faceted green hills of the Cordillera de San Blas, perhaps for the last time.  In the sky were statistically similar puffs of white cumulus cloud.  Naturally, I was thinking of fractals.

I had spent the past few days coding technical analysis indicators in Python, which reminded me of coding same in C#.  This, in turn, reminded me that although the TA community talks a lot about geometric repetition, we have yet to invent a single fractal indicator, much less a trading strategy.

I write my trading strategies in C# on the MultiCharts platform.  Its procedures for time series data look a lot like the vector-oriented syntax of Python.  Here is how to do Bollinger bands in each:

  • StandardDeviationCustom(length, devs)
  • df[price].rolling(length).std() * devs

I have to admit not having much intuition about vector operations.  Matrices and summations just look like for loops to me – clearly an obstacle to the proper appreciation of Python.  I have worked with SAS and SYSTAT, though, so Python at the command prompt seems natural.

What I noticed with the Python exercise is that the classic TA indicators were designed with an iterative mindset, reflecting the programming languages of the day – Sapir’s theory, again – and so I imagine that the reason we have no fractal indicators is that our language can’t express them.

Here are some basic things I would expect from a fractal-oriented programming language:

  • Create a dataset from a generator function
  • Derive fractal metrics, like the Hausdorff dimension
  • Compare two datasets for statistical similarity
  • Compare a dataset to subsets of itself

Admittedly, I have only a cursory notion of how this would work.  That’s why this piece has “speculation” in the title.  Meanwhile, I will continue plugging away in C# and Python.