# Recommended videos > **Source**: [Coherent](https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ) ## Browse Collection 1. [What is Coherent Spark?](https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/H5WYl7ZaNvgXCTrR0PTkJg.md) (Video) 2. [Crafting front end using Coherent Validation API](https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/1DMjKEJmLUV6qPqTdFKIsQ.md) (Video) 3. [Traffic Director: Rating and Rules](https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA.md) (Video) 4. [Employee Benefits - Spark Shell ](https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/wwkXuHO5AjyjQ9fTIawTyw.md) (Video) 5. [Tech 205: Integrating with LLM](https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/FeEnXeDvUcHvqoXP5ITiCQ.md) (Video) 6. [Batch API using Python SDK (Clone)](https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/8AYIt0ikqUJ4dhFayUnlfg.md) (Video) --- # VIDEO: Traffic Director: Rating and Rules ## METADATA - id: I0g3sx3MrYnr3VdJIpQ2XA - type: video - source: Coherent - content_url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA - collection_url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ ## TRANSCRIPT - time: 00:00 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=0 text: Hi, I'm Grace at Coherent, and today I'll be showing you the Traffic Director design - time: 00:06 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=6 text: to tie together the underwriting rules and the rating. - time: 00:11 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=11 text: And as you may recall, the Traffic Director is essentially a Excel model that's uploaded - time: 00:16 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=16 text: to Coherent Spark, and it'll help make dynamic routing decisions, so sending data to the - time: 00:24 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=24 text: right or appropriate downstream model. - time: 00:28 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=28 text: And what that means is it can help you orchestrate workflows across different services or even - time: 00:35 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=35 text: different versions of a service. - time: 00:37 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=37 text: So in today's example, I've got a multi-state workflow where I've got, say, 50 different - time: 00:46 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=46 text: eligibility rules algorithms, one for each state, each with different versions. - time: 00:52 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=52 text: And then similarly, I've got 50 different rating algorithms, each with multiple versions - time: 00:58 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=58 text: as well. - time: 01:00 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=60 text: And I'm trying to price a property policy, and I want to run it through to the correct - time: 01:08 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=68 text: or appropriate version of the eligibility rules algorithm. - time: 01:12 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=72 text: And then I want to determine if it's either an accepted policy or a declined or referred. - time: 01:18 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=78 text: And if it's declined or referred, then I want to go ahead and send that note back over to - time: 01:24 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=84 text: the core system. - time: 01:26 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=86 text: But if it's accepted, then I would want to go ahead and quote it by sending it or calling - time: 01:33 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=93 text: it to the correct version of the rater. - time: 01:37 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=97 text: And then I want to send those rating outputs back to the core system. - time: 01:40 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=100 text: And so with this design, instead of having to manage a whole bunch of separate integrations - time: 01:50 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=110 text: for each rules algorithm or each rating algorithm, we can actually use this traffic director - time: 01:55 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=115 text: model instead here. - time: 01:57 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=117 text: And this would simplify it into one integration to the core system. - time: 02:03 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=123 text: So essentially, what the traffic director would be doing is it would receive inputs - time: 02:09 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=129 text: from the core system, and then it'll go ahead and decide which rules algorithm to call based - time: 02:15 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=135 text: on defined logic within the traffic director. - time: 02:20 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=140 text: And then if it determines that it's eligible, then we'll go ahead and route those inputs - time: 02:26 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=146 text: to the correct rating algorithm and then return those results back to the core system. - time: 02:32 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=152 text: So let's go ahead and see this pattern in action. - time: 02:38 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=158 text: So in Spark, I've got a folder and I've uploaded all my services using this demo. - time: 02:44 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=164 text: For this example, I have a rule service and a rating service for Florida, North Carolina, - time: 02:52 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=172 text: and they've got up to two versions each for the simplicity of this demo. - time: 02:58 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=178 text: So let's go ahead and take a look at our traffic director Excel model now. - time: 03:04 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=184 text: Now, the traffic director is relatively flexible. - time: 03:08 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=188 text: So you may have already seen different use cases for it already. - time: 03:12 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=192 text: But what I mean by that is it can be set up to do any sort of routing you need to between - time: 03:19 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=199 text: services or versions. - time: 03:21 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=201 text: But at its core, what it's really doing is it's relying on the inputs from the core system - time: 03:28 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=208 text: to drive its dynamic routing. - time: 03:30 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=210 text: And so in this example, I've got my inputs that will be coming from the core system here - time: 03:37 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=217 text: in the green. - time: 03:38 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=218 text: So these inputs are going to be tagged up as X inputs in this traffic director. - time: 03:44 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=224 text: And some of them will help dynamically help determine the right path of the rater or the - time: 03:51 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=231 text: rule service to call and then eventually send those inputs to. - time: 03:55 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=235 text: But essentially, those inputs would need to help make three sub decisions for each - time: 04:02 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=242 text: call, each call to the rules model or the rating model. - time: 04:06 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=246 text: And those three sub decisions will be which folder, which service and which version of - time: 04:14 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=254 text: the service to call. - time: 04:15 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=255 text: And then this would dynamically be mapped into the path of the X call. - time: 04:21 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=261 text: And then the traffic director will direct those inputs from the core system into that - time: 04:29 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=269 text: appropriate rater or rules model. - time: 04:31 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=271 text: So here I have folder service and version of the rules and rater. - time: 04:37 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=277 text: And this will all have logic in them to determine or to make that decision of which to use. - time: 04:44 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=284 text: And you could build this however you like with whatever logic you need or want. - time: 04:51 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=291 text: But as long as it results in the folder to use the service and the version of the service. - time: 04:59 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=299 text: So since all of my services are within one folder, I have a default folder here, this - time: 05:06 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=306 text: traffic director demo, as you saw earlier. - time: 05:09 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=309 text: And then within the service for the rules and rating, I have logic in here to decide - time: 05:17 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=317 text: which service to use. - time: 05:19 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=319 text: And in this case, my service name is based on state. - time: 05:25 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=325 text: So here I wanted to use the Florida rater and the Florida rules. - time: 05:32 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=332 text: And then within the versions of the service, I'm doing a lookup using the state and the - time: 05:42 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=342 text: policy effective date off of a decision table that I have here. - time: 05:47 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=347 text: And so in this decision table, if it's this day and then this effective date, then use - time: 05:56 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=356 text: this version and whatnot. - time: 05:57 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=357 text: And I'm using a combination of lookup formulas here to get at that. - time: 06:04 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=364 text: Again, you can build out this logic however you'd like as long as you land on these three - time: 06:11 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=371 text: sub decisions using the path within the X call. - time: 06:17 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=377 text: So again, that folder, the service, and the version of the service. - time: 06:21 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=381 text: Then you can use the X call to send all the needed inputs from the core system into the - time: 06:33 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=393 text: appropriate rules engine. - time: 06:35 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=395 text: So we'll specify the path in the formula of the X call, send those inputs to that path, - time: 06:43 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=403 text: and then receive the outputs. - time: 06:46 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=406 text: So for this policy and its set of inputs, we would need to call version one of the Florida - time: 06:52 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=412 text: rules. - time: 06:53 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=413 text: So we're going to use that path in the X call. - time: 06:57 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=417 text: And then the X call will send those necessary inputs to the rules engine, and then in this - time: 07:04 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=424 text: case determines that it is an accepted policy. - time: 07:09 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=429 text: Now, in the premium output, I have logic in here that if the policy is accepted based - time: 07:16 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=436 text: on the rules above, then send the inputs to the determined path, which is the Florida - time: 07:24 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=444 text: rater version one, and then return back the output premium. - time: 07:30 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=450 text: So here we are. - time: 07:31 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=451 text: And then these outputs would be tagged up as X outputs so that when you upload this - time: 07:40 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=460 text: traffic director model into Spark as a service, you would be able to receive these outputs - time: 07:46 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=466 text: back to the core system when you call this traffic director service. - time: 07:52 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=472 text: So this was an example of using the traffic director to tie together the underwriting - time: 07:59 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=479 text: rules and rating. - time: 08:00 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=480 text: And this is a very powerful design because it can help you save a lot of time in your - time: 08:06 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=486 text: integration. - time: 08:06 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=486 text: And it also keeps all of that business logic within Excel so that it can be maintained - time: 08:13 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=493 text: by the business folks rather than having to rely on the tech teams. - time: 08:18 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=498 text: And we'd be happy to help you out with this integration if needed. - time: 08:22 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=502 text: So please feel free to reach out with any questions. - time: 08:24 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=504 text: But other than that, I hope it was helpful. - time: 08:26 url: https://coherent.portal.trainn.co/oGECFYpUljYdG0l0CZ6dMQ/I0g3sx3MrYnr3VdJIpQ2XA?start_time=506 text: And thank you for watching. ## SUMMARY # Traffic Director Design: Orchestrating Workflows Hi, I'm Grace at Coherent, and today I'll be showing you the traffic director design to tie together the rating and the underwriting rules. This tool helps orchestrate workflows across different services or even different versions of a service. ## Example Scenario In today's example, we have a multi-state workflow with: - 50 different eligibility rules algorithms, one for each state, each with multiple versions. - 50 different rating algorithms, each with multiple versions. The goal is to price a property policy by running it through the correct version of the eligibility rules algorithms and determine if it is an accepted policy, declined, or referred. If declined or referred, results are sent back to the core system. If accepted, we quote it by calling the correct version of the rater and send those rating outputs back to the core system. ## Traffic Director Functionality The traffic director simplifies integrations by managing them into one integration with the core system. It receives inputs from the core system, decides which eligibility rules algorithms to call based on defined logic, and routes inputs to the correct rating algorithm if eligible, returning results to the core system. ## Demonstration in Spark In Spark, I've uploaded all services used for this demo. For this example, there are rules and rating services for Florida and North Carolina, each with up to two versions. ### Traffic Director Excel Model The traffic director is flexible and can be set up for various routing needs between services or versions. It relies on inputs from the core system to drive dynamic routing. #### Inputs and Decisions - Inputs from the core system are tagged as X inputs. - These inputs help determine the right path for the rater or rule service to call. - Three sub-decisions for each call: folder, service, and version of the service. Logic is used to determine the folder, service, and version of the service. In this demo, all services are within one folder, and service names are based on state. A decision table is used to determine the version based on state and policy effective date. #### Using the X Call The X call specifies the path, sends inputs to that path, and receives outputs. For example, for a policy, version one of the Florida rules is called, and if accepted, inputs are sent to the Florida rater version one, returning the output premium. ## Conclusion This demonstration shows how the traffic director can effectively tie together rules and ratings, simplifying the integration process and ensuring accurate policy pricing and decision-making.