LifterLMS Logo

 How to Prepare Your WordPress LMS Website for High Traffic

You may not be on an upcoming episode of Shark Tank, but that doesn’t mean you don’t need to prepare for a surge in traffic to your course site. Flash sales, Black Friday, email blasts, and viral social posts could all lead to a crashed site (and frustrated customers) if thorough preparation wasn’t done.

Tom Fanelli, the CEO of Convesio will explain a proven process for ensuring success when preparing for a high-traffic web event. From planning to the most critical part, load testing, to handling issues the day of the event, you will get the blueprint to make sure your client’s event is a success. The best part is, that your agency can provide these solutions at premium prices, positioning you as the expert.

  • What you’ll learn:
  • Identifying the various types of events that require planning.
  • Different optimization strategies scaling your LMS site.
  • Capacity planning.
  • Identifying and troubleshooting performance bottlenecks.
  • Determining the right tech stack for your hosting (servers, CDNs, databases, etc)
  • Real-world examples of scale events.
  • LifterLMS Load Test Examples

How To Prepare A WordPress LMS For A High Traffic Event

A high traffic event on a WordPress LMS site is a hosting problem, not a marketing problem. In this webinar, Chris Badgett and Tom Fanelli of Convesio walk through what actually breaks under load, how to plan for a real Shark Tank style spike, how to load test a course before you send traffic to it, and the caching and infrastructure choices that let a WordPress LMS scale when the moment arrives.

What You’ll Learn

  • Why an LMS site puts more load on hosting than a marketing site does
  • The kinds of moments that produce a Shark Tank style spike, and how to plan for them
  • What CPU cores and PHP workers actually are, using a retail store analogy
  • How to run a real load test before you send traffic to a live course
  • Which plugins, cron jobs, and external services to turn off during a live event
  • The caching stack that lets a WordPress LMS scale, including CDN, Redis, and Object Cache Pro

Key Takeaways

  • Plan hosting for the peak minute, not the monthly average. A thousand people in an hour is easy. A thousand people in five minutes is a stress test.
  • Most LMS crashes are workers running out first, not RAM. Know how many your host gives you.
  • Load test before every big event. Hope and pray is not a strategy.
  • Put a CDN in front of your site and turn on Redis object caching. Requests that never hit your server cannot slow it down.
  • Audit your plugin list, cull the ones you do not use every day, and pause heavy cron jobs during the event window.
  • Text message campaigns produce the fastest spikes. Prepare accordingly, or space the send.

Frequently Asked Questions

What is a Shark Tank effect or scaling event for a WordPress LMS site?

A scaling event is any moment where a large number of visitors hit your site in a compressed window. Shark Tank is the extreme case, but the same pattern shows up with big email blasts, live cohort course sessions, live events, flash sales, text message campaigns, unexpected news mentions, and viral social posts. LMS sites are dynamic, not static, so these spikes stress hosting harder than a marketing site would.

What is a PHP worker and why does it matter more than CPU cores?

A PHP worker is a process that handles one dynamic request at a time, like a cashier ringing up one customer. CPU cores are the store’s square footage. When workers run out, requests queue up, the site slows, and eventually people cannot get in at all. Most LMS crashes trace back to running out of workers first, not RAM.

Should I split my marketing site from my LifterLMS site?

Usually you do not need to. If you cache the marketing pages properly at the edge with a CDN, public visitors barely touch your server. Splitting can make sense when you want to lock down the LMS separately from bot traffic, or when you want separate teams managing marketing and course build. From a pure DevOps performance angle, one well-hosted site is often the simpler call.

How many WordPress plugins is too many for an LMS site?

The count matters less than what each plugin does under load. Many LMS sites carry 90 to 150 plugins, and a large share are one-time utilities that should be deactivated. Audit your list, turn off anything you are not using every day, and where a plugin brings 50 features to solve one problem, ask a developer for a lightweight custom plugin that does only the thing you need.

Should I turn off plugins and cron jobs during a live event?

Yes. Backup plugins, review-request emails, sync tools, and heavy cron jobs do not need to run during your one hour peak. Cron jobs are the sneaky one. A background task that processes the last hour of orders is fine at 200 orders an hour and painful at 2,000. Use a plugin like WP Crontrol to pause non-essential jobs for the window of the event.

What is a Docker container in plain English?

