RDVT, which trades on the Nasdaq. Red Violet is a leading provider of identity intelligence and analytic solutions, helping organizations verify identities, mitigate risk, detect fraud, support regulatory compliance, and make better business decisions through its proprietary use of data and technology. The company serves a wide range of industries including financial services, insurance, government, healthcare, and real estate. On behalf of the company, we have Camilo Ramirez, SVP of Finance and IR.
Thank you Errol. Appreciate it. See a couple familiar faces, but mainly new faces. Great to see. I like to keep it conversational, if you guys have any questions, feel free to ask. Feel free to ask any questions. I'll start off with a little correction there. I'll start off with a little bit of company background, management history. We'll go over the business model, competitive landscape, couple use cases. We'll get started. Again, feel free to ask any questions. A little bit about myself. I've been at Red Violet for about eight years now. Came over from ADT Security Services. What we do, identity verification at our core. Understanding the individual on the other side of any type of transaction, whether it's commerce transactions, criminal activity, understanding those individuals. Management's been together for about three decades.
In the late 1990s, they started a company called Seisint. Same in identity verification space, much different business model, as you can imagine, 1990s to now. Ultimately sold that off to Reed Elsevier's LexisNexis. Give me this color too, because that's going to paint the picture around the competitive landscape. Non-competes expired. Got back together, started TLO. One of the founding members was personally funding it. Sadly, he ended up passing away abruptly. The company was not yet profitable at that time. They had a run rate of about call it $20 million-$25 million. They were going through product development, building out the platform. Ultimately, they sold that off to TransUnion for just under about $200 million. In aggregate, call it around $1 billion within those two organizations.
Again, non-competes expired, got back together, they got an opportunity to go at it at a third time with all that institutional domain knowledge that they had in the previous two iterations. The space has completely changed since those iterations. We are cloud native from the beginning. We had large language models and machine learning models from the inception. We are AI embedded from the beginning as opposed to the competition. They are in data rooms as opposed to cloud native infrastructures. That gives us a nice little competitive advantage. Essentially, what do we do? We aggregate those disaggregated databases, call it liens, judgments, credit header data, IP addresses, mobile IDs, anything and everything on every adult individual, and create a 50-year longitudinal identity graph. Understanding all the movements all the way. I'll take a step back.
In this iteration, we also did an acquisition of a company called Fluent. What they do, they have performance management marketing pages, win an iPhone, win Super Bowl tickets. Not websites that you and I are interacting with, but it's going to be that underbanked and underserved population. You're going to have really good IP addresses, some really good information, and then we also aggregate information from university records, all public record data. We can validate those data inputs and make sure they're valid data, assimilate it into our identity graph, and go back out. We win a lot on that underbanked and underserved. As it's entering in our identity graph, it's building that foundation. Once they go out, purchase home, purchase vehicles, they're able to add that additional information to identity graph, so you have that full life cycle.
Understanding who was a known associate when you were in college, you had a roommate, understanding that relationship, then potentially there was criminal activity 30, 40 years later. You're able to have that connection with that individual, even though you were only connected through the credit header profile as a roommate. You know they're known individuals that had that relationship. Just showing that historical value of that identity graph as opposed to someone coming in, where they're going in today, pull down that data, and if they're able to assimilate that data, right? Because we get that question where why can't AI just recreate your identity graph, right? It's, one, they have to have the knowhow on what data assets to purchase. I'll jump into that a little later on the data assets, give some use cases around it.
Have those relationships to be able to pull down the whole entire U.S. population, right? Because we bring that data in-house and assimilate it as opposed to making calls out, like some of our customers. If someone's able to gather those assets, do they have all that historical data needed for that identity verification and then those continuous updates. Today, depending on the data point, we're either getting daily, weekly, or monthly updates. Having to be able to have that data asset accurate and complete at that point in time. Like let's say a bank, you're opening a bank account, they're doing a KYC verification, know your customer verification on you. That knowledge is only good for that point in time. Let's say you go open another bank account within that same organization.
They're going to re-pull that KYC verification the following day because you could have a judgment pulled on you could have a bankruptcy the night before, or so forth. If they relied on that initial application, they can potentially fund the mortgage application even though you're going through bankruptcy, right? They need to understand that individual throughout the history. Like I say, we serve five different verticals. I'll start with the easiest to understand. Collections use case. Collections, there's debt collector. Let's say they had bought 1 million records from Capital One. They need to understand that population. Have they filed for bankruptcy? They'll batch that information over.
We'll scrub it for bankruptcies because they can't call on that, not to get fined like $1,000 per call, per incident. Right party contact information so they can try to collect on it, and then we'll send it right back. Second industry is going to be, call it real estate. We serve real estate in two fashions. One through our IDI product, which is propensity to sell, so like powering prop tech companies. Give me a list of everyone that's 80 and above that lives in a two-story home. As you can imagine, on that side, it's been slightly suppressed given the real estate market. Where we do have a lot of success in real estate is our FOREWARN product, which is essentially just a skin over our core platform. It's just a go-to-market strategy and branding. That is a safety solution. That's mainly a safety solution.
Let's say you're a real estate agent. You get a call, "I want to see this $3 million home. I'm only in town till tomorrow." You know nothing about this individual. You've been marketing yourself, putting yourself out to market in a certain fashion. They're saying their name is John Smith, purposely a very generic name. I'm going to show up in a Mercedes-Benz S-Class. Sorry if your name's John Smith and you drive an S-Class. Essentially what it does, it does a reverse phone search when that call comes in. You don't see John Smith, you don't see that S-Class. What you do see is this individual was just released from prison for sexual assault or some crime. You're not going to show that home to that individual. What we saw there is a lot of crime committed against real estate agents.
It's one of the industries that these individuals are just showing up to empty homes to individuals that they know nothing about. They're just receiving a call, and that's a big safety risk. We've seen a lot of good success there. We go after the association as opposed to the individual realtor. Realtors, they pay dues to their real estate association, and to continue to pay those dues, they want to show value add to their members. Once we get in, it's relatively an easy sell saying, "Hey, here's a safety product, proactive safety solution." Almost everything out there is going to be reactive, for lack of a better term, and I apologize, it's going to be more find the body products. Here's a panic button. You're getting attacked, seeing someone come in. This is more of a proactive safety solution.
There's about 1,200 real estate associations in the U.S. Today, we have just over 50% of those associations. That leads to the next question. What's next for FOREWARN? Recently, we released our household product. Historically, it's always understanding the individual on that other line from that perspective, but also from a household risk, so understanding who lives in that home. Let's say you have a prospect. You're going to a home to potentially list this home. You would want to understand who else lives there. Is this an individual that has an elderly child living in the home? What type of background do they have? More of a safety solution from a household risk, understanding the entire population within that home. Then also with the household risk, we can go to other markets.
A good example is going to be home health care. You understand who you're providing services to from an organization standpoint. You typically send out one home health care practitioner to provide services, but you don't know who else lives there. Is there an elderly child with a violent background? Something as simple as red, green, and yellow. Green, you're good. Send out one individual. Yellow, let's review this. Red, maybe you're going to send out two individuals to that home on that first visit to assess the risk associated with that household. Expanding that across different verticals, and expanding that FOREWARN safety brand. Because it's just a skin on our core application. Within IDI, there's multiple products that we go to market with, but there's not specific entity branding around it per se, as we have for FOREWARN. I listed out two verticals.
Third, let's say financial and corporate risk. On our last earnings call, we gave some color on that to perform really well. Background screening rolls up into financial and corporate risk. I like to give a specific use case that shows our data accuracy and some of the competitive advantages. I'll give this one for background screening. We disclosed the name previously of the customer, so I'll name them. Early on, we won a company called Innovative from TransUnion. What Innovative does, they facilitate the background screening. Let's say you're Walmart. You have an applicant come in. Again, very generic name. The applicant lists John Smith. They list four addresses. Walmart will send that to Innovative. Innovative will come out to us, say, "Hey, is this data accurate and complete?" We'll say, "It's accurate, but it's incomplete.
They left off the fifth address. Usually that's where the criminal record lies. We'll go pull that criminal record, send it back to Walmart and make that hiring decision. We specifically stay out of the hiring decision-making process because we don't want to fall into the Fair Credit Reporting Act space. There's a lot of paperwork that falls under the Fair Credit Reporting Act, reporting to the end consumer and so forth. We like to stay behind on the space right before where we're doing the identity verification and accuracy and completeness verification. A little bit more about Innovative. Ultimately, Innovative was purchased by Appriss. Appriss was then purchased by Equifax. As you can imagine, Equifax has way more data than us, much larger budget, and that Innovative contract was up for renewal. Equifax came to us, asked us for a three-month extension.
We said, "We understand you're trying to execute on synergies. We're here to help. We'll say we don't believe you'll have the same lift on data that you see with us, but here's your three-month extension. Let us know if you need anything." They came back, asked for a couple more extensions to ultimately sign the long-term agreement because they couldn't reproduce the same lift on that data, on their data as they were seeing with us, even though they have way more data. They have individual data points. It's what we do with that data and how we aggregate and simulate it, and the learnings between those individual data points that we learn from that 50-year longitudinal identity graph. Ultimately, we have a really good relationship with Equifax, and we expanded that relationship. We're powering other products within their work stream as well.
That leads me to our cost of revenue. I'll revert back to the last two verticals. From a cost of revenue standpoint, if you look at our financials, you'll see that about 40% of our cost of revenue comes from one data provider, right? That is not just one single data source. That is multiple data source. It comes from a multi-decade relationship that we've had throughout the different iterations, and we want to be multi-source on every data point, so there's no dependency on one individual vendor. I would say we have about 70 different vendors with multiples of hundreds of data points coming in, and we want those correct socials, we want those transposed socials. We want to understand, so as you're doing a search, we'll bring back that correct individual, whether you're entering the transposed social or the correct social.
We get data from two of the top three credit bureaus based off of our history of who've we sold to. You can assume one of them we don't get data from. That leads me back to Equifax, where there's potentially a relationship where we're acquiring data, processing, assimilating it, and then selling it back to them, even though they had those individual data points. Just adding value to that aggregation platform. Third, we went over collections, real estate, financial and corporate risk. Fourth one, thank you, is going to be investigative. Investigative for us, we have, let's say, law enforcement, private investigators, and so forth. About a year and a half, two years ago, we hired an individual called John D. McDonald. He was credited with building the public sector revenue at TransUnion.
We brought him on board, built a team around him of about 20, 25 individuals, and we're going to market on both the law enforcement side and federal side. In aggregate, we call it public sector. I'll start with law enforcement. We've seen really good success there. Today, we have about 1,000 law enforcement agencies. Depending on what sources you cite, there's anywhere from 15,000- 16,000 law enforcement agencies within the U.S. We have some of the, call it, top five law enforcement agencies from a state level. Being able to use those as use cases as we go down market to some of the smaller law enforcement agencies has been very helpful. Then something as simple as our UI interface. Let's say you're running an investigation. You have a witness. There was a hit-and-run.
We have our mobile application saying, "Hey, there was a red F-150, and I have a partial plate, two letters." Right? We can drop a pin on our mobile app, expand the radius, say, "Enter your red F-150." It'll drop pins of all those registrations within that area because crime is typically committed within the certain mile radius of the home. You enter that partial plate, and it'll remove all the pins that don't match it. Now you're left with one or two that you can go investigate. Bringing that investigation timeframe significantly down as opposed to going, pulling all your red F-150s, running through those, and then checking manually, "Hey, what's the plate on this?" Right? We've just compressed that timeframe as a whole. We've seen really good success there, or even from a perspective of, "Hey, we're going to execute a warrant.
I know the individual that lives there. Here's the typical vehicles." You show up, there's four other vehicles. You know nothing about those vehicles, what type of background those individuals have, violent background or so forth. You're able, on the mobile app, just quickly look it up to see what type of criminal background. You want to continue with that warrant, or you're going to bring up additional backup and so forth. We're really excited about the law enforcement space. Also on the SLED sign, which stands for State Local Educational. We've seen good success even on the educational side, which is particularly a use case. When I first saw it, I was a little surprised, but it makes a lot of sense.
Where I live in South Florida, a lot of parents say, "Hey, my child lives with the grandparents, so he gets to go to the better school district." Right? Grandparents live in the better school district, so forth. What we're seeing a lot, one, the home school district is losing funding, one, because they don't have the enrollment numbers. Secondly, the better school districts are overcrowded, and their standings are starting to drop, right? Because they don't have the relative teacher-to-student ratio. On both sides, you have the losing school district asking for address verification. They're verifying, does this parent truly live in this school district, and where does the child reside with the parent, right? We're doing the verification on the parent side. It should be the home school district, so they've got to send the child back to the correct district.
Also on the better school district, they don't want that overcrowding, so they're asking for those validations as well. We're winning business there. Even something as simple as veteran benefits. Certain states, they receive funding based off of veterans, their counts, and benefits that they're sending out to the individuals. They're doing population analysis. They want to understand, of my population, how many individuals are veterans? Are there any veterans that we're not serving today? Let's have a campaign outreach, so they don't lose funding ultimately come renewal from a usage perspective. Lastly, we have our emerging market vertical. This vertical is mainly verticals where we don't have a large revenue footprint today, but there's verticals where they can ultimately be their standalone vertical. In this vertical, we have government.
As you can imagine, those three-letter agencies, four-letter agencies, those can ultimately be their own vertical. There's also insurance. Today we don't have a big focus in insurance. Historically, they've been large revenue contributors. They are on our roadmap here in the future, but we don't want to be a mile wide and an inch deep. Ultimately, on the government side, when we look at public sector as a whole in aggregate, it's performing where we anticipated it to be performing. I would say on the law enforcement side, we've seen over-performance based off our expectations. On the federal side, I would say it's moving slower than we anticipated, and that's, I believe, mainly due to their underappreciation of how long those sales cycles can truly be.
When you take a step back just from not looking just at close rate straight revenue dollars, if you compare us from two, three years ago, we've been able to enter conversations that we would have never been able to enter three years ago. Some of these RFPs are made publicly available. Some of the larger ones are not publicly available. It's more about who you know in those conversations, and John D. McDonald's been able to open those doors, and we are participating in those conversations, going through testing and so forth. I'll revert back to financial corporate risk, back to background screening. A couple of quarters ago, we made an announcement that we won one of the largest payroll processing companies, if not the largest, in the U.S. We're really excited there because we've been investing in the background screening space heavily.
We're able to win that largest provider and as opposed, naturally, you usually work your way up. In this instance, we'll start at the top and work our way down. We'll start seeing revenue contribution, low to mid six figures on an annual basis from a contractual minimum. That contract went into effect in April, so you'll see that revenue contribution here in Q2. Ultimately, we believe once they're fully ramped, that'll be a seven-figure contract in totality. We're excited about that. Pause to see if there's any questions on use cases. If not, I'll jump into revenue model and so forth.
What's the payroll guy using this for?
Background screening.
They're reselling that to.
Yeah. Let's say an employer, we use one of the payroll companies, it's all bundled with the payroll processor. You have the bundling of your payroll services and also the onboarding background screening process. It's just an ancillary product for them.
By the time they've got it, when do they kick the person out?
No. They're doing onboarding, right? Let's say you use ADP, you're going to post your job rec through ADP or Paylocity. Once you say, "Hey, we're going to extend an offer to this individual," they're already in your payroll system because they offer more than just sending paychecks out, right? It's the full onboarding process, then they'll go through the background screening process. If they pass, awesome. Move forward, then you can onboard them formally. If you reject them back, they fall off. Yeah. Any other questions? I'll start at Yeah.
Oh, I have a broader question.
Yeah.
That is.
No, I like it better this way.
Could you talk a little bit about the annual revenue retention and whether after you renew a new contract, it's actually under a year or two years?
Yep. Yeah. I'll jump into the revenue model and then give a little color on that. Typically, our contracts are annual contracts, with auto renewal. Some of our strategic customers, they're much larger contracts, 2, 3, 4, 5 years, depending on their relationship, what type of data they're using and so forth. From a gross revenue, we report gross revenue retention. From a gross revenue retention, we're about 96%. Historically, these businesses trend around 90%-95%. We've been at the top of that range or over it. We still give color that typically they run 90%-95%, from the competition standpoint. From a renewal perspective, it's typically a high renewal rate. It auto renewals. You have to give us 30-day notice on non-renewals. Typically, when we do non-renewals, it's either they were bought out, consolidated into other organizations, or they went out of business.
We typically do not lose because of data. When we're going after customers, we like that head-to-head competition. A good example in certain industries, collections. I'm only using collections just because it's easiest to understand. It's going to be what the waterfall effect. We'll come in, they'll get those 1 million records from Capital One that we spoke about earlier. They'll send it to tier 1 provider, let's say TransUnion. There'll be a certain fallout that didn't get hit. They'll send it to tier 2, let's say RedOwl Spheres , LexisNexis, Accurint product, and then we'll be happily coming in at tier 3. We know it's been scrubbed twice. We have a small percentage of that 1 million count record, and we're going to have high hit rate on that because we have confidence in our data accuracy.
We'll come in third, have a high hit rate, and the customer ultimately wants the highest hit rate, tier 1, because they're going to have better pricing at the tier 1 because they're going to send more records. We'll move up the waterfall through that aspect. In the other industries, we'll do a 15-day trial. Ultimately, they'll go on, run parallel, get value add and from that perspective. Historically, our contractual revenue's been about 80%, give or take. Then when you do look at our historicals, we give color. Sometimes you'll see it dip down to 74% or 75%, and that's due to one-time transactional revenue. Certain situations, Q1 of last year, there was about $1 million in one-time transactional. When you compare year-over-year, I would suggest always overlay your contractual revenue metric to see if there's some noise, right?
If you look at the front-facing number, it looks like we only grew 17% year-over-year. Once you back out that one-time transactional revenue, we grew over 20%. I would suggest just layering that contractual revenue number so you can see some of that noise. In that situation, let's say they wanted a CRM update. They wanted to update their full internal database. We gave them a one-time update. We recognized that revenue upfront because they found most of their value then. Then there's a much smaller contractual obligation to maintain and update that platform thereafter on a quarterly, monthly, or whatever basis they decide. It's highly contractual. Moving down the P&L, unless you have any other revenue questions, I'll go to cost revenue.
I've just got one little one.
Yeah.
That is, do you reduce your prices every year, or do they go up, or they stay-
Yeah. No, good question. I think since inception, we've only had two price increases from a transactional perspective. We haven't leveraged the price escalation for contractual customers, so there's room there in the future state, but there's no need to do that today. We don't need that additional lift. From a pricing perspective, we're pretty much aligned with the competition. What we are seeing is TransUnion is trying to reduce some of their contractual pricing to compete with us. Most of the time, that cost is just going to get passed along to the customer, so it's immaterial to them. What they truly care about is data accuracy and data throughput. Another example on data throughput. Today we power seven of the top 10 identity players. Without naming any customers, call it Prove, Jumio, Ekata, now owned by Mastercard.
They all have their unique way of clearing identity, but they don't own any of the PII information, personal identifiable information. They need to call out either to us or one of our competitors to clear that identity. In an instance, there was a mobile authenticator. They were doing well into the six figures with us. Ultimately, they were going through a funding round. TransUnion ended up leading that funding round, and with the stipulation that you have to move off IDI data's subsidiary, move off their platform, and use the TransUnion TLO product. Their CEO called us, let us know, and said, "Hey, we're here if you need anything." Ultimately, we saw that revenue fall off, but within a couple of months, we saw that revenue revert back, and this was, I would call it maybe 2018 at this point. Don't quote me exactly.
To this day, they haven't been able to move off our platform. They've actually grown since then on our platform. The reason they weren't able to move off is once they moved off, they were getting complaints from their customers saying, "Hey, I made calls out, and I'm not getting a response back." One, the throughput capacity wasn't there, so they weren't able to push all these records through because they're pushing just that one customer well into the millions of transactions every day, right? That's just one customer as opposed to every other customer. That's foundational. It's because we're cloud-native. During peak productivity hours, we're able to add additional stacks to support that additional capacity. Let's say overnight, we're able to remove those additional stacks, so we can control our costs as opposed to competition. They're not in the cloud.
They're in data warehouses, they can't handle that additional capacity without going out, buying additional hardware, and so forth. The competition's made announcements that they're investing to move to the cloud. They've tagged specific dollar amounts, $150 million. They came back out, we're going to add another $50 million. They haven't been able to move to the cloud. TransUnion specifically stated they moved to the cloud when they bought Tru Narrative because they were cloud-based. From what we're hearing is it's still a disparate interaction. You're getting data from Tru Narrative, you're getting data from TLO, it's not truly cloud native. One section is, but not the other. We like to compare it to the game of Jenga, right?
Once you start removing these little pieces, you're going to have cascading impacts throughout the whole stack, we don't believe they're going to be able to effectively move that to the cloud. If anything, they'll have to start from the ground up. No worries. Cost to revenue standpoint, we like to contractually obligate long-term agreements. In that one example, we have one vendor that accounts for about 40% of our data costs. That's multiple data assets. That's a five-year contract. We just renewed it late last year. We like to renew 18-12 months out. It renewed relatively flat for a renewal, so we're good for another five years. That relationship's been in place for multiple decades through multiple iterations, so no risk there. We always get the question, what if they decide to escalate your price? Just tracking how I'm doing on time.
What if they decide to escalate your price? We're multi-source on every data point. If they escalate it, we'll just give it back to those individual data points, date of birth, name, social. All the learnings that we learned from those connections, that's proprietary to us. That stays with us, and then we'll just bring our tier 2 provider to fill in the gap, so no risk there. Moving down to P&L. Actually, we have six minutes. I'll go AI defensibility, and then I'll continue down the P&L. We always get the question, why can't AI just recreate your platform, right? I think there's a bit to unpack there, right? Because it's not just a data question. One, you have to understand what data assets to go out and buy.
In the Equifax example, they have way more data than us, but yet we have a higher accuracy rate. It's not, let's just go out and get all this data. It's what data do you actually buy, and how do you fill that gap on that 50-year longitudinal identity graph? Being able to have those relationships where those credit bureaus will give you the entire U.S. population, have high confidence in you that you're not going to leak that data out. As you can imagine, they don't want that press. "Hey, TransUnion, Equifax gave this data out. Ultimately, it was leaked." They don't want that press either. One differentiator is we built our proprietary language called IRON. In each iteration, they had proprietary language.
Your C++, Python, it just can't handle that identity resolution, that compute power to assimilate this data, consume it, and create the identity graph. In this iteration, we have what we call IRON, all in-house built. The nice thing about this iteration is that, let's say we hire a product development individual. They can come in, code in any language that they want, C++, Python, R, whatever their heart desires. It'll drop down and convert to IRON, and then it'll execute into our platform. As opposed to our previous iterations, those languages, that software development individual would have to come in, spend six months, understand that language, and then start coding in it. There's a big gap between ROI from hire and being able to start doing product development on the platform as a whole. Some of that knowledge is just gone as well.
As you can imagine, startup nature, you have these developers really excited, have skin in the game, and then they get bought out, and they're employee 10,001, and that institutional knowledge just gets leaked out over the years. There's a big gap from that perspective as well. It's also an infrastructure question. How do you keep this data safe, right? We've had the same CIO in all three iterations, and it's safety first, right? As you can imagine, we have a high-value asset, and bad actors want that data. We're ISO 27001. We're working towards our ISO AI certification as well, SOC 2 Type 2, PCI DSS Level 1. We do penetration testing, and now with AI, we can assimilate those penetration testing models as well and run some of those models against us and be proactive from that perspective.
Lastly, it's a regulated industry, right? You can't have law enforcement go execute a warrant, arrest an individual with 90% accuracy out there. Hey, I'm sure you guys all put your name in ChatGPT, Claude, all of it. Some of it's good data, some of it not so good. You can't have law enforcement executing warrants on this type of inaccurate data. I think it's more of a tailwind for us because now it's compressing those development cycles as well. We'll build out these platforms or product enhancements in a much quicker fashion. A couple of projects on the roadmap is interacting with our platform. These platforms have been very data input driven, so give me name, date of birth, and they'll return results back. A good example I use is Camilo Ramirez related to an individual with a violent background?
Today, you have to go and search Camilo, go through each individual associate, look at their criminal history, and make a decision. You stop when you stop. As opposed, you're interacting with it in a conversational manner, and it's, "No, he's not," or, "Yes, he is," because it's executed all those searches, and it'll give you the individual that has that violent background. Just being able to converse with the platform, because we have this treasure trove of data, of high-confidence data, and how can you glean additional insights from it, whether it's cohort analysis and so forth. That just expands that roadmap of use cases. We have two minutes. I'll pause, see if there's any questions. All right. Two minutes. I guess future state, right? About three years ago, we gave color that we're going to grow 20% year-over-year for the next three years.
This is that third year. That is still our target, that 20% target. Laws of larger numbers, right? It becomes a little harder, but we still have high confidence in it, whether you're a couple points below, a couple points ahead. Last year, we ended right at 20%. Q1 top line was just over 17%. Once you back out that one time, you're around about 22%. We continue to track that. Q1 last year had the one time, Q2 of last year was slightly down from Q2. We gave some color for April. We said on earnings call, April, one of the strongest months we've had, record month from that perspective, really excited about that. Questions, comments? If not, I'll give you one minute back. Thank you, everyone. Thanks for the questions