May 21, 2021

Continuous learning and the API advantage

REST APIs stand out from older methodologies like paper forms or file feeds because we can continuously learn from the data that flows through our system.

Nicholas Bannister

{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"At Noyo, we're building the next generation of data infrastructure for the insurance industry. Our powerful APIs transform the way benefits administration technology platforms (like Rippling, Namely, and Zenefits) exchange member data with insurance carriers (like Humana, Ameritas, and Sun Life). APIs enable a seamless experience for consumers, allows benefits technology platforms to build exciting new products, and reduce the number of errors that impact people's coverage. ","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"But there's another advantage to REST APIs that helps them stand out from older methodologies like paper forms or file feeds and lets us go the extra mile for our partners: We can continuously learn from the data that flows through our system and use what we know to improve our technology.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"The right metrics and analytics allow us to make data-driven product design decisions, adapt to change quickly, and provide our customers with high-quality business intelligence.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"So how do we use our API technology to generate high-quality metrics? In this post I'll walk you through the process of standing up some basic analytics within our existing architecture and highlight how we pull out valuable insights for ourselves and our customers.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"The Noyo fulfillment platform","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Our fulfillment platform is what enables us to complete member enrollment requests that are sent from benefits platforms through Noyo to insurance carriers. The platform is composed of two main parts: The first is an API backed by a set of microservices that manage benefits platform data, insurance carrier data, employee data, enrollment requests, and standard domain models and logic. The second is a custom pipeline, which is a group of automated workflows and tasks running on business rules for specific platform/carrier relationships. ","nodeType":"text"}],"nodeType":"paragraph"},{"data":{"target":{"sys":{"id":"5LhiwfIBCajM5rsyFOH2ZR","type":"Link","linkType":"Asset"}}},"content":[],"nodeType":"embedded-asset-block"},{"data":{},"content":[{"data":{},"marks":[{"type":"italic"}],"value":"Legend for diagrams in this article","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Data first comes into our system with a ","nodeType":"text"},{"data":{"uri":"https://docs.noyo.com/#creating-member-requests"},"content":[{"data":{},"marks":[],"value":"member request","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" from a benefits technology platform–this is essentially an action relating to an employee's enrollment. Each member request is broken into multiple ","nodeType":"text"},{"data":{"uri":"https://docs.noyo.com/#creating-member-requests"},"content":[{"data":{},"marks":[],"value":"member transactions","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[],"value":" that represent single units of work for a member/carrier pair. The steps in the fulfillment workflow are carried out by multiple workers deployed in a Kubernetes cluster. As workers complete their tasks, they mutate state according to business rules; these mutations serve as recordable events on which we can base analyses.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{"target":{"sys":{"id":"6Xw7Gcig9NPnEmfesh0TwG","type":"Link","linkType":"Asset"}}},"content":[],"nodeType":"embedded-asset-block"},{"data":{},"content":[{"data":{},"marks":[{"type":"italic"}],"value":"Figure 1. Tiered infrastructure, core services","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Collecting data","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"This tiered infrastructure means we can collect data in two ways. The first is through simple event logs in our databases; the second is through custom events sent to a Pub/Sub topic for immediate transformations and calculations.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Event logs\n","nodeType":"text"},{"data":{},"marks":[],"value":"For each domain object that is changed in our database, we record a note in a secondary table that describes the change that was made. This happens to serve the additional purpose of allowing us to keep historical data for audit purposes.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"bold"}],"value":"Pub/Sub\n","nodeType":"text"},{"data":{},"marks":[],"value":"We utilize GCP Pub/Sub for certain \"change in state\" events. Upon a state change, we send a message to a Pub/Sub topic, where we can run calculations and transformations on the data in separate microservices as it happens.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{"target":{"sys":{"id":"6HMrdq09eLSKKJwJ57XkIi","type":"Link","linkType":"Asset"}}},"content":[],"nodeType":"embedded-asset-block"},{"data":{},"content":[{"data":{},"marks":[{"type":"italic"}],"value":"Figure 2. Metrics collected and aggregated","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Asking the right questions","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"Once we have the raw data collected, we use Metabase, an open-source business intelligence tool, and Retool, a platform for building custom internal tools, to visualize metrics and run customizable reports.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{"target":{"sys":{"id":"29OGGnY2L10WcsTAUfTwM","type":"Link","linkType":"Asset"}}},"content":[],"nodeType":"embedded-asset-block"},{"data":{},"content":[{"data":{},"marks":[{"type":"italic"}],"value":"Figure 3. Connected read replicas and logs to reporting software","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Reports are based on specific questions that give us powerful insight into the data running through our system. Examples of questions we ask include:","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"What is the overall success rate of individual transactions? This can help us prioritize improvements to our API validation (to catch issues earlier) or identify areas of improvement for carrier partners.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"How long, on average, does it take to complete a member request of a particular type with a particular carrier? This helps us set expectations for timing with our customers and flag member requests that might need additional attention.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"},{"data":{},"content":[{"data":{},"content":[{"data":{},"marks":[],"value":"Which types of member requests are spending the most time in a \"processing\" state at the carrier? We can use this information to help our carrier partners identify opportunities for automation and process improvement.","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"list-item"}],"nodeType":"unordered-list"},{"data":{},"content":[{"data":{},"marks":[],"value":"The potential number of questions is vast - we're able to explore data for overall transaction performance, specific carrier/platform pairs, specific states or workflows, and much more.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"High-quality questions yield high-quality insights for the business. We can use our database analyses to set appropriate SLAs with customers, quantify the time and cost savings of a Noyo connection versus traditional file-based data exchange, shape our product strategy and roadmap, set internal and industry benchmarks, and develop new tools and services that make our connections even stronger.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"Looking toward the future","nodeType":"text"}],"nodeType":"heading-2"},{"data":{},"content":[{"data":{},"marks":[],"value":"As we expand our partnerships and process more transactions through our APIs, our ability to generate insights increases exponentially, as does our ability to make smart investments to improve our technology. This is particularly exciting when we think about future applications like using artificial intelligence and predictive analytics. With AI and modeling, we could identify fulfillment issues before they occur, codify trends in coverage applications that lead to higher acceptance rates, partner with carriers on new ways to deliver on-demand quoting for complex groups, or even automatically resolve difficult coverage issues without operational intervention.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[],"value":"All those amazing innovations start at the same place: data. Without it, we're only looking at a tiny part of the entire picture of what's possible. I'm excited to keep exploring the insights hidden in our data in order to improve the Noyo experience for our partners, build the best products out there, and ultimately change the way people interact with their insurance.","nodeType":"text"}],"nodeType":"paragraph"},{"data":{},"content":[{"data":{},"marks":[{"type":"italic"}],"value":"If you're curious about data analysis or using technology to solve the insurance industry's biggest challenges, ","nodeType":"text"},{"data":{"uri":"https://jobs.lever.co/gonoyo?team=Engineering"},"content":[{"data":{},"marks":[{"type":"italic"}],"value":"we want to work with you","nodeType":"text"}],"nodeType":"hyperlink"},{"data":{},"marks":[{"type":"italic"}],"value":"!","nodeType":"text"}],"nodeType":"paragraph"}],"nodeType":"document"}

If you do benefits, you need Noyo

The future of employee benefits is faster, easier, and more automated. Are you ready?