Think of a container as a micro VPS. A traditional VPS runs the operating system, database, web server, control panel, and utilities all together. A container runs one job. WordPress runs in one container, the database in another, each tuned for what it actually does. That focus is why containerized hosting scales more cleanly under load.

What is the difference between monthly traffic and concurrent user load?

Monthly traffic is a total. Concurrent load is how many visitors are doing something on your site in the same few seconds. Two thousand visitors spread across an hour is a mild load. Two thousand hitting checkout in five minutes is the number that decides whether your site stays up. Plan hosting for the peak, not the monthly average.

Full Webinar Transcript

Meet Tom Fanelli And Why Hosting Matters More For LMS Sites

Chris Badgett: Hello and welcome to another complimentary training by LifterLMS. I’m Chris Badgett, CEO and co-founder of LifterLMS. I’ve got a good friend and colleague, Tom Fanelli from Convesio. We’re going to be getting into some hosting issues, and some really cool advanced hosting issues that are of particular relevance to learning management system websites. Whether you call it an online course, a membership site, an online university, or a company internal training portal, these websites go by a lot of different names, but they all require a lot from the host. There’s a lot of action going on. These are basically a platform, not just a marketing site, so the hosting conversation is really important.

Tom Fanelli: Thanks, Chris. We’re huge fans of LifterLMS, and it is kind of our number one recommended LMS platform, so we’re super excited to partner with you.

What The Shark Tank Effect Really Is

Tom Fanelli: We’re going to talk about what we call the Shark Tank effect. I’m the CEO of Convesio. We are a scalable hosting platform that uses next-gen technology to allow intensive sites like LMS sites and WooCommerce sites, ones where we’re not talking about static content, to scale up. I had a chance to work with Robert Herjavec from Shark Tank at two or three companies ago. My previous company did all of the marketing for all of his investments on Shark Tank, so I got some first-hand experience with this. And more recently we had a client go on Shark Tank as well. I’m going to share what it takes to plan for that type of event.

The Moments That Actually Break An LMS Site

Tom Fanelli: A scaling event is not just Shark Tank. It can be a large email campaign, a live event, or the group of course creators who run a live cohort where everybody has to sign up, log on, and go through the course together. There are a lot of applications where you might have a lot of people hitting your site all within a compressed period of time, and that is really when we see things start to break down at the hosting layer.

Conference shout-outs are a really good example. My wife was at a big women’s conference, and from the stage the presenter said, “You have to go check out this person’s website,” and boom, it just crashed in real time at the conference. Flash sales, promotions, text messages, news stories, unexpected viral social posts. These are all things that can trigger an unexpected surge in traffic to your site.

What A Real Shark Tank Traffic Spike Looks Like

Tom Fanelli: There is not a lot of data on this out in the wild. If you go try to look up how much traffic to expect from a moment like this, you will not find much. But in the eight minutes that the entrepreneurs walked on stage, we had about 9,000 users. I took a screenshot of Google Analytics at the moment we hit 7,000, and we were doing about 4,500 page views per minute and, according to Google Analytics, nearly 100 requests per second. This is an outlier example, but if you are not prepared to handle this level, you are going to have a lot of problems that snowball. It is very difficult to recover once your website starts having problems.

Start With Capacity Planning, Not Panic

Tom Fanelli: Sometimes these events happen unexpectedly, and other times you know they are coming. Black Friday is a good example. If you know a big Black Friday viral promotion is coming, you can prepare by testing. The first thing you do is capacity planning. Think about the customer behavior that will happen on your site. This does not have to be formal.

Ask yourself the parameters of the use case. We are going to do a social post to an audience of 10,000 people, and 10 or 20 percent are going to respond. It is an Instagram audience, so it will happen fast. Is everybody going to hit within one minute, or within ten minutes? What is the primary behavior? Are they logging in, browsing static pages, checking out? Are they going through a course together? Put your marketing hat on. How many people are going to click through, how many will order, and in what time frame. All of these have different amounts of load.

Why Event Start Times Set Your Peak Load

Tom Fanelli: If 10,000 people are going to do something in five minutes, that is a massive spike. If they do things over an hour, that is a lot less load. The point of failure is always the peak, so everything you can do to spread things out lowers the amount of hardware and capacity you need. Getting a thousand people to a website in an hour is very different from getting a thousand people to the website in five minutes.

