www.rallyhealth.com
Open in
urlscan Pro
199.83.128.158
Public Scan
Submitted URL: http://rallyhealth.com/
Effective URL: https://www.rallyhealth.com/
Submission: On January 12 via manual from US — Scanned from CA
Effective URL: https://www.rallyhealth.com/
Submission: On January 12 via manual from US — Scanned from CA
Form analysis
1 forms found in the DOMPOST
<form method="post" class="has-validation rounded" data-id="f7d712-form-QBOZ7q06y_0dc8_d8ca16446178661730cb3f916102ad75b4ce061a61df49121eca5" data-disable-submit="" data-success-message="Form has been submitted successfully!"
data-error-message="Sorry, there was an error submitting the form. Please try again.">
<input type="hidden" name="action" value="freeform/api/form"><input type="hidden" name="formReturnUrl" value="349921f92218ba43ff2a69af36dc3651640afcc21bd45d8a22826b7e5bc73b69/informationForm/thanks/"><input type="hidden" name="formHash"
value="QBOZ7q06y_0dc8_d8ca16446178661730cb3f916102ad75b4ce061a61df49121eca5"><input type="hidden" name="CRAFT_CSRF_TOKEN" value="G-0u5xJ2ZE2qQWc6Gi0j0c1c3fE0N0tuuxguSoQJBMYPNRxpU-vrsViuYKRTFTIMkiISAlQVeZiCH5uzZQY8A8w1fxXnfSmnZnR1OBKJxvk="><input
class="" name="leadSource" type="hidden" id="form-input-leadSource" value="HWB Sign Up"><input class="" name="status" type="hidden" id="form-input-status" value="Open"><input class="" name="emailOptInHidden" type="hidden"
id="form-input-emailOptInHidden" value="checked"><input class="" name="campaignID" type="hidden" id="form-input-campaignID" value="7012R000000g965QAA"><a id="f7d712-form-QBOZ7q06y_0dc8_d8ca16446178661730cb3f916102ad75b4ce061a61df49121eca5"></a>
<div style="position: absolute !important; width: 0 !important; height: 0 !important; overflow: hidden !important;" aria-hidden="true" tabindex="-1"><label aria-hidden="true" tabindex="-1" for="freeform_form_handle_1268e4">Leave this field
blank</label><input type="text" value="beadb5" name="freeform_form_handle_1268e4" id="freeform_form_handle_1268e4" aria-hidden="true" tabindex="-1"></div>
<div class="ojp-flex ojp-col-12 align-start align-top">
<div class="ojp-col-4 ojp-col-padded">
<label for="form-input-firstName" class="ojp-label required">First Name</label>
<input class="freeform-input required " name="firstName" type="text" id="form-input-firstName" data-required="" maxlength="50">
</div>
<div class="ojp-col-4 ojp-col-padded">
<label for="form-input-lastName" class="ojp-label required">Last Name</label>
<input class="freeform-input required " name="lastName" type="text" id="form-input-lastName" data-required="" maxlength="50">
</div>
<div class="ojp-col-4 ojp-col-padded">
<label for="form-input-email" class="ojp-label required">Email</label>
<input class="freeform-input required" name="email" type="email" id="form-input-email" data-required="" maxlength="50">
</div>
</div>
<div class="ojp-flex ojp-col-12 align-start align-top">
<div class="ojp-col-4 ojp-col-padded">
<label for="form-input-jobTitle" class="ojp-label required">Job Title</label>
<input class="freeform-input required " name="jobTitle" type="text" id="form-input-jobTitle" data-required="" maxlength="50">
</div>
<div class="ojp-col-4 ojp-col-padded">
<label for="form-input-companyName" class="ojp-label required">Company Name</label>
<input class="freeform-input required " name="companyName" type="text" id="form-input-companyName" data-required="" maxlength="50">
</div>
<div class="ojp-col-6 ojp-col-padded">
<label for="form-input-companyType2" class="ojp-label required">Company Type</label>
<div class="select"><select class="freeform-input required select-hidden" name="companyType2" id="form-input-companyType2" maxlength="50" data-required="">
<option value="" selected="">Please select...</option>
<option value="Employer">Employer</option>
<option value="Consultant">Consultant</option>
<option value="Payer">Payer</option>
<option value="Provider">Provider</option>
<option value="Other">Other</option>
</select>
<div class="select-styled">Please select...</div>
<ul class="select-options">
<li rel="">Please select...</li>
<li rel="Employer">Employer</li>
<li rel="Consultant">Consultant</li>
<li rel="Payer">Payer</li>
<li rel="Provider">Provider</li>
<li rel="Other">Other</li>
</ul>
</div>
</div>
</div>
<div class="ojp-flex ojp-col-12 align-start align-top">
</div>
<div class="ojp-flex ojp-col-12 submit-field">
<div class="ojp-col ojp-col-12 ojp-col-padded">
<button class="btn" data-submit-button="1" type="submit" name="form_page_submit">Submit</button>
</div>
</div>
<script>
"use strict";
function ownKeys(e, t) {
var r = Object.keys(e);
if (Object.getOwnPropertySymbols) {
var n = Object.getOwnPropertySymbols(e);
t && (n = n.filter(function(t) {
return Object.getOwnPropertyDescriptor(e, t).enumerable
})), r.push.apply(r, n)
}
return r
}
function _objectSpread(e) {
for (var t = 1; t < arguments.length; t++) {
var r = null != arguments[t] ? arguments[t] : {};
t % 2 ? ownKeys(r, !0).forEach(function(t) {
_defineProperty(e, t, r[t])
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : ownKeys(r).forEach(function(t) {
Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t))
})
}
return e
}
function _classCallCheck(e, t) {
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
}
function _defineProperties(e, t) {
for (var r = 0; r < t.length; r++) {
var n = t[r];
n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(e, n.key, n)
}
}
function _createClass(e, t, r) {
return t && _defineProperties(e.prototype, t), r && _defineProperties(e, r), e
}
function _defineProperty(e, t, r) {
return t in e ? Object.defineProperty(e, t, {
value: r,
enumerable: !0,
configurable: !0,
writable: !0
}) : e[t] = r, e
}
var Freeform = function() {
function e(t, r) {
var n = this;
if (_classCallCheck(this, e), _defineProperty(this, "form", void 0), _defineProperty(this, "options", {
ajax: !1,
disableSubmit: !1,
scrollToAnchor: !1,
showSpinner: !1,
showLoadingText: !1,
loadingText: null,
prevButtonName: "form_previous_page_button",
successBannerMessage: "Form has been submitted successfully!",
errorBannerMessage: "Sorry, there was an error submitting the form. Please try again.",
errorClassBanner: "ff-form-errors",
errorClassList: "ff-errors",
errorClassField: "ff-has-errors",
successClassBanner: "ff-form-success",
removeMessages: null,
renderSuccess: null,
renderFormErrors: null,
renderFieldErrors: null
}), _defineProperty(this, "_beforeSubmitCallbackStack", []), _defineProperty(this, "_successfulAjaxSubmitCallbackStack", []), _defineProperty(this, "_failedAjaxSubmitCallbackStack", []), _defineProperty(this,
"_afterAjaxSubmitCallbackStack", []), _defineProperty(this, "setOption", function(e, t) {
n.options[e] = t
}), _defineProperty(this, "lockSubmit", function() {
for (var e = n.options, t = e.disableSubmit, r = e.showSpinner, o = e.showLoadingText, a = e.loadingText, i = n._getSubmitButtons(), s = 0; s < i.length; s++) {
var l = i[s];
t && (l.disabled = !0), r && l.classList.add("ff-loading"), o && (l.dataset.originalText = l.innerText, l.innerText = a)
}
}), _defineProperty(this, "unlockSubmit", function() {
for (var e = n.options, t = e.disableSubmit, r = e.showSpinner, o = e.showLoadingText, a = n._getSubmitButtons(), i = 0; i < a.length; i++) {
var s = a[i];
t && (s.disabled = !1), r && s.classList.remove("ff-loading"), o && (s.innerText = s.dataset.originalText, s.dataset.originalText = null)
}
}), _defineProperty(this, "triggerSubmit", function() {
var e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0];
n.unlockSubmit();
var t = e ? n._getBackButtons() : n._getSubmitButtons();
t.length && t[0].click()
}), _defineProperty(this, "_setInstances", function() {
var t = n.form;
e.instances.set(t, n), t.freeform = n
}), _defineProperty(this, "_emitInitEvent", function() {
var e = n.form,
t = n._createNewEvent("freeform-ready");
e.dispatchEvent(t)
}), _defineProperty(this, "_attachListeners", function() {
n.form.addEventListener("submit", n._onSubmit);
for (var e = n.form.querySelectorAll("input, select, textarea"), t = 0; t < e.length; t++) {
var r = e[t];
r.addEventListener("change", function(e) {
n._removeMessageFrom(e.target)
})
}
}), _defineProperty(this, "_onSubmit", function(t) {
n.lockSubmit();
var r = n.form,
o = n.options,
a = !0,
i = t.submitter,
s = !1;
i && i.name && i.name === e._BACK_BUTTON_NAME && (s = !0);
for (var l = 0; l < n._beforeSubmitCallbackStack.length; l++) {
var c = n._beforeSubmitCallbackStack[l],
u = c.bind(n);
u(r, o, s) || (a = !1)
}
return a ? !o.ajax || (t.preventDefault(), t.stopPropagation(), n._onSubmitAjax(t)) : (t.preventDefault(), t.stopPropagation(), !1)
}), _defineProperty(this, "_removeMessages", function() {
if ("function" == typeof n.options.removeMessages) return n.options.removeMessages = n.options.removeMessages.bind(n), n.options.removeMessages();
var e = n.form,
t = n.options,
r = t.successClassBanner,
o = t.errorClassBanner,
a = t.errorClassList,
i = t.errorClassField;
e.querySelectorAll(".".concat(n._getClassArray(a).join("."))).remove();
for (var s = e.querySelectorAll(".".concat(n._getClassArray(i).join("."))), l = 0; l < s.length; l++) {
var c = s[l];
n._removeMessageFrom(c)
}
e.querySelectorAll(".".concat(n._getClassArray(r).join("."))).remove(), document.querySelectorAll(".".concat(n._getClassArray(o).join("."))).remove()
}), _defineProperty(this, "_removeMessageFrom", function(e) {
var t = n.options,
r = t.errorClassList,
o = t.errorClassField,
a = e.parentNode;
e.type && ("radio" === e.type || "checkbox" === e.type && /\[]$/.test(e.name)) && (a = e.parentNode.parentNode);
var i = a.querySelector(".".concat(r));
i && i.remove();
for (var s = a.querySelectorAll("input, select, textarea"), l = 0; l < s.length; l++) n._removeClass(s[l], o)
}), _defineProperty(this, "_renderSuccessBanner", function() {
if ("function" == typeof n.options.renderSuccess) return n.options.renderSuccess = n.options.renderSuccess.bind(n), n.options.renderSuccess();
var e = n.form,
t = n.options,
r = t.successBannerMessage,
o = t.successClassBanner,
a = document.createElement("div");
n._addClass(a, o);
var i = document.createElement("p");
i.appendChild(document.createTextNode(r)), a.appendChild(i), e.insertBefore(a, e.childNodes[0])
}), _defineProperty(this, "_renderFieldErrors", function(e) {
if ("function" == typeof n.options.renderFieldErrors) return n.options.renderFieldErrors = n.options.renderFieldErrors.bind(n), n.options.renderFieldErrors(e);
var t = n.form,
r = n.options,
o = r.errorClassList,
a = r.errorClassField;
for (var i in e)
if (e.hasOwnProperty(i) && i) {
var s = e[i],
l = document.createElement("ul");
n._addClass(l, o);
for (var c = 0; c < s.length; c++) {
var u = s[c],
f = document.createElement("li");
f.appendChild(document.createTextNode(u)), l.appendChild(f)
}
for (var d = t.querySelectorAll('*[name="'.concat(i, '"], *[name="').concat(i, '[0][0]"], *[type=file][name="').concat(i, '"], *[type=file][name="').concat(i, '[]"]')), p = 0; p < d.length; p++) {
var m = d[p];
n._addClass(m, a), m.parentElement.appendChild(l)
}
for (var h = t.querySelectorAll('input[type=checkbox][name="'.concat(i, '[]"], input[type=radio][name="').concat(i, '"]')), v = 0; v < h.length; v++) {
var _ = h[v];
n._addClass(_, a), _.parentElement.parentElement.appendChild(l)
}
}
}), _defineProperty(this, "_renderFormErrors", function(e) {
if ("function" == typeof n.options.renderFormErrors) return n.options.renderFormErrors = n.options.renderFormErrors.bind(n), n.options.renderFormErrors(e);
var t = n.form,
r = n.options,
o = r.errorClassBanner,
a = r.errorBannerMessage,
i = document.createElement("div");
n._addClass(i, o);
var s = document.createElement("p");
if (s.appendChild(document.createTextNode(a)), i.appendChild(s), e.length) {
for (var l = document.createElement("ul"), c = 0; c < e.length; c++) {
var u = e[c],
f = document.createElement("li");
f.appendChild(document.createTextNode(u)), l.appendChild(f)
}
i.appendChild(l)
}
t.insertBefore(i, t.childNodes[0])
}), _defineProperty(this, "_onSuccessfulSubmit", function(e, t, r) {
for (var o = 0; o < n._successfulAjaxSubmitCallbackStack.length; o++) {
var a = n._successfulAjaxSubmitCallbackStack[o];
a(e, t, r)
}
}), _defineProperty(this, "_onFailedSubmit", function(e, t, r) {
for (var o = 0; o < n._failedAjaxSubmitCallbackStack.length; o++) {
var a = n._failedAjaxSubmitCallbackStack[o];
a(e, t, r)
}
}), _defineProperty(this, "_onAfterSubmit", function(e, t, r) {
for (var o = 0; o < n._afterAjaxSubmitCallbackStack.length; o++) {
var a = n._afterAjaxSubmitCallbackStack[o];
a(e, t, r)
}
}), _defineProperty(this, "_onSubmitAjax", function(e) {
var t = n.form,
r = new FormData(t),
o = new XMLHttpRequest;
if (n._isSafari())
for (var a = 0; a < t.elements.length; a++)
if ("file" === t.elements[a].type && "" === t.elements[a].value) {
var i = t.elements[a];
r["delete"](i.name)
} var s = t.getAttribute("method"),
l = t.getAttribute("action");
return o.open(s, l ? l : window.location.href, !0), o.setRequestHeader("Cache-Control", "no-cache"), o.setRequestHeader("X-Requested-With", "XMLHttpRequest"), o.setRequestHeader("HTTP_X_REQUESTED_WITH", "XMLHttpRequest"), o.onload =
function() {
if (n._removeMessages(), 200 === o.status) {
var r = JSON.parse(o.response),
a = r.success,
i = r.finished,
s = r.actions,
l = void 0 === s ? [] : s,
c = r.errors,
u = r.formErrors,
f = r.honeypot;
if (l.length || (a && i ? (t.querySelector('input[name="formSubmissionToken"]') || t.reset(), n._onSuccessfulSubmit(e, t, r), n._renderSuccessBanner()) : (c || u) && (n._onFailedSubmit(e, t, r), n._renderFieldErrors(c), n
._renderFormErrors(u))), f) {
var d = t.querySelector("input[name^=freeform_form_handle]");
d && (d.setAttribute("name", f.name), d.setAttribute("id", f.name), d.value = f.hash)
}
n._onAfterSubmit(e, t, r)
} else console.error(o);
n.unlockSubmit(t)
}, o.send(r), !1
}), _defineProperty(this, "_getSubmitButtons", function() {
var e = n.options.prevButtonName;
return n.form.querySelectorAll('*[type=submit]:not([name="'.concat(e, '"])'))
}), _defineProperty(this, "_getBackButtons", function() {
var e = n.options.prevButtonName;
return n.form.querySelectorAll('*[type=submit][name="'.concat(e, '"]'))
}), _defineProperty(this, "_isSafari", function() {
return navigator.userAgent.indexOf("Safari") > -1
}), _defineProperty(this, "_isIe", function() {
var e = window.navigator.userAgent,
t = e.indexOf("MSIE ");
if (t > 0) return parseInt(e.substring(t + 5, e.indexOf(".", t)), 10);
var r = e.indexOf("Trident/");
if (r > 0) {
var n = e.indexOf("rv:");
return parseInt(e.substring(n + 3, e.indexOf(".", n)), 10)
}
var o = e.indexOf("Edge/");
return o > 0 && parseInt(e.substring(o + 5, e.indexOf(".", o)), 10)
}), _defineProperty(this, "_getClassArray", function(e) {
return "string" == typeof e && (e = e.split(" ")), e
}), _defineProperty(this, "_addClass", function(e, t) {
for (var r = n._getClassArray(t), o = 0; o < r.length; o++) {
var a = r[o];
e.classList.add(a)
}
}), _defineProperty(this, "_removeClass", function(e, t) {
"string" == typeof t && (t = t.split(" "));
for (var r = 0; r < t.length; r++) {
var n = t[r];
e.classList.remove(n)
}
}), _defineProperty(this, "_createNewEvent", function(e) {
var t, r = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1],
n = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2];
return "function" == typeof Event ? t = new Event(e, {
bubbles: r,
cancelable: n
}) : (t = document.createEvent("Event"), t.initEvent(e, !0, !0)), t
}), this.form = t, this.options = _objectSpread({}, this.options, {}, r), !this.form) return void console.error('Could not find a form with ID "'.concat(id, '"'));
if (this._attachListeners(), this._setInstances(), this._emitInitEvent(), this.options.scrollToAnchor) var o = setInterval(function() {
"complete" === document.readyState && (clearInterval(o), document.getElementById(t.dataset.id).scrollIntoView())
}, 300)
}
return _createClass(e, [{
key: "addOnSubmitCallback",
value: function(e) {
"function" == typeof e && this._beforeSubmitCallbackStack.push(e)
}
}, {
key: "addOnSuccessfulAjaxSubmit",
value: function(e) {
"function" == typeof e && this._successfulAjaxSubmitCallbackStack.push(e)
}
}, {
key: "addOnFailedAjaxSubmit",
value: function(e) {
"function" == typeof e && this._failedAjaxSubmitCallbackStack.push(e)
}
}, {
key: "addOnAfterAjaxSubmit",
value: function(e) {
"function" == typeof e && this._afterAjaxSubmitCallbackStack.push(e)
}
}]), e
}();
_defineProperty(Freeform, "_BACK_BUTTON_NAME", "form_previous_page_button"), _defineProperty(Freeform, "instances", new WeakMap), _defineProperty(Freeform, "getInstance", function(e) {
return Freeform.instances.get(e)
}), Element.prototype.remove = function() {
this.parentElement.removeChild(this)
}, NodeList.prototype.remove = HTMLCollection.prototype.remove = function() {
for (var e = this.length - 1; e >= 0; e--) this[e] && this[e].parentElement && this[e].parentElement.removeChild(this[e])
};
</script>
<script>
"use strict";
! function() {
if ("undefined" != typeof Freeform) {
var t = "f7d712-form-QBOZ7q06y_0dc8_d8ca16446178661730cb3f916102ad75b4ce061a61df49121eca5",
e = document.querySelector('form[data-id="'.concat(t, '"]'));
e && new Freeform(e, {
ajax: null !== e.getAttribute("data-ajax"),
scrollToAnchor: e.getAttribute("data-scroll-to-anchor"),
disableSubmit: null !== e.getAttribute("data-disable-submit"),
hasRules: null !== e.getAttribute("data-has-rules"),
showSpinner: null !== e.getAttribute("data-show-spinner"),
showLoadingText: null !== e.getAttribute("data-show-loading-text"),
loadingText: e.getAttribute("data-loading-text"),
successBannerMessage: e.getAttribute("data-success-message"),
errorBannerMessage: e.getAttribute("data-error-message")
})
}
}();
</script>
<script>
var o = document.getElementsByName("freeform_form_handle_1268e4");
for (var i in o) {
if (!o.hasOwnProperty(i)) {
continue;
}
o[i].value = "273eda588";
}
</script>
</form>
Text Content
* For Businesses * Health Plans Solutions * Employers Solutions * Business Resources * Benefits Design & Engagement * Benefit Navigation * COVID-19 * Financial Health * Fitness & Nutrition * Industry Trends * Mental Health * Preventive Care & Condition Mgmt * Rally News & Insights * Testimonials * See All Business Resources * For Individuals * Member Experience * Health Resources * Covid-19 * Fitness * Food * Sleep * Health * Work * Weight Loss * Mental Health * All Health Resources * About Us * Mission * Culture * Careers * Offices * Partnership * Newsroom * Member Login Locate and schedule your COVID-19 vaccination at a pharmacy near you. Find Now A BETTER HEALTH CARE EXPERIENCE FOR ALL RALLY HEALTH BUILDS DIGITAL EXPERIENCES THAT MAKE IT EASIER TO ACCESS CARE AND STAY HEALTHY WHILE HELPING LOWER COSTS FOR HEALTH PLANS COMBINED SHAPE RECTANGLE Keep members engaged through incentives, fitness and well-being programs, while delivering greater cost transparency. See Health Plan Solutions FOR EMPLOYERS COMBINED SHAPE RECTANGLE Drive understanding and usage of employee benefits with our navigation platform and coaching programs. See Employer Solutions FOR INDIVIDUALS COMBINED SHAPE RECTANGLE Navigate and understand your benefits, get guidance on healthy living, and enjoy rewards along the way. See Member Experience RALLY DELIVERS THE RESULTS THAT MATTER TO HEALTH PLANS, EMPLOYERS, AND OUR MEMBERS MORE ACCESS, LOWER COST Every day we help employers and health plans engage their populations more effectively in improving overall health with three key capabilities: ENGAGEMENT & NAVIGATION Driving benefits and program usage through acquisition, incentives, and easy navigation. CARE GUIDANCE Empowering more informed care decisions and cost savings, with guidance to the right care at the right time. PERSONAL HEALTH PROGRAMS Promoting healthier living with a portfolio of well-being and condition management programs. BEST PRACTICES FOR HEALTHIER POPULATIONS Rally is your source for timely content that covers a wide range of health topics, from improving well-being to the latest in digital health insights. Engagement, COVID-19, Preventive Care & Condition Management The Link Between COVID-19 and Obesity: How to Address It With Your Employees Read More Engagement, Preventive Care & Condition Management eBook: How to Future-Proof Your Well-Being Strategy Read More Engagement, Financial Health Helping Your Employees Manage Their Finances in the COVID Era Read More THE HEALTH WITH BENEFITS NEWSLETTER FOR BUSINESSES Stay up to date with the latest benefits insights, health news, and ready-to-use resources — delivered right to your inbox. Subscribe Now HEALTH WITH BENEFITS NEWSLETTER SIGNUP Leave this field blank First Name Last Name Email Job Title Company Name Company Type Please select...EmployerConsultantPayerProviderOther Please select... * Please select... * Employer * Consultant * Payer * Provider * Other Submit THANK YOU! We'll be in touch with you soon. THE RALLY EXPERIENCE FOR MEMBERS Managing our health can get complicated. Rally can help make it more accessible and less costly for everyone — and as simple as using an app. Check Availability GOOD HEALTH IN YOUR HANDS Navigate and understand your benefits, find the right care at the right price, get support and guidance for healthy habits, earn rewards along the way, and more — all in one convenient spot. Learn More HOW WE’RE STAYING WELL TOGETHER As the COVID-19 situation evolves, we’re working in real time to shape the Rally experience to better meet your needs. Learn about the latest product highlights, resources, and related content to help you through the days ahead. Read Now STAY CONNECTED TO RALLY See the business side of Rally, including our latest corporate news, current job openings, and industry-related content and activities. Explore our latest articles, events, and promotions for living your healthiest, and see what we’re up to online and off. Get helpful tips and delicious recipes, watch videos, and get insights from our partners on self-care and healthy living. 1 Rally Internal Data, 2020. 2 Real Appeal Book of Business through Dec 31 2020. SOCIAL Facebook Instagram LinkedIn Twitter YouTube Terms of Service Privacy Policy Accessibility Site Map * For Businesses * Health Plans Solutions * Employers Solutions * For Individuals * Member Experience * About Us * Mission * Culture * Careers * Offices * Partnership * Newsroom * Contact Us Back to top Copyright © 2022 Rally Health, Inc. Rally and the Rally logo(s) are trademarks of Rally Health, Inc. All other trademarks are the property of their respective owners.