The usage curves fall into patterns. A live event where people bounce between rooms and chat has a steady sustained load. An event with a hard start time spikes fast, and the rule I see is five minutes before to five minutes after the start time is your peak. An event where people log in and then just watch a streaming video from a third party like Vimeo settles quickly, because there is not a lot of recurring load once the video is playing.

Why Text Message Campaigns Break Sites Faster Than Anything Else

Tom Fanelli: One thing I have seen people do is use text messaging to advertise. Nothing will crash a site faster than text messaging. Text messages hit at blistering speed. There are people who unknowingly send out 30,000 texts and go, “My site literally went down in 30 seconds.” That is the instant nature of text messaging. It happens very quickly, so it is one of the biggest things to plan for when you are lining up a Shark Tank style event.

The Two Numbers That Actually Matter, CPU Cores And Workers

Tom Fanelli: In the world of any high-traffic event, the two most important resources are CPU cores, the vCPUs you see merchandised at every cloud provider, and workers. Workers are the more obscure and less understood concept, and both matter because these are the resources you run out of first.

Where The Real Load Lives In A WordPress LMS

Tom Fanelli: Look at a typical load pattern. The top chart is the front-end CPU load for WordPress. The bottom chart is the database load. As a general rule, when you are running these events, the biggest consumer of load is not the database. It is WordPress itself, the front end of the application, all the code, the plugins, people going through courses, submitting content, refreshing pages, the WordPress AJAX requests refreshing widgets and animations on course progress. That is what uses capacity.

Keep Admin Tasks Out Of The Way During Live Events

Tom Fanelli: If you have a large course site and a lot of admin users, those people are consumers of the front-end WordPress CPU too. If you are a person in the back end trying to print a thousand shipping labels, that is not a good time to run that task. Try to get people out of the back end of WordPress and away from administrative functions during your live event, so the processing power goes to your learners.

The Retail Store Analogy For PHP Workers

Tom Fanelli: Workers are related to CPU, but here is the analogy that makes it click. Imagine a retail store. The store is your server. The customers are your visitors. The workers are the number of cashiers you have. The CPU is the square footage of the store, the overall capacity of what fits inside.

Visitors come in and shop. That is equivalent to people browsing your site, maybe seeing cached content. The moment they decide to purchase, they take that item to the cashier, and the cashier has to ring them up. That cannot be a cached process. If you have one cashier, you can only check out one customer at a time. If you have five cashiers, you can check out five at a time. The number of concurrent users is equivalent to the number of concurrent checkouts you can handle.

Why Sites Slow Down Before They Fail

Tom Fanelli: A PHP worker can handle a lot of requests per second, but the more complicated the request, the longer it takes. Browsing a page and fetching it back is milliseconds. Processing course progress might take hundreds of milliseconds. If you have a hundred people on the site all doing things that take hundreds of milliseconds, you need many more than one worker.

Sometimes you do not have control over how many workers you have. Your host gives you X workers on the plan. If you have experienced your site crashing, getting slow, or timing out, chances are you are running out of workers. Requests pile up. That is the equivalent of a long line forming in your store. People wait ten minutes to check out, and eventually someone walks up to the door and turns around, because it is too packed. That is when someone cannot get on your website.

Hope And Pray Is Not A Strategy

Tom Fanelli: Going into a live event, you really have three choices. You can take the hope and pray method, which is, “I hope I can handle it, and I do not really know.” You can try to educate yourself, talk to teams like ours or Chris’s, and estimate how many resources you might need. Or you can load test. It is very hard to zero in with any certainty on whether a thousand people trying to take your course will actually succeed without simulating it against your servers, your configuration, and your caching.

What Load Testing Actually Does For You

Tom Fanelli: Load testing simulates the traffic you expect, doing what your users actually do. We simulate checkouts, logins, and course sessions. It lets you find your upper limits, because it is always a range. Nobody ever says, “I am going to have exactly 5,000 people and it will be 5,000.” We had one event a few weeks ago that was supposed to have 5,000 and 7,000 showed up. Once you know the range, you can plan the infrastructure so you have no problems going in.

Reading A Healthy Load Test Result

Tom Fanelli: A healthy result looks like this. We took a WordPress site up to about 1,600 users on it at once, ran 400,000 requests in total, and had zero failures. That is what you want. Response times stayed flat under 200 milliseconds throughout the entire test. Flat is the word. If your response time stays flat under load, your site is holding.

Reading A Load Test That Failed

Tom Fanelli: The failure pattern is a test where you scaled up users, and then suddenly you see a spike in failed requests. Response times start climbing too, going way up as more users hit. Realistically, no site holds a flat line forever. If you are doing WooCommerce checkouts or LMS courses, more users means more work, and requests will take longer. But do they all complete under about 1,400 milliseconds, or is it taking eight to nine seconds? You have to decide as the business owner what level of slowdown is acceptable for your users.

Tools For Load Testing A WordPress LMS

Tom Fanelli: Two tools worth knowing. RoboSwarm is the one we use most. It works well with WordPress. It can simulate people logging into your site, buying something through WooCommerce, browsing as external or logged-in users, and even administrative users. It is very affordable for what it does out of the box.

Loader.io is a simpler tool from SendGrid. It only does externally non-cached pages without some gymnastics. RoboSwarm is going to be a lot more WordPress friendly than Loader.io for anything logged-in.

The Metrics To Watch Under Load

Tom Fanelli: When you run these tests, watch four things on the back end. PHP response times, and we look for something around 400 to 500 milliseconds, under 800. How many requests per second your site can handle. How many database queries are happening per second. And the response times of any external services you are calling, because those can drag everything down.

Why External Services Can Drag Your Whole Site Down

Tom Fanelli: External services can be shipping tools, fulfillment tools, chat widgets, inventory systems. If they are slow, your workers wait on them. Here is the analogy off the top of my head. Imagine you are checking a person out and you now have to call the credit card company. How much longer is that checkout going to take than if you just ran their card and were off to the races? Every backup makes your line longer and longer. All of these things have the potential to slow you down if they cannot handle the load you are throwing at them.

Long Running Queries And Inefficient Code

Tom Fanelli: Long-running queries and inefficient code slow down every transaction in your LMS site. That is one of the reasons we love LifterLMS. It is highly performant and scalable and has great code behind it. But I have seen people using other unnamed LMS platforms that love to put in all sorts of fancy widgets, plugins, and animations. That stuff drags your site down. You really have to ask yourself, do I need this?

Turn Off Plugins You Do Not Need During The Event

Tom Fanelli: Do I need this for the event I am doing right now? You can turn off some of these things. You do not need to be running backup plugins in the middle of your one hour moment of glory with 10,000 people on your site. Turn some of the stuff off to minimize the load during your live event. Of the 90 plugins you are running on your site, do you actually need every one of them during the hour that your big event is going on?

Cron Jobs Are The Silent Killer

Tom Fanelli: Shut off your cron jobs. Real world example. There is a WooCommerce cron job that does something with order notes. It is no problem if you are getting 50, 100, 200 orders an hour, running hourly. The minute you start getting thousands of orders an hour, that job you did not even notice was doing anything is now going to run during your peak sale and try to process the last 2,000 orders in the previous hour. What do you think happens to the people still in the middle of that sale trying to purchase? Everything gets slow. Use a plugin like WP Crontrol to pause them for the day, or for the next 12 hours.

Application Performance Monitoring With New Relic

Tom Fanelli: Application performance monitoring is really important. New Relic is one you have probably heard of, and many hosting providers support it. It shows you how your site as a PHP application is performing, including the response times we talked about. It is a little bit technical to learn, but a good hosting provider will read it for you and point out, “This plugin is taking a lot of resources, we should switch it for something lighter, or optimize these DB queries.” Datadog is another option. Kinsta has an APM feature built in. These are the kind of tools that give you deep insight, like query monitor on steroids.

Why A CDN Is Non-Negotiable

Tom Fanelli: Use a CDN. The most popular one is Cloudflare. Most CDNs follow the same premise. They have server locations across the globe, so when you have a geographically dispersed audience, users get resources loaded from the location closest to them. If Lawrence is in Australia, he is being served from Australia. The big win is that those requests never hit your server. That gives your server more capacity for the important stuff, like serving up people’s courses.

The Performance Stack We Recommend

Tom Fanelli: Here is the stack we believe is the most performant. Nginx as the web server, because it is very performant. MariaDB or Percona for the database, both very good. Redis with Object Cache Pro as your object cache layer. WP Rocket as a page caching plugin. And Cloudflare and New Relic to round it out.

Redis And Object Cache Pro Explained

Tom Fanelli: Redis is what is called an in-memory object cache. It uses RAM to speed up delivery of objects. An object in WordPress can be many things, a set of data, a set of resources. Redis stores those in RAM and delivers them very fast. A typical database might return queries in a couple hundred milliseconds. Redis returns them in 20 or 30 milliseconds. That is an order of magnitude faster. The more requests you offload to Redis, the faster your website runs.

Load Testing LifterLMS On Bargain Hardware

Tom Fanelli: Bonus material time. I did some load testing of LifterLMS and I want to share the results. We used the cheapest DigitalOcean droplets we could find, and we had no sophisticated caching whatsoever. No CDN, no Redis, no caching plugin. I turned on server caching, but honestly it was not really in use, because by default when you log into WordPress you are bypassing caching. So this is essentially no caching, no edge caching, no Redis, nothing, on the slowest droplet you could find.

We ran a 100 concurrent user test. A hundred people taking about a minute or two to go through the LifterLMS Cryptocurrency course. We had these hundred concurrent users hammering the course on this low-end droplet.

Where The Load Actually Landed

Tom Fanelli: On that low-end droplet, we used between 500 and 600 percent of CPU. A hundred percent in these charts is one CPU core, so on an eight-core machine the max is 800 percent. The top graph is the front-end web server, and the bottom is the database. As with the other test, the database is not the big load consumer. WordPress is. Very little RAM was used. People do not usually run out of RAM during these events. It is CPU cores and workers. I had the test allocated 150 workers, and it only used 19.

What Better Hardware Buys You

Tom Fanelli: We ran the same test on one of our production Google Cloud clusters, C2 compute-optimized. This is only an estimate. Every site, platform, and server is different. On the DigitalOcean side, extrapolated per 100 users, you need about 150 vCPU cores and nine gigs of RAM to reach 2,000 concurrent users. You cannot even get a droplet that big.

On the Google C2 side you need almost a third of the vCPU cores, nine workers versus nineteen. Google can do in nine workers what DigitalOcean took nineteen for, because these processors are much faster. You could handle 2,000 concurrent users with 45 cores on Google. And if you are on premium optimized or compute-optimized DigitalOcean droplets, you will get results closer to Google, not this baseline. This test was deliberately the worst case.

Why Real World Users Stress Servers Less Than Scripted Ones

Tom Fanelli: One caveat on this test. It would likely be slower for a real world user. A real user might take 10 or 15 minutes to go through this course, not two. The load is spread out. If you know you are going to have a lot of people going through together, one design lever is to put some long paragraph answers in the course. You can deliberately slow people down through course progression. And adding a CDN greatly reduces load hitting the server, because you offload all of those static requests.

How Convesio Approaches WordPress Hosting

Chris Badgett: Tom, that was awesome. Tell us a little more about Convesio, the story of the hosting company and how it differentiates.

Tom Fanelli: I have been building websites since 1995, well before WordPress. I was always frustrated that for the vast majority of hosting companies, they are all the same cPanel type thing. I spent time in the agency world and then in startups, and I saw how things at the enterprise level were done as we grew. I kept thinking, why can’t WordPress hosting have really awesome technology behind it, instead of the legacy single-server VPS setup? So we set out to reimagine hosting. We built a new way to host WordPress using containerization and Docker.

What we have found is that our superpower is e-commerce, membership sites, and LMS sites, the sites where you need a lot of processing power because they are interactive, not static. We focus on businesses doing between $50,000 and $5 million a month in online revenue, and we keep those sites up, performant, and scalable at a moment’s notice.

What True Auto-Scaling Means In Practice

Chris Badgett: On your site it says true auto-scaling. What does that mean, especially for LMS creators who might start small but have a big event coming?

Tom Fanelli: At most hosting providers, you buy a plan and get X resources. If you need more, you file a ticket with support and maybe endure downtime while they resize the VPS. None of that is automated or available within seconds.

When you deploy a WordPress site on Convesio, if it comes under load, it can replicate itself. The site creates a copy of itself, and traffic distributes between two instances. That can be manual, drag a slider and deploy ten more instances, or automated, so when the load goes over 70 percent we deploy another instance. It takes seconds. Instead of being trapped in a single VPS, you can multiply the site and scale it in near real time without opening a support ticket.

Hosting For People Who Do Not Want To Be Sys Admins

Chris Badgett: Your site mentions sysadmin free. Some LMS users are advanced in e-learning and business, but they do not want to be in the technical weeds. What do you say to them?

Tom Fanelli: That is exactly who we built the platform for. We look at it like this. We are your sysadmins. We run load tests, we run New Relic analysis, we handle it. A good bit of our business is service-oriented. We have a service called ScaleOps where during live events our engineers are side by side with customers in Slack, monitoring New Relic and the infrastructure, so the customer can focus on the event and know someone is obsessing over the site’s performance. We did not build Convesio for developers or engineers. We built it for business people who do not want to worry about that type of stuff.

Should You Split Your Marketing Site From Your LMS

Chris Badgett: Should people split the marketing site from the more resource-intensive LMS site, or keep them together?

Tom Fanelli: I can see pros and cons. From a load perspective, if you are doing edge caching correctly, people hitting your public marketing site are so little load, because with full-page caching in Cloudflare, they are not even hitting your server. They are served from the edge. So most of the time I like to not have multiple sites to maintain.

Some pros of splitting. You can lock down the LMS side much better if it is not attached to your public marketing site, shielding it from bot attacks and things that jeopardize it. And you can give a marketing team versus a course team separate access. But from a pure DevOps perspective, unless there is a unique scenario, you probably do not need to separate them.

How Many WordPress Plugins Is Too Many

Chris Badgett: How many plugins is too many? Any general advice for someone who wants to pare down?

Tom Fanelli: I routinely see people running 90 to 150 plugins on their site, and I hate it. First, I see people litter their stuff with one-time plugins. Export utilities, import utilities. Are you using that every day? Shut it off. Take an inventory.

The other thing I see world-class agencies doing is a really smart move. A lot of times people install a plugin that does 50 things because they want one of them. You can get a much more efficient custom plugin created to do that one thing. Agencies like Wisdom Labs, which does a lot of LMS work, will actually rip out off-the-shelf plugins, assess what the business needs, and then write a small utility plugin to patch it. Very efficient, no overhead of 49 features you are not using.

Instana Versus New Relic

Chris Badgett: How is Instana as an alternative to New Relic?

Tom Fanelli: Instana is something we are rolling out company-wide. It is a competitor to New Relic. In my opinion, New Relic was one of the first and most popular platforms, but a lot of newer tools out there are more sophisticated. New Relic was designed in an era where we used a lot of servers. Newer tools are born in the containerized world. They are Docker native and Kubernetes native. Instana is one of those tools that favors containers. They do similar things, but we like Instana better.

What A Container Actually Is

Chris Badgett: Can you do a quick mention of what containerized means to a novice?

Tom Fanelli: A container is a micro VPS. A traditional VPS has all this system software, your database, your control panel, all sorts of utilities running. A container is a very small version of a VPS that does one thing. In our environment, WordPress runs only in a single container. Your database runs in a separate container. Each container is optimized to do just what that function is. A container is a highly optimized, very lightweight micro server for a single application.

Where Scalability Pro Fits In

Chris Badgett: Do you have any familiarity with the Scalability Pro plugin, especially with LifterLMS?

Tom Fanelli: I have worked with a couple of clients that use it. It does what it says it does. It optimizes indexes and things like that. I have not done detailed load testing on it, so I cannot point to a specific percentage gain you should expect. I believe it was originally designed with WooCommerce in mind, but it does database-wide things, so I am not sure how it works specifically with LifterLMS. I would love to meet Dave, the author, and dig in properly one day.

Making Sense Of Concurrent Users Versus General Traffic

Chris Badgett: One challenge I see in the LMS industry is people wrapping their heads around the difference between concurrent heavy PHP worker load and general monthly traffic stats. They feel they need a lot more capacity than they actually do.

Tom Fanelli: I will make it even more complicated. It is not even as simple as general traffic. There are processes inside WordPress itself that consume load. People report random CPU spikes they cannot trace back to traffic, and it turns out the WordPress site is running processes in the background. This is where you need a team to help sort through it and understand exactly what your performance is going to be.

Final Thoughts And Where To Reach Tom

Chris Badgett: This has been an incredible presentation and Q&A. Any final words about Convesio and how to connect with you?

Tom Fanelli: This is what we are passionate about. If you are struggling, talk to us. We are very generous with our free advice. I will get on a call with you and listen to your issues and concerns and give you free advice for whatever host you are on. No need to switch to us. If we are a fit for a commercial arrangement, awesome, but we love to solve people’s problems.

Chris Badgett: Tom, thanks so much for sharing all your wisdom with us today. Convesio is at convesio.com. I hope you and everybody on the call and everybody watching later has a great rest of your day.