{"cssClassNames":"page basicpage summit-page","canonicalLink":"https://www.snowflake.com/en/developers/guides/build-fwa-detection-platform-cortex-ai/","robotsTags":[],"templateName":"quickstart-page-template","allowedRenditionsWidth":["320","480","640","768","960","1200","1440","1920"],"language":"en","title":"Build a Fraud, Waste, and Abuse Detection Platform with Snowflake Cortex AI","analyticsPageType":"developer","analyticsCategory":"developers","analyticsSubCategory":"guides","excludeFromAnalytics":false,":mappedPath":"/en/developers/guides/build-fwa-detection-platform-cortex-ai/",":type":"snowflake-site/components/structure/page",":items":{"root":{"columnCount":12,"columnClassNames":{"markup_editor_1950346551":"aem-GridColumn aem-GridColumn--default--12","experiencefragment-banner":"aem-GridColumn aem-GridColumn--default--12","experiencefragment-header":"aem-GridColumn aem-GridColumn--default--12","responsivegrid":"aem-GridColumn aem-GridColumn--default--12","experiencefragment-footer":"aem-GridColumn aem-GridColumn--default--12","modal_container":"aem-GridColumn aem-GridColumn--default--12","markup_editor":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12",":items":{"experiencefragment-banner":{"id":"experiencefragment-4a103d8ed8","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/pushdown-banner/master/jcr:content","configured":true,"classNames":"aem-xf",":type":"snowflake-site/components/experiencefragment",":items":{"root":{"layout":"RESPONSIVE_GRID","columnCount":12,"columnClassNames":{"pushdown_banner_copy_1875701434":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-dc5cf549e8",":type":"snowflake-site/components/container",":items":{"pushdown_banner_copy_1875701434":{"id":"pushdown-banner-5e6c56d0d0","contentHeadline":"Expedition. Free, virtual, Nov 3–6.","contentDescription":"Technical tracks for practitioners, outcomes for leaders.","contentJustifyContent":"center","linkStyle":"text-white","linkCTA":{"id":"link-cta","heapButtonClasses":["pushdown_banner"],"showOutboundIcon":false,"buttonLink":{"valid":true,"attributes":{"target":"_blank"},"url":"/en/expedition/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Register now"},":type":"snowflake-site/components/pushdown-banner","appliedCssClassNames":"snowflake-pushdown-banner-text-white snowflake-pushdown-banner-background-black"}},":itemsOrder":["pushdown_banner_copy_1875701434"]},"image":{":type":"nt:unstructured"},"cq:metadata":{":type":"nt:unstructured"}},":itemsOrder":["root","image","cq:metadata"]},"experiencefragment-header":{"id":"experiencefragment-8428833301","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/jcr:content","configured":true,"classNames":"aem-xf",":type":"snowflake-site/components/experiencefragment",":items":{"root":{"layout":"RESPONSIVE_GRID","columnCount":12,"columnClassNames":{"mega_header":"aem-GridColumn aem-GridColumn--default--12","markup_editor":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-cd28028027",":type":"snowflake-site/components/container",":items":{"markup_editor":{"id":"markup-editor-0c523d6f1a","title":" ","cssContent":".footer-nav__link-group .snowflake-button-container,.subnav__item--button,.snowflake-card-v2-advanced-button .snowflake-button-container{justify-content:flex-start}.mega-nav__sign-in.snowflake-button-container{display:none}@media screen and (min-width:768px){.mega-nav__sign-in.snowflake-button-container{display:inline-block;font-family:'Texta',sans-serif;font-weight:800 !important}}@media screen and (min-width:1024px) and (max-width:1199px){.snowflake-mega-nav-header-buttons-container .snowflake-button-blue .snowflake-button-container{font-size:13px !important}.snowflake-language-navigation .language-icon{width:18px !important;height:18px !important;margin-right:4px !important}}.mega-nav__sign-in svg{display:none}.nav-item__platform-parent-why-sf.snowflake-mega-nav-nav-item\u003Ea:hover,.nav-item__platform-parent.snowflake-mega-nav-nav-item\u003Ea:hover{background-color:transparent !important}.nav-platform-sidebar .snowflake-mega-nav-nav-item:hover.blue-icon .snowflake-mega-nav-nav-item-icon__inner{background-color:var(--ui-01) !important}@media screen and (min-width:1024px){.snowflake-mega-nav-navigation-dropdown{overflow:hidden}.meganav-platform-features{padding-left:64px}.meganav-platform-features::before{content:'';transform:translateX(-64px);display:block;z-index:0;width:100%;height:100%;position:absolute;top:0;background:#f7f9fa}.nav-item--si.snowflake-mega-nav-nav-item\u003Ea:hover{background-color:transparent}.nav-item--si{border-bottom:1px solid #ccc;padding-bottom:16px;margin-bottom:8px}.nav-item__platform-parent{border-bottom:1px solid #ccc;margin-bottom:8px;padding-bottom:16px}.nav-item__platform-parent-why-sf .snowflake-mega-nav-nav-item-description::after{content:'What Snowflake can do for you \u003E';display:block;color:var(--ui-01);margin-top:16px}.nav-item__platform-parent .snowflake-mega-nav-nav-item-description::after{content:'View the platform \u003E';display:block;color:var(--ui-01);margin-top:16px}}@media screen and (min-width:1367px){.snowflake-mega-nav-nav-item-description{font-size:13px !important;line-height:20px !important}.snowflake-mega-nav-nav-item-title-wrapper\u003E.snowflake-mega-nav-nav-item-title{font-size:17px !important}.nav-item__platform-parent-why-sf .snowflake-mega-nav-nav-item-title,.nav-item__platform-parent .snowflake-mega-nav-nav-item-title{font-size:24px !important;line-height:32px !important;margin-bottom:8px !important}.nav-item__platform-parent-why-sf .snowflake-mega-nav-nav-item-description,.nav-item__platform-parent .snowflake-mega-nav-nav-item-description{font-size:14px !important;line-height:20px !important}}html.wf-texta-n9-loading .display-1-v2{font-size:48px!important;line-height:50px!important;letter-spacing:-.5px!important;font-family:sans-serif!important}html.wf-texta-n9-loading .heading-4-v2{font-size:18px!important;line-height:24px!important;font-family:sans-serif!important}@media screen and (min-width:768px){html.wf-texta-n9-loading .display-2-v2{font-size:48px!important;line-height:50px!important;font-family:sans-serif!important}html.wf-texta-n9-loading .display-1-v2{font-size:55.5px!important;line-height:54px!important;letter-spacing:-.5px!important;font-family:sans-serif!important}html.wf-lato-n4-loading .body-2,html.wf-lato-n4-loading .heading-5-v2,html.wf-lato-n4-loading .snowflake-card-v2-advanced-text .snowflake-text p{font-size:15.5px!important;font-family:sans-serif!important}html.wf-texta-n9-loading .heading-2,html.wf-texta-n9-loading .heading-2-v2{font-size:34px!important;line-height:38px!important;letter-spacing:-.75px!important;font-family:sans-serif!important}html.wf-texta-n8-loading .heading-6-v2.snowflake-mega-nav-navigation-title{font-size:13.5px!important;font-family:sans-serif!important}html.wf-texta-n8-loading .heading-4,html.wf-texta-n8-loading .snowflake-button-container,html.wf-texta-n8-loading .snowflake-button-regular .snowflake-button-container{font-size:13px!important;line-height:20px!important;letter-spacing:.25px!important;font-family:sans-serif!important}}@media screen and (min-width:1024px){html.wf-lato-n4-loading .snowflake-mega-nav-nav-item-description{font-size:11.5px!important;font-family:sans-serif!important}html.wf-lato-n4-loading .body-2,html.wf-lato-n4-loading .text-size-regular .snowflake-text li,html.wf-lato-n4-loading .text-size-regular .snowflake-text p,html.wf-lato-n4-loading .text-size-regular .snowflake-text span[data-testid=text-content],html.wf-lato-n4-loading .text-size-regular.cq-Editable-dom li,html.wf-lato-n4-loading .text-size-regular.cq-Editable-dom p,html.wf-lato-n4-loading .text-size-regular.cq-Editable-dom span[data-testid=text-content]{font-size:13.5px!important;font-family:sans-serif!important}html.wf-texta-n8-loading .snowflake-button-compact .snowflake-button-container{font-size:12px!important;letter-spacing:0!important;line-height:18px!important}}@media screen and (min-width:1367px){html.wf-lato-n4-loading .hp-hero__eyebrow a\u003Eb:first-child{font-size:11px!important;font-family:sans-serif!important}html.wf-texta-n8-loading .hp-hero__eyebrow a{font-size:13px!important;font-family:sans-serif!important}html.wf-texta-n9-loading .display-2-v2{font-size:61px!important;line-height:60px!important;font-family:sans-serif!important}html.wf-texta-n9-loading .display-1-v2{font-size:74.5px!important;line-height:74px!important;letter-spacing:-.75px!important;font-family:sans-serif!important}html.wf-texta-n9-loading .heading-2,html.wf-texta-n9-loading .heading-2-v2{font-size:41px!important;letter-spacing:-.75px!important;font-family:sans-serif!important}html.wf-texta-n9-loading .heading-3-v2{font-family:sans-serif!important;letter-spacing:-.75px!important;font-size:33.75px!important}html.wf-texta-n9-loading .heading-4-v2{font-size:19.5px!important;line-height:26px!important;font-family:sans-serif!important}html.wf-texta-n8-loading .heading-6-v2{font-size:12px!important;font-family:sans-serif!important}html.wf-texta-n8-loading .heading-6-v2.snowflake-mega-nav-navigation-title{font-size:14px!important;font-family:sans-serif!important}html.wf-lato-n4-loading .body-1,html.wf-lato-n4-loading .cq-Editable-dom[data-cq-data-path*=text] ol\u003Eli,html.wf-lato-n4-loading .snowflake-text li,html.wf-lato-n4-loading .snowflake-text p,html.wf-lato-n4-loading .text-size-large .snowflake-text li,html.wf-lato-n4-loading .text-size-large .snowflake-text p,html.wf-lato-n4-loading .text-size-large .snowflake-text span[data-testid=text-content],html.wf-lato-n4-loading .text-size-large.cq-Editable-dom li,html.wf-lato-n4-loading .text-size-large.cq-Editable-dom p,html.wf-lato-n4-loading .text-size-large.cq-Editable-dom span[data-testid=text-content],html.wf-lato-n4-loading.cq-Editable-dom[data-cq-data-path*=text]\u003Ep,html.wf-lato-n4-loading.cq-Editable-dom[data-cq-data-path*=text]\u003Eul\u003Eli{font-size:17.5px!important;font-family:sans-serif!important}html.wf-lato-n4-loading .body-2,html.wf-lato-n4-loading .text-size-regular .snowflake-text li,html.wf-lato-n4-loading .text-size-regular .snowflake-text p,html.wf-lato-n4-loading .text-size-regular .snowflake-text span[data-testid=text-content],html.wf-lato-n4-loading .text-size-regular.cq-Editable-dom li,html.wf-lato-n4-loading .text-size-regular.cq-Editable-dom p,html.wf-lato-n4-loading .text-size-regular.cq-Editable-dom span[data-testid=text-content],html.wf-texta-n8-loading .snowflake-button-link .snowflake-button-container,html.wf-texta-n8-loading .snowflake-button-link-back .snowflake-button-container{font-size:15.5px!important;font-family:sans-serif!important}html.wf-lato-n4-loading .body-3,html.wf-lato-n4-loading .text-size-small .snowflake-text li,html.wf-lato-n4-loading .text-size-small .snowflake-text p,html.wf-lato-n4-loading .text-size-small .snowflake-text span[data-testid=text-content],html.wf-lato-n4-loading .text-size-small.cq-Editable-dom li,html.wf-lato-n4-loading .text-size-small.cq-Editable-dom p,html.wf-lato-n4-loading .text-size-small.cq-Editable-dom span[data-testid=text-content]{font-size:13.5px!important;font-family:sans-serif!important}}#industryPlatformSection,.sc-hero{background-position:top left;background-size:20% auto}.bwalignc,.bwalignr{list-style-position:inside}.snowflake-text p sup{font-size:10px}#industryPlatformSection .industry-platform__row .snowflake-flexible-column-container-items,.button-group-pair\u003E.container\u003E.cmp-container\u003E.aem-container,.snowflake-hero-system-content-container{gap:16px}.agenda-item p,.button-group-pair\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv,.partner-details p{margin:0!important}.button-group-pair\u003E.container\u003E.cmp-container\u003E.aem-container::after,.button-group-pair\u003E.container\u003E.cmp-container\u003E.aem-container::before,.hide-logo .snowflake-case-study-card-logo,.partner-page__powered-by-logo,.sc-hero div.code-toolbar\u003E.toolbar,.snowflake-card-v2-advanced.no-link .snowflake-card-v2-advanced-button,.snowflake-partner-hero-card-badge-container{display:none!important}.section--card-mobile-carousel .snowflake-flexible-column-container-items-with-carousel{max-width:100%!important}@media screen and (min-width:768px){.button-group-pair .snowflake-button-container.inline-button--desktop,.button-group-pair\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:auto!important;display:inline-block!important}.button-group-pair\u003E.container\u003E.cmp-container\u003E.aem-container{align-items:center;justify-content:flex-start!important}.button-group-pair.center\u003E.container\u003E.cmp-container\u003E.aem-container{justify-content:center!important}.section--card-mobile-carousel{margin-left:var(--tablet-portrait-margin,48px)!important;margin-right:var(--tablet-portrait-margin,48px);width:calc(100% - 96px)!important;width:calc(100% - var(--tablet-portrait-margin) * 2)!important}}@media screen and (min-width:1024px){.section--card-mobile-carousel{margin-left:var(--tablet-horizontal-margin,48px)!important;margin-right:var(--tablet-horizontal-margin,48px);width:calc(100% - 96px)!important;width:calc(100% - var(--tablet-horizontal-margin) * 2)!important}.snowflake-mega-nav-header-mobile-icon{display:none!important}}@media screen and (min-width:1367px){.section--card-mobile-carousel{margin-left:var(--desktop-margin,6.5%)!important;margin-right:var(--desktop-margin,6.5%);width:87%!important;width:calc(100% - var(--desktop-margin) * 2)!important}.logo-container{min-width:143px}.sc-hero__headline .heading-1-v2{font-size:60px}.snowflake-mega-nav-navigation-title{font-size:17px}.snowflake-mega-nav-dropdown-footer-wrapper .snowflake-title-v2 .snowflake-title-v2-line:first-child{font-size:16px!important;line-height:24px!important}}.hero--home{overflow:hidden;background-color:var(--ui-01);z-index:2}.hp-hero__subheadline{width:90%}.hero--home .snowflake-button-container{transition:.3s}.hero--home .snowflake-button-primary a:hover,.hero--home .snowflake-button-secondary a:hover,.hero--home .snowflake-button-white a:hover{transition:.3s;background-color:var(--ui-02)!important;color:var(--ui-05)!important}.hero--home .snowflake-button-secondary a:hover{border-color:var(--ui-05)!important}.hero--home .snowflake-button-primary a:hover,.hero--home .snowflake-button-white a:hover{border-color:var(--ui-02)!important}.bwalignc,.hp-hero__eyebrow{text-align:center}.hp-hero__eyebrow a{display:inline-flex;flex-direction:column;justify-content:center;cursor:pointer;padding:8px;border-radius:var(--spacing-01);gap:8px;align-items:center;background-color:#45aee3;color:var(--ui-03);font-family:Texta,sans-serif;font-weight:800;font-size:16px;line-height:22px;transition:background-color .3s}.hp-hero__eyebrow a:hover{background-color:#7fc6ea;text-decoration:none;transition:background-color .3s}.hp-hero__eyebrow a\u003Eb:first-child{text-transform:uppercase;white-space:nowrap;display:inline-block;background-color:var(--ui-02);color:var(--ui-05);font-size:12px!important;line-height:16px!important;font-family:Lato,sans-serif;font-weight:500!important;padding:3px 6px;border-radius:2px;letter-spacing:1px}@media screen and (min-width:767px){.hp-hero__eyebrow{text-align:left}.hp-hero__eyebrow a{flex-direction:row;text-align:left}}.hero--home__inner .offset-video,.hero--home__inner .snowflake-experience-fragment,.offset-video__bg-image{max-height:200px;overflow:hidden}.hero--home__inner .offset-video .wistia-responsive-padding{padding-top:100%}.hero--home__inner .snowflake-experience-fragment,.offset-video__bg-image{position:absolute!important;top:0;left:0;width:100%}.offset-video__bg-image{z-index:-1}@media screen and (min-width:768px){.hero--home__inner .snowflake-experience-fragment,.offset-video,.offset-video__bg-image{position:absolute!important;max-height:none;top:0;left:0;width:250%;padding-bottom:250%;transform:translate(0,-50%);height:0}.workloads_7.unistore{max-width:317px}}.promo-banner--homepage{z-index:2}.homepage-banner-offset-container::after{content:\"\";display:block;position:absolute;bottom:0;z-index:1;left:0;width:100%;height:80%;background:#fff}.section--quicklinks .snowflake-button-full-width a{padding-left:24px!important;padding-right:24px!important;transition:box-shadow .25s cubic-bezier(.4,0,.2,1);text-align:left;display:flex;justify-content:center;align-items:center}.section--quicklinks .snowflake-button-full-width a:hover{box-shadow:0 16px 16px 0 rgb(0 0 0 / .16);transition:box-shadow .25s cubic-bezier(.4,0,.2,1)}.section--quicklinks .snowflake-button-container:focus-visible a::before,.section--quicklinks .snowflake-button-full-width a::before{content:\"\";width:23px;height:23px;flex-shrink:0;margin-right:12px;display:inline-block;background-size:cover;background-repeat:no-repeat;background-position:center}#industryPartnerSlider .snowflake-navigation-icon.swiper-button-disabled,#partnerResources .section--resource-hub a svg,.button-tabs span.snowflake-tabs-navigation-item:after,.customer-card--hide-cta .snowflake-case-study-card-button,.dot-tabs span.snowflake-tabs-navigation-item::after,.partner-sidebar__mobile-expand,html:not(.aem-AuthorLayer-initial):not(.aem-AuthorLayer-Edit) .tab-content:not(.is-active){display:none}.section--quicklinks .snowflake-button-full-width a.pricing::before{background-image:url(https://www.snowflake.com/content/dam/snowflake-site/general/icons/decorative-icons/pricing-icon.svg)}.section--quicklinks .snowflake-button-full-width a.snowflake_on_snowflake::before{background-image:url(https://www.snowflake.com/content/dam/snowflake-site/general/icons/navigation/nav-icon_snowflake-bug.svg)}.section--quicklinks .snowflake-button-full-width a.virtual_hands_on_labs::before{background-image:url(https://www.snowflake.com/content/dam/snowflake-site/general/icons/navigation/nav-icon__training.svg)}.section--quicklinks .snowflake-button-full-width a.weekly_demo::before{background-image:url(https://www.snowflake.com/content/dam/snowflake-site/general/icons/navigation/nav-icon__webinars.svg)}@media screen and (min-width:1024px){.hero--home__inner .snowflake-experience-fragment,.offset-video,.offset-video__bg-image{left:-50%}.section--quicklinks .snowflake-flexible-column-container-items{gap:24px}.snowflake-quote-item-inner{padding:32px 24px 24px!important}}#communitiesOuter_overflowBottomGray::after{max-height:100px}#caseStudyOuter_overflowBottomMidBlue::after{max-height:180px}#caseStudyInner .snowflake-case-study-card .snowflake-wistia-video{border-radius:0!important}#caseStudyInner .snowflake-case-study-card{box-shadow:none!important;border-radius:0}#caseStudyInner{max-width:1200px;margin:0 auto;box-shadow:rgb(152 162 179 / .1) 0 10px 20px 0,rgb(152 162 179 / .25) 0 2px 6px 0;border-radius:8px;overflow:hidden;position:relative;z-index:1}.case-study__logo-bar\u003E.snowflake-flexible-column-container-items{background:#f7f9fa;padding:32px 16px 40px}.case-study__logo-bar .cmp-image__image{width:90%;margin:0 auto;max-width:240px}.hp-platform__text-group\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:not(:first-child),.sc-sidebar__group .snowflake-button-link{margin-top:8px}.workloads_7.unistore{margin-left:auto;margin-right:auto}#homepageFootnotesInner .snowflake-simple-stat-disclaimer .snowflake-text p{color:#fff!important}.snowflake-simple-stat-disclaimer .snowflake-text p\u003Ea{border-bottom:1px solid var(--ui-03);color:var(--text-03)}.snowflake-card-v2-advanced{color:inherit}#workloadCardGridOuter .snowflake-card-v2-base-front{gap:0}.video-modal.snowflake-modal-window-open-inner{background-color:#fff0;padding:8px;border:none}.snowflake-container-arrow-dotted-faded .snowflake-container-arrow-dotted-faded-image{width:40%!important;max-width:420px;top:4%!important}.list--blue-bullets ul{margin:0!important;padding:0!important;list-style-type:none}.list--blue-bullets li{margin:0;padding:0 0 0 32px;position:relative}.list--blue-bullets li::before{content:\"\";display:block;border-radius:100%;background:#29b5e8;width:18px;height:18px;position:absolute;top:4px;left:0;border:5px solid #e5f2f7;box-sizing:border-box}.list--blue-bullets li:not(:last-child){margin-bottom:1rem}.logo-tabs .snowflake-navigation-container,.snowflake-simple-stat-content:empty,.summit-speaker-card .snowflake-card-v2-advanced-text{margin-bottom:0}#techResourceInner,#techResourceOuter,div.overflow-bottom--blue,div.overflow-bottom--gray,div.overflow-bottom--mid-blue,div.overflow-bottom--white,div.overflow-top--blue,div.overflow-top--gray,div.overflow-top--mid-blue,div.overflow-top--white,div[id$=overflowBottomGray],div[id$=overflowBottomMidBlue],div[id$=overflowTopBlue],div[id$=overflowTopGray]{position:relative}div.overflow-bottom--blue::after,div.overflow-bottom--gray::after,div.overflow-bottom--mid-blue::after,div.overflow-bottom--white::after,div.overflow-top--blue::after,div.overflow-top--gray::after,div.overflow-top--mid-blue::after,div.overflow-top--white::after,div[id$=overflowBottomGray]::after,div[id$=overflowBottomMidBlue]::after,div[id$=overflowBottomWhite]::after,div[id$=overflowTopBlue]::after,div[id$=overflowTopGray]::after,div[id$=overflowTopWhite]::after{content:\"\";display:block;position:absolute;left:0;width:100%;height:40%}div.overflow-top--blue::after,div.overflow-top--gray::after,div.overflow-top--mid-blue::after,div.overflow-top--white::after,div[id$=overflowTopBlue]::after,div[id$=overflowTopGray]::after,div[id$=overflowTopWhite]::after{top:0}div.overflow-bottom--blue::after,div.overflow-bottom--gray::after,div.overflow-bottom--mid-blue::after,div.overflow-bottom--white::after,div[id$=overflowBottomGray]::after,div[id$=overflowBottomMidBlue]::after,div[id$=overflowBottomWhite]::after{bottom:0}div.overflow-bottom--white::after,div.overflow-top--white::after,div[id$=overflowBottomWhite]::after,div[id$=overflowTopWhite]::after{background:#fff!important}div.overflow-bottom--gray::after,div.overflow-top--gray::after,div[id$=overflowBottomGray]::after,div[id$=overflowTopGray]::after{background:#f6f9fa!important}div.overflow-bottom--mid-blue::after,div.overflow-top--mid-blue::after,div[id$=overflowBottomMidBlue]::after,div[id$=overflowTopMidBlue]::after{background:#11567f!important}div.overflow-bottom--blue::after,div.overflow-top--blue::after,div[id$=overflowBottomBlue]::after,div[id$=overflowTopBlue]::after{background:#259edc!important}.snowflake-premium-content-banner.promo-banner--no-shadow{box-shadow:none!important}#industryPartnerSlider .cmp-image__image,#industryPartnerSlider .section--partner-tabs .snowflake-image-container .cmp-image__image,#partnerSidebar,.has-shadow .cmp-image__image{box-shadow:0 10px 20px 0 rgb(152 162 179 / .1),0 2px 6px 0 rgb(152 162 179 / .25)}.content-chip--has-desc{align-items:flex-start;padding:20px!important}.content-chip--has-desc .snowflake-content-chip-image{max-width:100px}.content-chip--has-desc .snowflake-content-chip-image__image{aspect-ratio:1}.content-chip--has-desc .snowflake-title-v2-line:first-child{font-size:18px!important}.content-chip--has-desc .snowflake-title-v2-line:nth-child(2){color:#000!important;font-weight:500!important;font-size:16px!important;line-height:22px!important;margin-top:2px!important}.content-chip--has-desc .snowflake-content-chip-button{margin-top:6px!important;font-size:18px!important;display:none}.square-image .snowflake-content-chip-image{aspect-ratio:1;max-width:120px}.section--logo-bar.smaller-logos .snowflake-image-container .cmp-image__image{max-width:200px;margin:0 auto}.snowflake-card-v2-advanced-tag,.snowflake-content-chip-tag{padding:3px 6px!important}.sc-overview__webinar-promo-banner .snowflake-content-chip-button,.snowflake-card-v2-advanced-title:first-child,.summit-pricing-block__aside ul{margin-top:0}.dot-tabs .snowflake-navigation-container .snowflake-tabs-navigation-item{width:40px;height:40px;display:flex;justify-content:center;align-items:center;margin:0!important}.dot-tabs .snowflake-navigation-container .snowflake-tabs-navigation-item p{width:12px;height:12px;background:var(--ui-12);border-radius:100%}.dot-tabs .snowflake-navigation-container .snowflake-tabs-navigation-item p,.logo-tabs .snowflake-navigation-container .snowflake-tabs-navigation-item p{font-size:0!important}.dot-tabs .snowflake-navigation-container .snowflake-tabs-navigation-item.active p{background:var(--ui-01)}.button-tabs .snowflake-navigation-container .swiper-wrapper{padding:8px 0}.button-tabs .snowflake-navigation-container .swiper-slide{margin:0 6px}.button-tabs .snowflake-navigation-container .snowflake-tabs-navigation-item{padding:8px 24px;background-color:#f6f9fa;border-radius:48px;margin:0}.button-tabs .snowflake-navigation-container .snowflake-tabs-navigation-item p{text-transform:uppercase;font-family:Texta,sans-serif;font-weight:700}.button-tabs .border-top{border-top:1px solid #ccc}.button-tabs .snowflake-navigation-container .snowflake-tabs-navigation-item.active{background-color:var(--ui-01);box-shadow:0 2px 6px 0 rgb(152 162 179 / .25),0 10px 20px 0 rgb(152 162 179 / .1)}.button-tabs .snowflake-navigation-container .snowflake-tabs-navigation-item.active p{color:#fff}.button-tabs.has-icons .snowflake-navigation-container .snowflake-tabs-navigation-item p::before{content:\"\";display:inline-block;width:20px;height:20px;background-size:contain;background-repeat:no-repeat;background-position:center center;margin-right:12px;vertical-align:middle;margin-top:-3px}.logo-tabs .snowflake-navigation-container .snowflake-tabs-navigation-item{width:220px;padding-bottom:50%;height:0;margin:0 8px!important;background-size:cover;background-repeat:no-repeat;opacity:.5;transition:opacity .3s}.logo-tabs .snowflake-navigation-container .snowflake-tabs-navigation-item:hover{opacity:.75;transition:opacity .3s}.logo-tabs .snowflake-navigation-container .snowflake-tabs-navigation-item.active{opacity:1;transition:opacity .3s}.dot-tabs .aem-container.cmp-tabs,.logo-tabs .aem-container.cmp-tabs{display:flex;flex-direction:column-reverse}.snowflake-icon.is-center{margin:0 auto;display:block}#industryPartnerSlider .snowflake-flexible-column-container-items,#partnerLogoSquare .snowflake-flexible-column-container-items{gap:24px}#techResourceOuter::after{content:\"\";display:block;position:absolute;top:0;left:0;width:100%;height:40%;background:#f6f9fa}#techResourceInner{z-index:1}.partner-tier-tag h6{display:inline-block!important;padding:2px 6px;border-radius:2px;color:#666}.partner-tier-tag.registered h6{background-color:#f6f9fa}.partner-tier-tag.elite h6{background-color:#11567f;color:#fff}.partner-tier-tag.premier h6{background-color:#b14c77;color:#fff}.partner-tier-tag.select h6{background-color:#5094a0;color:#fff}.partner-details\u003Espan{display:flex;gap:24px}.partner-details a{color:inherit!important;font-weight:400!important}.partner-details p::before{content:\"\";display:inline-block;vertical-align:middle;width:16px;height:16px;background-repeat:no-repeat;background-position:center;transform:translateY(-1px);background-size:auto 90%;margin-right:6px}.partner-details__location::before{background-image:url(\"data:image/svg+xml,%3Csvg width='13' height='18' viewBox='0 0 13 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M6.25 17.7531C6.4375 17.7531 6.6 17.6844 6.7375 17.5531C6.875 17.4219 6.95 17.2531 6.95 17.0531C6.95 16.8531 7.075 16.4281 7.3 15.7969C7.5875 15.0281 7.925 14.3156 8.30625 13.6406C8.8 12.7781 9.3125 12.1031 9.85 11.6094C10.75 10.7969 11.4125 9.96563 11.85 9.12188C12.2875 8.27813 12.5063 7.40313 12.5063 6.49063C12.5063 5.36563 12.2187 4.31563 11.6437 3.33438C11.0937 2.40313 10.3438 1.65938 9.4 1.10938C8.43125 .534376 7.375 .246876 6.24375 .246876C5.1125 .246876 4.06875 .534376 3.0875 1.10938C2.15625 1.65938 1.4125 2.40313 .862498 3.33438C.287498 4.31563 0 5.36563 0 6.49063C0 7.47188 .262499 8.42813 .787499 9.35938C1.14375 10.0031 1.65625 10.6656 2.3125 11.3344C2.75625 11.8031 3.24375 12.4781 3.78125 13.3656C4.225 14.0969 4.63125 14.8594 5 15.6656C5.35 16.3844 5.53125 16.8531 5.55625 17.0656C5.55625 17.2594 5.625 17.4156 5.7625 17.5531C5.9 17.6844 6.0625 17.7531 6.25 17.7531ZM6.16875 14.9156C5.775 14.0656 5.325 13.2469 4.825 12.4594C4.275 11.5594 3.7625 10.8719 3.28125 10.3969C2.625 9.71563 2.1375 9.05938 1.825 8.43438C1.5125 7.80313 1.35625 7.16563 1.35625 6.50313C1.35625 5.61563 1.575 4.80313 2.0125 4.05313C2.45 3.30313 3.04375 2.71563 3.7875 2.27813C4.5375 1.84063 5.35 1.62188 6.2375 1.62188C7.125 1.62188 7.9375 1.84063 8.6875 2.27813C9.4375 2.71563 10.0312 3.30313 10.475 4.04688C10.9187 4.80313 11.1375 5.62188 11.1375 6.50313C11.1375 7.90313 10.3937 9.26563 8.9125 10.5969C8.35 11.1094 7.8125 11.7906 7.3 12.6406C6.88125 13.3344 6.50625 14.0969 6.16875 14.9219V14.9156ZM6.26875 8.36563C6.65625 8.36563 7.01875 8.26563 7.35625 8.07188C7.69375 7.87813 7.95625 7.60938 8.14375 7.28438C8.3375 6.95313 8.43125 6.59063 8.43125 6.19688C8.43125 5.80313 8.33125 5.43438 8.1375 5.10313C7.9375 4.76563 7.675 4.50313 7.3375 4.31563C7 4.12813 6.6375 4.02813 6.24375 4.02813C5.85 4.02813 5.4875 4.12813 5.15625 4.32188C4.825 4.52188 4.56875 4.78438 4.375 5.12188C4.18125 5.45938 4.0875 5.82188 4.0875 6.20938C4.0875 6.59688 4.1875 6.95938 4.38125 7.29688C4.58125 7.63438 4.84375 7.89688 5.18125 8.08438C5.51875 8.27813 5.88125 8.37188 6.26875 8.37188V8.36563ZM6.24375 7.50313C5.8875 7.50313 5.575 7.37188 5.31875 7.11563C5.0625 6.85938 4.93125 6.55313 4.93125 6.19063C4.93125 5.82813 5.0625 5.52188 5.31875 5.26563C5.575 5.00938 5.88125 4.87813 6.24375 4.87813C6.60625 4.87813 6.9125 5.00938 7.16875 5.26563C7.425 5.52188 7.55625 5.82813 7.55625 6.19063C7.55625 6.55313 7.425 6.85938 7.16875 7.11563C6.9125 7.37188 6.60625 7.50313 6.24375 7.50313Z' fill='%2329B5E8'/%3E%3C/svg%3E%0A\")}.partner-details__website::before{background-image:url(\"data:image/svg+xml,%3Csvg width='18' height='16' viewBox='0 0 18 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2.61587 2.96889C2.61587 2.75109 2.79633 2.57062 3.01413 2.57062C3.23192 2.57062 3.41238 2.75109 3.41238 2.96889C3.41238 3.18669 3.23192 3.36716 3.01413 3.36716C2.79633 3.36716 2.61587 3.18669 2.61587 2.96889ZM4.21512 2.96889C4.21512 2.75109 4.39558 2.57062 4.61338 2.57062C4.83117 2.57062 5.01163 2.75109 5.01163 2.96889C5.01163 3.18669 4.83117 3.36716 4.61338 3.36716C4.39558 3.36716 4.21512 3.18669 4.21512 2.96889ZM5.81438 2.96889C5.81438 2.75109 5.99484 2.57062 6.21264 2.57062C6.43043 2.57062 6.61089 2.75109 6.61089 2.96889C6.61089 3.18669 6.43043 3.36716 6.21264 3.36716C5.99484 3.36716 5.81438 3.18669 5.81438 2.96889ZM17.2518 .697559H1.19085C.811258 .697559 .506348 1.0025 .506348 1.38209V14.6179C.506348 14.9975 .811258 15.3024 1.19085 15.3024H17.2518C17.6314 15.3024 17.9363 14.9975 17.9363 14.6179V1.38209C17.9363 1.0025 17.6314 .697559 17.2518 .697559ZM16.5673 2.06035V3.90853H1.86914V2.06035H16.5673ZM1.86914 13.9334V4.78593H16.5673V13.9334H1.86914Z' fill='%2329B5E8'/%3E%3C/svg%3E%0A\")}#partnerSidebar{border-radius:4px;background-color:#fff;padding:24px 24px 32px;border-bottom:6px solid #29b5e8}#partnerSidebar h5,.newsletter-disclaimer p{font-size:14px!important}#partnerSidebar ul{margin-top:0;list-style-type:none;padding:0;display:flex;flex-wrap:wrap;gap:8px}#partnerSidebar li{border:1px solid;border-radius:2px;padding:0 4px!important;font-size:11px!important;letter-spacing:.25px;text-transform:uppercase}div.snowflake-partner-hero-card{width:100%;margin:0}.partner-details__logo{max-width:380px;margin:0 auto}@media screen and (max-width:767px){.left-alignment .hp-hero__subheadline{margin-left:auto;margin-right:auto}.left-alignment .hp-hero__headline .snowflake-title-v2-line,.left-alignment .hp-hero__subheadline .snowflake-title-v2-line{text-align:center}.hero--home__inner .snowflake-flexible-column-container-items-top-padding-large{padding-top:var(--spacing-02)}.section--logo-bar\u003E.snowflake-flexible-column-container-items{display:flex;flex-wrap:wrap;flex-direction:row;justify-content:center;gap:8px}.section--logo-bar\u003E.snowflake-flexible-column-container-items\u003Ediv{width:calc(33.33% - 8px)}.partner-sidebar__mobile-expand{display:inline-block;color:#249edc;border-color:#249edc!important}#partnerSidebar li:nth-child(n+6),.summit-nav__links .snowflake-button-tertiary{display:none}.sc-body__sidebar{background-color:#f6f9fa;padding:24px}.sc-body__content{padding:0 24px 24px}.summit-speaker-card .snowflake-card-v2-advanced-content{padding:24px}}#partnerResources h6,.snowflake-tabs-navigation-item p.body-1{font-size:16px!important}#partnerResources .section--resource-hub{padding:0 16px}#partnerResources .section--resource-hub a,.bwalignl{text-align:left}@media screen and (max-width:1023px){.hero--workload .snowflake-hero-system-media-container{width:100%}}.section--timely-content .snowflake-content-chip,.snowflake-mega-nav-dropdown-footer-wrapper{align-items:center}.section--timely-content .snowflake-content-chip-image{max-width:94px}.section--timely-content .snowflake-content-chip-image__inner{line-height:0}.section--timely-content .snowflake-content-chip-image__image{aspect-ratio:1;height:auto}.section--workload-overview .workload-overview__headline{max-width:280px;margin:0 auto}#industryPartnerSlider .swiper-slide{margin-top:0!important;padding:0 12px}#industryPartnerSlider .snowflake-tabs-navigation-item{margin-left:0!important;margin-right:0!important}#industryPartnerSlider .snowflake-premium-content-banner-background-grad-white .snowflake-premium-content-banner{box-shadow:none}#industryPartnerSlider .logo-slider__slide .aem-container{display:flex;padding:0 8px!important;flex-wrap:wrap;gap:16px!important;justify-content:center}#industryPartnerSlider .logo-slider__slide .aem-container\u003Ediv{width:48%;max-width:200px}#useCaseTabs{padding-top:24px;padding-bottom:24px;padding-right:24px}#useCaseTabs .tab-content.is-active{display:block}#useCaseTabs .vert-tab{border-bottom:1px solid #a0bbcc;padding-bottom:16px}#useCaseTabs .vert-tab p{display:inline-block}#useCaseTabs .vert-tab p:hover{cursor:pointer}#useCaseTabs .vert-tab p,#useCaseTabs .vert-tab.is-active p.not-active{color:#249edc}#useCaseTabs .vert-tab p.is-active,#useCaseTabs .vert-tab.is-active p{color:#000}#industryPlatformSection{background-image:url(/adobe/dynamicmedia/deliver/dm-aid--db074ad5-7122-4c51-87a3-76c3aa466182/double-arrow-bg%403x.png);background-repeat:no-repeat}.snowflake-text p.featured-quote__source{font-weight:900!important;text-transform:uppercase;font-size:16px!important;margin-top:2rem!important}.snowflake-text p.featured-quote__title{margin-top:0!important;font-size:16px!important}.snowflake-case-study-card-logo img{width:auto!important;height:100px!important;transform:translateX(-15%)}.snowflake-quote-item-quote-text{font-weight:600!important}#customerStoryStatsInner\u003E.container\u003E.cmp-container\u003E.aem-container{display:flex;flex-direction:row}#customerStoryStat1,#customerStoryStat2{max-width:240px}#storyHighlights{border-radius:4px;padding:1rem}.sc-overview__webinar-promo-banner .snowflake-content-chip-content .snowflake-title-v2-line,.summit-pricing-block__tile .black-blue-text-color .snowflake-title-v2-line{color:#000!important}.snowflake-youtube-embedded-wrapper{border-radius:var(--small-border-radius)}#arcticNavItem::before,#offset::before,#open-source::before{color:var(--text-05);font-family:Texta,sans-serif!important}#offset,.sc-architecture-caption{margin-top:16px}.hero--press .snowflake-title-v2-line{text-transform:none!important}@media screen and (min-width:768px){.subpage-timely-content__inner\u003E.snowflake-flexible-column-container-items{box-shadow:0 10px 20px 0 rgb(152 162 179 / .1),0 2px 6px 0 rgb(152 162 179 / .25);padding:var(--spacing-04);border-radius:4px;overflow:hidden}#partnerLogoSquare{padding:0 0 0 48px}.hero--workload .snowflake-container{max-width:1440px;margin:0 auto!important;align-items:center}#industryPartnerSlider.snowflake-flexible-column-container-2-column-40-60\u003E.snowflake-flexible-column-container-items{grid-template-columns:minmax(40%,4fr) minmax(0,6fr)}#industryPartnerSlider .swiper-slide{padding:0 24px}.sc-body{padding:48px}.sc-body\u003E.snowflake-flexible-column-container-items{grid-template-columns:7fr 3fr;gap:124px}}.snowflake-button-container.has-icon{display:inline-flex;justify-content:center;align-items:center;text-align:left}.snowflake-button-container.has-icon::before{content:\"\";display:inline-block;width:20px;height:20px;margin-right:12px;background-size:contain;background-repeat:no-repeat;background-position:center}.snowflake-button-container.is-video::before{background-image:url(\"data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9 1.28663C13.2523 1.28663 16.7134 4.74768 16.7134 9C16.7134 13.2523 13.2523 16.7134 9 16.7134C4.74768 16.7198 1.28663 13.2588 1.28663 9C1.28663 4.74124 4.74768 1.28663 9 1.28663ZM9 0C4.0336 0 0 4.0336 0 9C0 13.9664 4.0336 18 9 18C13.9728 18 18 13.9664 18 9C18 4.0336 13.9728 0 9 0Z' fill='white'/%3E%3Cpath d='M7.75106 6.18211C7.42941 6.16925 7.16565 6.42658 7.16565 6.74823V11.2772C7.16565 11.7082 7.65457 11.9848 8.02126 11.7597L11.7975 9.4952C12.1578 9.27647 12.1578 8.74252 11.7975 8.52379L8.02126 6.25931C7.93763 6.21428 7.84756 6.18211 7.75106 6.18211Z' fill='white'/%3E%3C/svg%3E%0A\")}.snowflake-button-container.is-github::before{background-image:url(\"data:image/svg+xml,%3Csvg width='20' height='21' viewBox='0 0 20 21' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M10 .651794C4.475 .651794 0 5.12679 0 10.6518C0 15.0768 2.8625 18.8143 6.8375 20.1393C7.3375 20.2268 7.525 19.9268 7.525 19.6643C7.525 19.4268 7.5125 18.6393 7.5125 17.8018C5 18.2643 4.35 17.1893 4.15 16.6268C4.0375 16.3393 3.55 15.4518 3.125 15.2143C2.775 15.0268 2.275 14.5643 3.1125 14.5518C3.9 14.5393 4.4625 15.2768 4.65 15.5768C5.55 17.0893 6.9875 16.6643 7.5625 16.4018C7.65 15.7518 7.9125 15.3143 8.2 15.0643C5.975 14.8143 3.65 13.9518 3.65 10.1268C3.65 9.03929 4.0375 8.13929 4.675 7.43929C4.575 7.18929 4.225 6.16429 4.775 4.78929C4.775 4.78929 5.6125 4.52679 7.525 5.81429C8.325 5.58929 9.175 5.47679 10.025 5.47679C10.875 5.47679 11.725 5.58929 12.525 5.81429C14.4375 4.51429 15.275 4.78929 15.275 4.78929C15.825 6.16429 15.475 7.18929 15.375 7.43929C16.0125 8.13929 16.4 9.02679 16.4 10.1268C16.4 13.9643 14.0625 14.8143 11.8375 15.0643C12.2 15.3768 12.5125 15.9768 12.5125 16.9143C12.5125 18.2518 12.5 19.3268 12.5 19.6643C12.5 19.9268 12.6875 20.2393 13.1875 20.1393C17.1375 18.8143 20 15.0643 20 10.6518C20 5.12679 15.525 .651794 10 .651794Z' fill='%23249EDC'/%3E%3C/svg%3E%0A\")}.snowflake-button-container.is-quickstart::before{background-image:url(\"data:image/svg+xml,%3Csvg width='15' height='21' viewBox='0 0 15 21' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.8489 2.79368H11.6439V2.38493C11.6439 1.71368 11.1451 .967427 10.4251 .967427H8.94762C8.80887 .359927 8.37387 .299927 7.89762 .299927H7.23012C6.85512 .299927 6.26637 .299927 6.08637 .967427H4.68387C3.94887 .967427 3.35637 1.74368 3.35637 2.38493V2.79368H1.15137C.738867 2.79368 .401367 3.13118 .401367 3.54368V20.2537C.401367 20.6662 .738867 21.0037 1.15137 21.0037H13.8489C14.2614 21.0037 14.5989 20.6662 14.5989 20.2537V3.54368C14.5989 3.13118 14.2614 2.79368 13.8489 2.79368ZM4.29387 2.38493C4.29387 2.18243 4.54137 1.90493 4.68387 1.90493H6.50262C6.76137 1.90493 6.97137 1.69493 6.97137 1.43618C6.97137 1.33868 6.97887 1.27868 6.98637 1.24118C7.05012 1.23368 7.15512 1.23368 7.23387 1.23368H7.90137C7.95012 1.23368 8.00637 1.23368 8.05137 1.23368C8.05512 1.27868 8.05887 1.34243 8.05887 1.43243C8.05887 1.69118 8.26887 1.90118 8.52762 1.90118H10.4289C10.5301 1.90118 10.7101 2.14493 10.7101 2.38118V2.78993H4.29762V2.38118L4.29387 2.38493ZM13.0989 19.4999H1.90137V4.29368H13.0989V19.5037V19.4999Z' fill='%23249EDC'/%3E%3Cpath d='M3.82512 16.0424H11.1751C11.4339 16.0424 11.6439 15.8324 11.6439 15.5736V6.88486C11.6439 6.62611 11.4339 6.41611 11.1751 6.41611H3.82512C3.56637 6.41611 3.35637 6.62611 3.35637 6.88486V15.5736C3.35637 15.8324 3.56637 16.0424 3.82512 16.0424ZM4.29387 15.1049V13.3686H10.7064V15.1049H4.29387ZM10.7101 7.35361V12.4311H4.29762V7.35361H10.7101Z' fill='%23249EDC'/%3E%3Cpath d='M6.16512 9.35989H8.83887C9.09762 9.35989 9.30762 9.14989 9.30762 8.89114C9.30762 8.63239 9.09762 8.42239 8.83887 8.42239H6.16512C5.90637 8.42239 5.69637 8.63239 5.69637 8.89114C5.69637 9.14989 5.90637 9.35989 6.16512 9.35989Z' fill='%23249EDC'/%3E%3Cpath d='M6.16512 11.3624H8.83887C9.09762 11.3624 9.30762 11.1524 9.30762 10.8937C9.30762 10.6349 9.09762 10.4249 8.83887 10.4249H6.16512C5.90637 10.4249 5.69637 10.6349 5.69637 10.8937C5.69637 11.1524 5.90637 11.3624 6.16512 11.3624Z' fill='%23249EDC'/%3E%3C/svg%3E%0A\")}.snowflake-button-container.is-download::before{background-image:url(\"data:image/svg+xml,%3Csvg width='16' height='18' viewBox='0 0 16 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M15.2017 17.1637H.798265C.364425 17.1637 0 16.7993 0 16.3655V12.3568C0 11.923 .364425 11.5585 .798265 11.5585C1.2321 11.5585 1.59653 11.923 1.59653 12.3568V15.5498H14.4035V12.3568C14.4035 11.923 14.7679 11.5585 15.2017 11.5585C15.6356 11.5585 16 11.923 16 12.3568V16.3655C16 16.7993 15.6529 17.1637 15.2017 17.1637Z' fill='%23249EDC'/%3E%3Cpath d='M7.94793 12.9642C7.84381 12.9642 7.73969 12.9468 7.63557 12.8947C7.34056 12.7733 7.14967 12.4783 7.14967 12.1485L7.18437 .938127C7.18437 .504287 7.5488 .139862 7.98264 .139862C8.41648 .139862 8.7809 .504287 8.7809 .938127L8.7462 10.257L12.8416 6.33509C13.154 6.02273 13.6746 6.04008 13.9696 6.35244C14.282 6.66481 14.2646 7.18542 13.9523 7.48043L8.50325 12.7386C8.36442 12.8774 8.15617 12.9642 7.94793 12.9642Z' fill='%23249EDC'/%3E%3Cpath d='M7.94793 12.9642C7.73969 12.9642 7.54881 12.8947 7.39262 12.7386L2.03037 7.53249C1.718 7.22012 1.70065 6.71687 2.01301 6.40451C2.32538 6.09214 2.82863 6.07479 3.141 6.38715L8.50325 11.5932C8.81562 11.9056 8.83297 12.4088 8.52061 12.7212C8.36442 12.8774 8.15617 12.9642 7.94793 12.9642Z' fill='%23249EDC'/%3E%3C/svg%3E%0A\")}.snowflake-button-container.is-expand::before{background-image:url(\"data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.64375 10.9125C6.9375 11.2062 6.93125 11.6812 6.64375 11.9687L2.57502 16H3.79375C4.20625 16 4.54376 16.3375 4.54376 16.75C4.54376 17.1625 4.20625 17.5 3.79375 17.5H.756264C.556264 17.5 .36876 17.4187 .22501 17.2812C.22501 17.2812 .206248 17.25 .193748 17.2375C.143748 17.1812 .100004 17.1125 .0625038 17.0437C.0375038 16.9687 .0187492 16.8937 .0187492 16.8187C.0187492 16.8 .0062561 16.7813 .0062561 16.7625V13.725C.0187561 13.3125 .356257 12.9875 .768757 12.9937C1.16876 13 1.48752 13.325 1.50002 13.725V14.9688L5.5875 10.9187C5.88125 10.6312 6.35 10.6312 6.64375 10.9187V10.9125ZM17.5063 .743732C17.5063 .543732 17.425 .356235 17.2875 .218735C17.2875 .218735 17.2562 .199998 17.2437 .193748C17.1875 .137498 17.1188 .0937347 17.0438 .0624847C16.9688 .0374847 16.8938 .0187492 16.8188 .0187492C16.8 .0187492 16.7813 .00623703 16.7625 .00623703H13.725C13.3125 .00623703 12.975 .343745 12.975 .756245C12.975 1.16874 13.3125 1.50623 13.725 1.50623H14.9688L11.1312 5.37498C10.8437 5.67498 10.8563 6.14999 11.1563 6.43124C11.45 6.71249 11.9063 6.70624 12.1938 6.43124L16.0125 2.575V3.79375C16.0125 4.20625 16.35 4.54372 16.7625 4.54372C17.175 4.54372 17.5125 4.20625 17.5125 3.79375V.756245L17.5063 .743732ZM16.7562 12.9688C16.3437 12.9688 16.0063 13.3063 16.0063 13.7188V14.8937L12.1938 10.925C11.9063 10.625 11.4375 10.6188 11.1375 10.9063C10.8375 11.1938 10.8313 11.6625 11.1188 11.9625L15 16.0062H13.7188C13.3063 16.0062 12.9688 16.3437 12.9688 16.7562C12.9688 17.1687 13.3063 17.5063 13.7188 17.5063H16.7562C16.85 17.5063 16.95 17.4875 17.0375 17.45C17.0875 17.425 17.1313 17.3937 17.175 17.3625C17.2063 17.3437 17.2438 17.325 17.275 17.3C17.3313 17.2375 17.375 17.1687 17.4125 17.1C17.4188 17.0875 17.4375 17.075 17.4438 17.0562C17.45 17.025 17.4563 16.9938 17.4625 16.9625C17.4813 16.9 17.5 16.8375 17.5 16.7687V13.725C17.5 13.3125 17.1687 12.975 16.7562 12.975V12.9688ZM.750008 4.53125C1.16251 4.53125 1.50002 4.19374 1.50002 3.78124V2.5L5.59376 6.43124C5.89376 6.71874 6.36251 6.70626 6.65001 6.41251C6.93751 6.11876 6.92501 5.64375 6.63126 5.35625L2.61251 1.49998H3.7875C4.2 1.49998 4.53751 1.16249 4.53751 .749989C4.53751 .337489 4.2 0 3.7875 0H.743752C.668752 0 .600004 .0187355 .531254 .0437355C.506254 .0499855 .481263 .0437477 .462513 .0562477C.443763 .0687477 .425015 .0812462 .406265 .0937462C.337515 .124996 .275004 .168741 .218754 .224991H.212498C.212498 .224991 .175 .28125 .15625 .3125C.11875 .3625 .0812477 .4125 .0562477 .46875C.0374977 .525 .0249992 .587499 .0187492 .643749C.0124992 .674999 0 .712482 0 .743732V3.78124C0 4.19374 .337508 4.53125 .750008 4.53125Z' fill='white'/%3E%3C/svg%3E%0A\")}@keyframes slow-scroll{100%{transform:translateY(-50%)}}.sc-hero{overflow:hidden;background-color:#212d35;background-repeat:repeat-y;background-image:url(\"data:image/svg+xml,%3Csvg width='389' height='17' viewBox='0 0 389 17' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M.638672 7.80824L.638672 9.2566C.638672 9.52364 .85538 9.74024 1.12262 9.74024H2.57204C2.83928 9.74024 3.05598 9.52364 3.05598 9.2566V7.80824C3.05598 7.54119 2.83928 7.32472 2.57204 7.32472L1.12262 7.32472C.85538 7.32472 .638672 7.54119 .638672 7.80824Z' fill='url(%23paint0_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M10.9639 7.80824V9.2566C10.9639 9.52364 11.1806 9.74024 11.4478 9.74024L12.8972 9.74024C13.1645 9.74024 13.3812 9.52364 13.3812 9.2566V7.80824C13.3812 7.54119 13.1645 7.32471 12.8972 7.32471L11.4478 7.32471C11.1806 7.32471 10.9639 7.54119 10.9639 7.80824Z' fill='url(%23paint1_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M21.2891 7.80823V9.2566C21.2891 9.52364 21.5058 9.74024 21.773 9.74024L23.2224 9.74024C23.4897 9.74024 23.7064 9.52364 23.7064 9.2566V7.80823C23.7064 7.54119 23.4897 7.32471 23.2224 7.32471L21.773 7.32471C21.5058 7.32471 21.2891 7.54119 21.2891 7.80823Z' fill='url(%23paint2_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M31.6143 7.80823V9.2566C31.6143 9.52364 31.831 9.74024 32.0982 9.74024H33.5476C33.8149 9.74024 34.0316 9.52364 34.0316 9.2566V7.80823C34.0316 7.54119 33.8149 7.32471 33.5476 7.32471L32.0982 7.32471C31.831 7.32471 31.6143 7.54119 31.6143 7.80823Z' fill='url(%23paint3_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M41.9395 7.80823V9.2566C41.9395 9.52364 42.1562 9.74024 42.4234 9.74024H43.8728C44.1401 9.74024 44.3568 9.52364 44.3568 9.2566V7.80823C44.3568 7.54119 44.1401 7.32471 43.8728 7.32471L42.4234 7.32471C42.1562 7.32471 41.9395 7.54119 41.9395 7.80823Z' fill='url(%23paint4_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M52.5076 7.80823V9.2566C52.5076 9.52364 52.7243 9.74024 52.9916 9.74024H54.441C54.7082 9.74024 54.9249 9.52364 54.9249 9.2566V7.80823C54.9249 7.54119 54.7082 7.32471 54.441 7.32471L52.9916 7.32471C52.7243 7.32471 52.5076 7.54119 52.5076 7.80823Z' fill='url(%23paint5_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M62.8331 7.80823V9.2566C62.8331 9.52364 63.0493 9.74024 63.3165 9.74024H64.7664C65.0332 9.74024 65.2504 9.52364 65.2504 9.2566V7.80823C65.2504 7.54119 65.0332 7.32471 64.7664 7.32471L63.3165 7.32471C63.0493 7.32471 62.8331 7.54119 62.8331 7.80823Z' fill='url(%23paint6_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M73.1583 7.80823V9.2566C73.1583 9.52364 73.3745 9.74024 73.6417 9.74024H75.0916C75.3584 9.74024 75.5756 9.52364 75.5756 9.2566V7.80823C75.5756 7.54119 75.3584 7.32471 75.0916 7.32471L73.6417 7.32471C73.3745 7.32471 73.1583 7.54119 73.1583 7.80823Z' fill='url(%23paint7_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M83.4835 7.80823V9.2566C83.4835 9.52364 83.6997 9.74024 83.9669 9.74024H85.4168C85.6836 9.74024 85.9008 9.52364 85.9008 9.2566V7.80823C85.9008 7.54119 85.6836 7.32471 85.4168 7.32471L83.9669 7.32471C83.6997 7.32471 83.4835 7.54119 83.4835 7.80823Z' fill='url(%23paint8_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M93.8087 7.80823V9.2566C93.8087 9.52364 94.0249 9.74024 94.2921 9.74024H95.742C96.0088 9.74024 96.226 9.52364 96.226 9.2566V7.80823C96.226 7.54119 96.0088 7.32471 95.742 7.32471L94.2921 7.32471C94.0249 7.32471 93.8087 7.54119 93.8087 7.80823Z' fill='url(%23paint9_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M104.134 7.80823V9.2566C104.134 9.52364 104.35 9.74024 104.617 9.74024H106.067C106.334 9.74024 106.551 9.52364 106.551 9.2566V7.80823C106.551 7.54119 106.334 7.32471 106.067 7.32471L104.617 7.32471C104.35 7.32471 104.134 7.54119 104.134 7.80823Z' fill='url(%23paint10_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M114.702 7.80823V9.2566C114.702 9.52364 114.918 9.74024 115.185 9.74024L116.635 9.74024C116.902 9.74024 117.119 9.52364 117.119 9.25659V7.80823C117.119 7.54119 116.902 7.32471 116.635 7.32471L115.185 7.32471C114.918 7.32471 114.702 7.54119 114.702 7.80823Z' fill='url(%23paint11_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M125.027 7.80823V9.25659C125.027 9.52364 125.243 9.74024 125.511 9.74024L126.961 9.74024C127.227 9.74024 127.445 9.52364 127.445 9.25659V7.80823C127.445 7.54119 127.227 7.32471 126.961 7.32471L125.511 7.32471C125.243 7.32471 125.027 7.54119 125.027 7.80823Z' fill='url(%23paint12_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M135.352 7.80823V9.25659C135.352 9.52364 135.569 9.74024 135.836 9.74024H137.286C137.553 9.74024 137.77 9.52364 137.77 9.25659V7.80823C137.77 7.54119 137.553 7.32471 137.286 7.32471L135.836 7.32471C135.569 7.32471 135.352 7.54119 135.352 7.80823Z' fill='url(%23paint13_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M145.678 7.80823V9.25659C145.678 9.52364 145.894 9.74024 146.161 9.74024H147.611C147.878 9.74024 148.095 9.52364 148.095 9.25659V7.80823C148.095 7.54119 147.878 7.32471 147.611 7.32471L146.161 7.32471C145.894 7.32471 145.678 7.54119 145.678 7.80823Z' fill='url(%23paint14_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M156.003 7.80823V9.25659C156.003 9.52364 156.219 9.74024 156.486 9.74024H157.936C158.203 9.74024 158.42 9.52364 158.42 9.25659V7.80823C158.42 7.54119 158.203 7.32471 157.936 7.32471L156.486 7.32471C156.219 7.32471 156.003 7.54119 156.003 7.80823Z' fill='url(%23paint15_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M166.328 7.80823V9.25659C166.328 9.52363 166.544 9.74024 166.811 9.74024H168.261C168.528 9.74024 168.745 9.52363 168.745 9.25659V7.80823C168.745 7.54119 168.528 7.32471 168.261 7.32471L166.811 7.32471C166.544 7.32471 166.328 7.54119 166.328 7.80823Z' fill='url(%23paint16_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M176.896 7.80823V9.25659C176.896 9.52363 177.112 9.74023 177.38 9.74023H178.83C179.096 9.74023 179.313 9.52363 179.313 9.25659V7.80823C179.313 7.54119 179.096 7.32471 178.83 7.32471L177.38 7.32471C177.112 7.32471 176.896 7.54119 176.896 7.80823Z' fill='url(%23paint17_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M187.221 7.80823V9.25659C187.221 9.52363 187.438 9.74023 187.705 9.74023H189.155C189.421 9.74023 189.639 9.52363 189.639 9.25659V7.80823C189.639 7.54119 189.421 7.32471 189.155 7.32471L187.705 7.32471C187.438 7.32471 187.221 7.54119 187.221 7.80823Z' fill='url(%23paint18_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M199.639 7.80824V9.2566C199.639 9.52364 199.855 9.74024 200.123 9.74024H201.572C201.839 9.74024 202.056 9.52364 202.056 9.2566V7.80824C202.056 7.54119 201.839 7.32472 201.572 7.32472L200.123 7.32472C199.855 7.32472 199.639 7.54119 199.639 7.80824Z' fill='url(%23paint19_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M209.964 7.80824V9.2566C209.964 9.52364 210.181 9.74024 210.448 9.74024L211.897 9.74024C212.164 9.74024 212.381 9.52364 212.381 9.2566V7.80824C212.381 7.54119 212.164 7.32471 211.897 7.32471L210.448 7.32471C210.181 7.32471 209.964 7.54119 209.964 7.80824Z' fill='url(%23paint20_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M220.289 7.80823V9.2566C220.289 9.52364 220.506 9.74024 220.773 9.74024L222.222 9.74024C222.49 9.74024 222.706 9.52364 222.706 9.2566V7.80823C222.706 7.54119 222.49 7.32471 222.222 7.32471L220.773 7.32471C220.506 7.32471 220.289 7.54119 220.289 7.80823Z' fill='url(%23paint21_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M230.614 7.80823V9.2566C230.614 9.52364 230.831 9.74024 231.098 9.74024H232.548C232.815 9.74024 233.032 9.52364 233.032 9.2566V7.80823C233.032 7.54119 232.815 7.32471 232.548 7.32471L231.098 7.32471C230.831 7.32471 230.614 7.54119 230.614 7.80823Z' fill='url(%23paint22_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M240.939 7.80823V9.2566C240.939 9.52364 241.156 9.74024 241.423 9.74024H242.873C243.14 9.74024 243.357 9.52364 243.357 9.2566V7.80823C243.357 7.54119 243.14 7.32471 242.873 7.32471L241.423 7.32471C241.156 7.32471 240.939 7.54119 240.939 7.80823Z' fill='url(%23paint23_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M251.508 7.80823V9.2566C251.508 9.52364 251.724 9.74024 251.992 9.74024H253.441C253.708 9.74024 253.925 9.52364 253.925 9.2566V7.80823C253.925 7.54119 253.708 7.32471 253.441 7.32471L251.992 7.32471C251.724 7.32471 251.508 7.54119 251.508 7.80823Z' fill='url(%23paint24_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M261.833 7.80823V9.2566C261.833 9.52364 262.049 9.74024 262.317 9.74024H263.766C264.033 9.74024 264.25 9.52364 264.25 9.2566V7.80823C264.25 7.54119 264.033 7.32471 263.766 7.32471L262.317 7.32471C262.049 7.32471 261.833 7.54119 261.833 7.80823Z' fill='url(%23paint25_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M272.158 7.80823V9.2566C272.158 9.52364 272.374 9.74024 272.642 9.74024H274.092C274.358 9.74024 274.576 9.52364 274.576 9.2566L274.576 7.80823C274.576 7.54119 274.358 7.32471 274.092 7.32471L272.642 7.32471C272.374 7.32471 272.158 7.54119 272.158 7.80823Z' fill='url(%23paint26_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M282.483 7.80823V9.2566C282.483 9.52364 282.7 9.74024 282.967 9.74024H284.417C284.684 9.74024 284.901 9.52364 284.901 9.2566V7.80823C284.901 7.54119 284.684 7.32471 284.417 7.32471L282.967 7.32471C282.7 7.32471 282.483 7.54119 282.483 7.80823Z' fill='url(%23paint27_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M292.809 7.80823L292.809 9.2566C292.809 9.52364 293.025 9.74024 293.292 9.74024H294.742C295.009 9.74024 295.226 9.52364 295.226 9.2566V7.80823C295.226 7.54119 295.009 7.32471 294.742 7.32471L293.292 7.32471C293.025 7.32471 292.809 7.54119 292.809 7.80823Z' fill='url(%23paint28_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M303.134 7.80823L303.134 9.2566C303.134 9.52364 303.35 9.74024 303.617 9.74024H305.067C305.334 9.74024 305.551 9.52364 305.551 9.2566V7.80823C305.551 7.54119 305.334 7.32471 305.067 7.32471L303.617 7.32471C303.35 7.32471 303.134 7.54119 303.134 7.80823Z' fill='url(%23paint29_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M313.702 7.80823L313.702 9.2566C313.702 9.52364 313.918 9.74024 314.185 9.74024L315.635 9.74024C315.902 9.74024 316.119 9.52364 316.119 9.25659V7.80823C316.119 7.54119 315.902 7.32471 315.635 7.32471L314.185 7.32471C313.918 7.32471 313.702 7.54119 313.702 7.80823Z' fill='url(%23paint30_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M324.027 7.80823V9.25659C324.027 9.52364 324.243 9.74024 324.511 9.74024L325.961 9.74024C326.227 9.74024 326.445 9.52364 326.445 9.25659V7.80823C326.445 7.54119 326.227 7.32471 325.961 7.32471L324.511 7.32471C324.243 7.32471 324.027 7.54119 324.027 7.80823Z' fill='url(%23paint31_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M334.352 7.80823V9.25659C334.352 9.52364 334.569 9.74024 334.836 9.74024H336.286C336.553 9.74024 336.77 9.52364 336.77 9.25659L336.77 7.80823C336.77 7.54119 336.553 7.32471 336.286 7.32471L334.836 7.32471C334.569 7.32471 334.352 7.54119 334.352 7.80823Z' fill='url(%23paint32_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M344.678 7.80823V9.25659C344.678 9.52364 344.894 9.74024 345.161 9.74024H346.611C346.878 9.74024 347.095 9.52364 347.095 9.25659L347.095 7.80823C347.095 7.54119 346.878 7.32471 346.611 7.32471L345.161 7.32471C344.894 7.32471 344.678 7.54119 344.678 7.80823Z' fill='url(%23paint33_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M355.003 7.80823V9.25659C355.003 9.52364 355.219 9.74024 355.486 9.74024H356.936C357.203 9.74024 357.42 9.52364 357.42 9.25659L357.42 7.80823C357.42 7.54119 357.203 7.32471 356.936 7.32471L355.486 7.32471C355.219 7.32471 355.003 7.54119 355.003 7.80823Z' fill='url(%23paint34_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M365.328 7.80823V9.25659C365.328 9.52363 365.544 9.74024 365.811 9.74024H367.261C367.528 9.74024 367.745 9.52363 367.745 9.25659V7.80823C367.745 7.54119 367.528 7.32471 367.261 7.32471L365.811 7.32471C365.544 7.32471 365.328 7.54119 365.328 7.80823Z' fill='url(%23paint35_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M375.896 7.80823V9.25659C375.896 9.52363 376.112 9.74023 376.38 9.74023H377.83C378.096 9.74023 378.313 9.52363 378.313 9.25659V7.80823C378.313 7.54119 378.096 7.32471 377.829 7.32471L376.38 7.32471C376.112 7.32471 375.896 7.54119 375.896 7.80823Z' fill='url(%23paint36_linear_8295_70635)'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M386.221 7.80823V9.25659C386.221 9.52363 386.438 9.74023 386.705 9.74023H388.155C388.421 9.74023 388.639 9.52363 388.639 9.25659V7.80823C388.639 7.54119 388.421 7.32471 388.155 7.32471L386.705 7.32471C386.438 7.32471 386.221 7.54119 386.221 7.80823Z' fill='url(%23paint37_linear_8295_70635)'/%3E%3Cdefs%3E%3ClinearGradient id='paint0_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint1_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint2_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint3_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint4_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint5_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint6_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint7_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint8_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint9_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint10_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint11_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint12_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint13_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint14_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint15_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint16_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint17_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint18_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint19_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint20_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint21_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint22_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint23_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint24_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint25_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint26_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint27_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint28_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint29_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint30_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint31_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint32_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint33_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint34_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint35_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint36_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3ClinearGradient id='paint37_linear_8295_70635' x1='-47.5' y1='8.99989' x2='332' y2='8.99989' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%2329B5E8' stop-opacity='.8'/%3E%3Cstop offset='1' stop-color='%2329B5E8' stop-opacity='0'/%3E%3C/linearGradient%3E%3C/defs%3E%3C/svg%3E%0A\")}.sc-hero__inner\u003E.snowflake-flexible-column-container-items\u003Ediv:first-child{position:relative;z-index:3}.sc-hero__inner\u003E.snowflake-flexible-column-container-items\u003Ediv:last-child{position:absolute;height:100%;width:100%;top:0;left:-24px}.sc-hero__inner\u003E.snowflake-flexible-column-container-items\u003Ediv:last-child::before{content:\"\";display:block;z-index:1;position:absolute;top:-64px;left:0;width:150%;height:calc(100% + 160px);background-color:rgb(32 44 53 / .9)}.sc-body__content .heading-3-v2,.sc-hero__headline .heading-1-v2{text-transform:none}.sc-body__content span.snowflake-image-caption{display:block!important;font-style:italic}.sc-body__content .snowflake-text p+ul{margin-top:24px!important;padding-left:16px!important}.white-blue-text-color .snowflake-title-v2.solution-center-hero__certification .snowflake-typographyv2\u003Espan.snowflake-title-v2-line{color:#e9eaeb!important;font-size:16px}.white-blue-text-color .snowflake-title-v2.solution-center-hero__certification.is-large .snowflake-typographyv2\u003Espan.snowflake-title-v2-line{color:#fff!important;font-size:18px}.solution-center-hero__certification\u003E.snowflake-title-v2-line\u003Espan:first-child{display:flex;justify-content:flex-start;align-items:center;gap:8px}.solution-center-hero__certification\u003E.snowflake-title-v2-line\u003Espan:first-child::before{content:\"\";display:inline-block;width:16px;height:16px;background-image:url(\"data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 0C3.58146 0 0 3.58146 0 8C0 12.4185 3.58146 16 8 16C12.4185 16 16 12.4185 16 8C16 3.58146 12.4185 0 8 0ZM12.7184 5.91984L7.33471 11.3026C7.31293 11.3244 7.31293 11.3454 7.29198 11.3454L7.20653 11.4308C6.94933 11.688 6.54132 11.7525 6.21962 11.6235C6.11238 11.5808 6.00514 11.5163 5.9197 11.4308L5.83425 11.3454C5.83425 11.3454 5.83425 11.3236 5.81246 11.3236L3.28149 8.79347C2.93799 8.44997 2.93799 7.87107 3.28149 7.50664L3.36694 7.42119C3.71044 7.07769 4.28934 7.07769 4.65377 7.42119L6.58401 9.35143L11.3877 4.5477C11.7312 4.2042 12.3101 4.2042 12.6746 4.5477L12.76 4.63315C13.0826 4.99758 13.0828 5.55541 12.7184 5.91984Z' fill='%230E8A16'/%3E%3C/svg%3E%0A\");background-size:contain;background-repeat:no-repeat;background-color:#fff;border-radius:100%}.sc-hero__byline{padding-top:8px}.sc-hero__byline p{color:#e2e2e2;margin-top:0!important}.sc-hero pre[class*=language-]{overflow:visible}.snowflake-code-snippet,.snowflake-code-snippet code,.snowflake-code-snippet pre{font-size:16px}.sc-hero__code-snippet:not(pre)\u003Ecode[class*=language-],.sc-hero__code-snippet pre[class*=language-]{background:0 0}.sc-hero__code-snippet{opacity:.8;background-color:transparent!important;position:absolute;top:0;right:0;width:100%;animation:240s linear 1s forwards slow-scroll}.sc-hero__button-container .snowflake-flexible-column-container-items{padding:0 0 24px;margin-top:-8px;margin-left:24px}.sc-sidebar__partner-logo{width:100%;max-width:140px;margin-top:8px}.sc-sidebar__partner-logo .cmp-image__image{border-radius:0}.sc-tag-cluster.snowflake-text ul{list-style-type:none;padding:0;display:flex;flex-wrap:wrap;gap:8px;margin:0}.sc-tag-cluster.snowflake-text li{color:#373f41;border-radius:4px;display:inline-block;padding:6px;text-transform:uppercase;letter-spacing:1px;font-size:12px!important;line-height:12px!important;margin:0!important;background-color:#f3f3f3}.sc-body .share-icon svg{height:24px;cursor:pointer}.sc-body .share-icon svg:hover path{fill:var(--ui-02)}.sc-overview__webinar-promo-banner{align-items:center;border:1px solid #ccc;padding:var(--spacing-02)}.sc-overview__webinar-promo-banner .snowflake-content-chip-image{max-width:32px;margin-right:var(--spacing-02);line-height:0}.sc-overview__webinar-promo-banner .snowflake-content-chip-image__image,.summit-speaker-card .snowflake-card-v2-advanced-image__image{aspect-ratio:1}.sc-overview__webinar-promo-banner .snowflake-content-chip-content .heading-5-v2{font-size:14px;font-family:Lato,sans-serif}.sc-overview__webinar-promo-banner .snowflake-content-chip-content .snowflake-title-v2-line:not(:first-child){font-weight:400}.sc-overview__webinar-promo-banner .snowflake-content-chip-button .snowflake-button-container{font-size:14px!important}.diagram-group__button{position:absolute;bottom:24px;right:24px;background-color:#212c35!important}.section--mountains-bottom,.summit-hp-hero{position:relative}.sc-cert-banner{background-color:#212d35;border-radius:8px;padding:24px;overflow:hidden}.sc-cert-banner\u003E.container\u003E.cmp-container\u003E.aem-container{display:flex;flex-direction:row;align-items:center}:root{--text-secondary:#706f6f;--summit-bg-ltblue:#eaf8fd;--summit-bg-blue:#249edc;--summit-border:#d2d1d4;--summit-border-radius:8px;--summit-card-padding:32px;--summit-card-padding-sm:28px}.section--mountains-bottom::after,.section--mountains-bottom::before{content:\"\";display:block;position:absolute;bottom:-1px;max-width:400px;background-size:100% auto;height:100%;width:30%;line-height:0;background-repeat:no-repeat}.button-group\u003E.container\u003E.cmp-container\u003E.aem-container{justify-content:center;align-items:center}.button-group\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:auto!important;margin:0 8px!important}.button-group .snowflake-button-container{font-family:Texta,sans-serif}.section--summit-bg-ltblue{background-color:var(--summit-bg-ltblue)}.section--summit-bg-blue,.summit-hero-secondary{background-color:var(--summit-bg-blue)}.section--mountains-bottom::before{left:0;background-image:url(\"data:image/svg+xml,%3Csvg width='402' height='309' viewBox='0 0 402 309' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M401.523 308.761H0V0L181.63 182.431L228.479 135.531L401.523 308.761Z' fill='%23249EDC'/%3E%3C/svg%3E%0A\");background-position:bottom left}.section--mountains-bottom::after{right:0;background-image:url(\"data:image/svg+xml,%3Csvg width='402' height='309' viewBox='0 0 402 309' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 308.761H401.523V0L219.893 182.431L173.044 135.531L0 308.761Z' fill='%23249EDC'/%3E%3C/svg%3E%0A\");background-position:bottom right}.summit-hp-hero{overflow:hidden}.summit-hero__bg-video{position:absolute;top:50%;left:50%;width:120%;height:100%;opacity:.3;transform:translate(-50%,-50%)}.summit-hero__bg-svg,.summit-prefooter__bg-image,.summit-secondary-hero__bg-image{position:absolute;bottom:0;left:0;width:100%}.summit-hp-promo-banner__headline .heading-4-v2{font-weight:900}.summit-hero-secondary .hero-lottie__left{position:absolute;bottom:0;left:0;width:30%;line-height:0}.summit-timeline__card::after,.summit-timeline__card::before{bottom:0;left:50%;position:absolute;display:block;background-color:var(--ui-01);content:\"\"}.summit-hero-secondary .snowflake-text p{font-size:24px!important;line-height:32px!important;max-width:720px;margin:0 auto}.summit-stat-container\u003E.container\u003E.cmp-container\u003E.aem-container{display:flex;justify-content:center}.summit-stat-container\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:auto!important;max-width:25%}.summit-stat-container\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:not(:last-child){border-right:1px solid #fff}.summit-timeline__card{border:1px solid var(--summit-border);border-radius:var(--summit-border-radius);padding:var(--summit-card-padding);position:relative;background-color:#fff}.summit-timeline__card::before{width:20px;height:20px;border-radius:100%;transform:translate(-50%,50%)}.summit-timeline__card::after{width:3px;height:50px;transform:translate(-50%,100%)}.summit-timeline-card__icon{width:48px;height:48px}.summit-timeline-card__headline .heading-3-v2{font-size:32px}.faq-group{border:1px solid var(--ui-12);border-radius:4px;background-color:#fff}.faq-group__question{padding:24px}.faq-group__question:hover{color:var(--ui-01);cursor:pointer}.faq-group__question .heading-4-v2,.faq-group__question .heading-5-v2{position:relative;padding-right:64px}.faq-group__question .heading-4-v2::after,.faq-group__question .heading-5-v2::after{content:\"\";display:block;width:32px;height:32px;background-image:url(\"data:image/svg+xml,%3Csvg width='29' height='16' viewBox='0 0 29 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M14.16 14.6807C14.2537 14.7957 14.3719 14.8884 14.506 14.952C14.64 15.0157 14.7866 15.0487 14.935 15.0487C15.0834 15.0487 15.2299 15.0157 15.3639 14.952C15.498 14.8884 15.6162 14.7957 15.71 14.6807V14.6807L28.51 2.00068C29.07 1.43068 29.07 .92068 28.51 .44068C27.95 -.0393204 27.43 -.11932 26.96 .44068L14.94 12.0007L2.99996 .45068C2.90725 .322624 2.7855 .218374 2.6447 .146483C2.50389 .0745926 2.34805 .0371094 2.18996 .0371094C2.03187 .0371094 1.87603 .0745926 1.73522 .146483C1.59442 .218374 1.47267 .322624 1.37996 .45068C.819961 .93068 .819961 1.45068 1.37996 2.01068L14.16 14.6807Z' fill='black'/%3E%3C/svg%3E%0A\");background-size:80% auto;background-repeat:no-repeat;background-position:center;position:absolute;top:-2px;right:0;transition:.3s 150ms}.faq-group__question .heading-5-v2::after{top:-4px}.faq-group__answer{max-height:0;overflow:hidden;width:95%;padding:0 24px;transition:.5s}.faq-group__answer\u003Espan{display:block;padding-bottom:24px}.is-open .faq-group__answer{max-height:600px;transition:1s}.is-open .faq-group__question .heading-4-v2::after,.is-open .faq-group__question .heading-5-v2::after{transform:rotate(180deg);transition:.3s}.summit-agenda{box-shadow:2px 4px 10px 0 rgb(156 156 156 / .52);border-radius:8px;background-color:#fff;max-width:980px;margin-left:auto;margin-right:auto;padding:40px;width:90%}.agenda-item{border-radius:8px;background-color:#d4f0fa;padding:16px;border-left:4px solid var(--ui-01);position:relative}.summit-pricing-block__tile.is-past,.summit-pricing-block__tile.is-upcoming{pointer-events:none;border-color:#d2d1d4}p.agenda-item__time{width:25%;font-family:Texta!important;font-size:32px!important;font-weight:900!important;text-transform:uppercase!important;max-width:140px}@media screen and (max-width:991px){#partnerResources .section--resource-hub .snowflake-button-link .snowflake-button-container{font-size:14px!important;line-height:20px!important;margin-top:4px}#industryPartnerSlider\u003E.snowflake-flexible-column-container-items{display:flex;flex-direction:column}#industryPartnerSlider\u003E.snowflake-flexible-column-container-items\u003Ediv{width:100%}.sc-cert-banner__left{text-align:center}.sc-cert-banner__left .solution-center-hero__certification .snowflake-title-v2-line{justify-content:center}.summit-hero__bg-video{width:200%}.summit-leadership-grid .snowflake-flexible-column-container-items{grid-template-columns:repeat(2,1fr)}.summit-stat-container\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:50%!important;max-width:50%!important}.summit-stat-container\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:not(:last-child){border-right:none!important}.summit-agenda{padding:24px}p.agenda-item__time{font-size:24px!important;width:auto;white-space:nowrap;padding-right:24px}}.agenda-item\u003Espan{display:flex;align-items:center}.summit-add-on-block,.summit-pricing-block{border:1px solid #d2d1d4;border-radius:8px;overflow:hidden;box-shadow:2px 4px 10px 0 rgb(156 156 156 / .52);background-color:#fff}.summit-add-on-block__content,.summit-pricing-block__content{padding:0 20px 20px}.summit-pricing-block__tile{padding:24px 20px;border-radius:4px;background:#fff;border:1px solid var(--ui-01);position:relative;transition:background-color .3s}.summit-pricing-block__tile:hover{background-color:var(--ui-01);transition:background-color .3s}.summit-pricing-block__tile.is-past{background-color:#d4f0fa}.summit-pricing-block__tile:hover .black-blue-text-color .snowflake-title-v2-line{color:#fff!important;transition:color .3s}.partner-card__logo-grid\u003E.container\u003E.cmp-container\u003E.aem-container::after,.partner-card__logo-grid\u003E.container\u003E.cmp-container\u003E.aem-container::before,.summit-add-on-block__content\u003E.container\u003E.cmp-container\u003E.aem-container::after,.summit-add-on-block__content\u003E.container\u003E.cmp-container\u003E.aem-container::before,.summit-pricing-block__tile.is-past .snowflake-content-chip-button,.summit-pricing-block__tile.is-upcoming .snowflake-content-chip-button,.summit-speaker-card .snowflake-card-v2-advanced-tag-indicator{display:none}.summit-pricing-block__tile.is-past .black-blue-text-color .snowflake-title-v2-line{color:#7cc7eb!important}.summit-pricing-block__tile.is-upcoming .black-blue-text-color .snowflake-title-v2-line{color:#8c8c8c!important}.summit-pricing-block__aside{background-color:#d4f0fa;border:1px solid #d2d1d4;border-radius:8px;padding:24px;width:100%}.summit-pricing-block__aside li::marker{color:var(--ui-01)}.summit-pricing-block__aside-headline .heading-5-v2{font-weight:900;margin-bottom:12px}.summit-pricing-block__header{background:#000;padding:24px 40px}.summit-pricing-block__header .heading-4-v2{font-weight:900;letter-spacing:.5px}.bwwidth100,.snowflake-mega-nav-dropdown-footer-content,.summit-pricing-block__tile .black-blue-text-color{width:100%}.summit-pricing-block__tile .heading-5-v2{position:static}.summit-pricing-block__tile .heading-5-v2 span.snowflake-title-v2-line:first-child{text-transform:uppercase;font-weight:900!important;letter-spacing:.25px;font-size:24px!important}.summit-pricing-block__tile .heading-5-v2 span.snowflake-title-v2-line:nth-child(2){margin-top:8px;font-family:Lato,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:16px}.summit-pricing-block__tile .heading-5-v2 span.snowflake-title-v2-line:last-child{font-weight:900!important;font-size:40px!important}.snowflake-mega-nav-nav-item\u003Ea:hover .snowflake-mega-nav-nav-item-title-wrapper\u003E.snowflake-mega-nav-nav-item-title,.summit-pricing-block__tile:not(.is-upcoming):not(.is-past) .heading-5-v2 span.snowflake-title-v2-line:last-child{color:var(--ui-01)!important}.summit-pricing-block__tile:hover:not(.is-upcoming):not(.is-past) .heading-5-v2 span.snowflake-title-v2-line:last-child{color:#fff!important}.summit-pricing-block__tile.is-past .heading-5-v2 span.snowflake-title-v2-line:last-child{text-decoration:line-through}.summit-pricing-block__tile .snowflake-content-chip-button{margin-top:0;white-space:nowrap;display:none}.snowflake-card-v2-advanced.no-link{pointer-events:none!important}.snowpro-card{border:1px solid var(--summit-border);border-radius:var(--summit-border-radius);padding:var(--summit-card-padding-sm);display:flex;height:100%}.snowpro-card__headline{margin:24px 0 12px}.snowpro-card__pricing{margin-top:48px}.snowpro-card .snowflake-text .snowpro-card__price{color:var(--ui-01);font-weight:900;font-size:40px!important;font-family:Texta,sans-serif}.summit-stat-container\u003E.container\u003E.cmp-container\u003E.aem-container{display:flex;flex-direction:row;flex-wrap:wrap}.summit-stat-container\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:not(:last-child){border-right:1px solid var(--summit-border)}.summit-stat-card{padding:0 40px}.summit-stat .heading-2-v2 .snowflake-title-v2-line:first-child{font-size:64px;line-height:52px;margin-bottom:8px}.summit-stat .heading-2-v2 .snowflake-title-v2-line:last-child{font-size:32px;line-height:30px;margin-bottom:16px}.summit-speaker-card .snowflake-card-v2-advanced-title{margin-bottom:var(--spacing-01)}.summit-add-on-card{padding:24px;border:1px solid #d2d1d4;border-radius:8px}.summit-add-on__subhead{padding-left:40px;padding-right:40px}.partner-card__logo-grid,.partner-card__logo-single{padding:40px}.partner-card__logo-grid .snowflake-image-container .cmp-image__image,.partner-card__logo-single .snowflake-image-container .cmp-image__image{border-radius:0;max-width:240px;margin:0 auto}.partner-card\u003E.container,.partner-card\u003E.container\u003E.aem-container,.partner-card\u003E.container\u003E.cmp-container{height:100%}.summit-add-on-block__content\u003E.container\u003E.cmp-container\u003E.aem-container{display:flex;flex-direction:row;gap:24px;align-items:stretch}.partner-card__logo-grid\u003E.container\u003E.cmp-container\u003E.aem-container{display:flex;flex-direction:row;flex-wrap:wrap;gap:40px 24px;justify-content:center;align-items:center}.partner-card__logo-grid\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:calc(33.3333% - 24px);margin:0!important}.partner-card{border-radius:8px;border:1px solid #d2d1d4;overflow:hidden;height:100%;background-color:#fff}.partner-card__header{padding:16px 24px;border-bottom:1px solid #d2d1d4}.partner-card__header.is-purple{background-color:#7d44cf}.partner-card__header h4{display:flex;flex-direction:row!important;align-items:center;gap:12px}.partner-card__header h4::before{vertical-align:middle;content:\"\";display:inline-block;width:20px;height:20px;background-size:contain;background-repeat:no-repeat;background-image:url(\"data:image/svg+xml,%3Csvg width='21' height='23' viewBox='0 0 21 23' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M20.0375 12.8374C20.1644 12.439 20.2172 12.0289 20.2077 11.6237C20.193 11.3305 20.1548 11.0373 20.0712 10.7441C19.8196 9.83306 19.223 9.01989 18.3294 8.50724L5.61817 1.2017C3.82388 .173815 1.53618 .784335 .506483 2.56804C-.533615 4.34915 .0797871 6.62351 1.87408 7.65398L8.97715 11.7427L1.87408 15.8201C.0797871 16.8527 -.531016 19.1271 .506483 20.9156C1.53618 22.6941 3.82388 23.302 5.61817 22.2746L18.3294 14.9643C19.1871 14.4728 19.7693 13.7027 20.0375 12.8374Z' fill='black'/%3E%3C/svg%3E%0A\")}.partner-card__header.is-purple h4::before{background-image:url(\"data:image/svg+xml,%3Csvg width='21' height='23' viewBox='0 0 21 23' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M20.0375 12.8374C20.1644 12.439 20.2172 12.0289 20.2077 11.6237C20.193 11.3305 20.1548 11.0373 20.0712 10.7441C19.8196 9.83306 19.223 9.01989 18.3294 8.50724L5.61817 1.2017C3.82388 .173815 1.53618 .784335 .506483 2.56804C-.533615 4.34915 .0797871 6.62351 1.87408 7.65398L8.97715 11.7427L1.87408 15.8201C.0797871 16.8527 -.531016 19.1271 .506483 20.9156C1.53618 22.6941 3.82388 23.302 5.61817 22.2746L18.3294 14.9643C19.1871 14.4728 19.7693 13.7027 20.0375 12.8374Z' fill='white'/%3E%3C/svg%3E%0A\")}.sf-blue-mountains{background-size:90% auto;background-repeat:no-repeat;background-position:center bottom;background-image:url(\"data:image/svg+xml,%3Csvg width='1361' height='410' viewBox='0 0 1361 410' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1360.25 410L1065.53 114.309L976.256 203.875L773.049 0L364.393 410H1360.25Z' fill='%233AA8DF'/%3E%3Cpath d='M274.778 410L137.467 272.238L.15625 410H274.778Z' fill='%233AA8DF'/%3E%3C/svg%3E%0A\")}.bwalignr,.main-pr-body .bwalignr{text-align:right}.bwblockalignl{margin-left:0;margin-right:auto}.bwcellpmargin{margin-top:0;margin-bottom:0}.bwlistdisc{list-style-type:disc}.bwpadb3{padding-bottom:4px}.bwpadb4{padding-bottom:5px}.bwpadl0{padding-left:0}.bwpadl3{padding-left:15px}.bwpadl6{padding-left:30px}.bwpadl9{padding-left:45px}.bwpadl12{padding-left:60px}.bwpadr0{padding-right:0}.bwtablemarginb{margin-bottom:10px}.bwvertalignb{vertical-align:bottom}.bwvertalignt{vertical-align:top}.bwsinglebottom{border-bottom:1pt solid #000}.bwdoublebottom{border-bottom:2.25pt double #000}.bwwidth1{width:1%}.bwwidth2{width:2%}.bwwidth6{width:6%}.bwwidth7{width:7%}.bwwidth8{width:8%}.bwwidth10{width:10%}.bwwidth12{width:12%}.bwwidth32{width:32%}.bwwidth44{width:44%}.bwwidth72{width:72%}.bwwidth97{width:97%}.main-pr-body{font-size:18px;line-height:26px}.main-pr-body img{display:block;width:100%;height:auto!important;border-radius:var(--small-border-radius)}.main-pr-body table{width:100%;display:block}.main-pr-body tbody{background-color:#f7f7f7}.main-pr-body .bwsinglebottom{border-bottom:1pt solid #000!important}.main-pr-body td.bwwidth44{padding-right:40px}.main-pr-body .bw-release-story{font-family:Lato,sans-serif}.main-pr-body .bw-release-story sup,.snowflake-mega-nav-dropdown-header-content-right a{white-space:nowrap}.main-pr-body .bw-release-story\u003E*,.main-pr-body\u003Espan\u003E*{margin-bottom:2rem!important}.snowflake-text.main-pr-body tbody,.snowflake-text.main-pr-body tbody p{font-size:14px!important;line-height:20px!important;width:100%;display:block}.press-body .snowflake-flexible-column-container-items{gap:var(--spacing-08)}.about-snowflake{border:1px solid #ccc;background-color:var(--ui-background-05);padding:24px;border-radius:8px;margin-top:0}.about-snowflake__logo{max-width:140px;margin-top:16px}.hero--press .snowflake-hero-system-inner{max-width:1408px;margin:0 auto!important}#arcticNavItem{flex-direction:column}#arcticNavItem::before{content:\"Featured Open Source Technologies\";display:block;margin-top:48px;margin-bottom:24px;font-size:16px!important;line-height:16px!important;font-weight:800!important;text-transform:uppercase}@media screen and (min-width:768px){.sc-hero__inner\u003E.snowflake-flexible-column-container-items\u003Ediv:last-child{position:relative;height:100%;top:auto;left:auto;width:auto}.sc-hero__inner\u003E.snowflake-flexible-column-container-items\u003Ediv:last-child::before{background:linear-gradient(180deg,#202c35 -7.5%,#fff0 51.25%,#202c35 107.69%)}.sc-hero__byline\u003Espan{display:flex;flex-wrap:wrap}.sc-hero__byline p:not(:last-child)::after{content:\"|\";margin:0 12px;opacity:.5}.sc-hero__button-container .snowflake-flexible-column-container-items{position:absolute;bottom:0;padding:0;margin:0 24px 0 0}.sc-hero__button-container .hero-watch-the-demo{padding:12px 16px!important;float:right;margin-bottom:48px;background-color:rgb(35 45 54 / .8)}.summit-overview-stat{padding:0 40px}.summit-timeline{border-bottom:3px solid var(--ui-01);margin-bottom:64px}.summit-add-on-block__content,.summit-pricing-block__content{padding:0 40px 40px}#arcticNavItem::before{font-size:12px!important;margin-bottom:8px;margin-top:16px}.snowflake-mega-nav-nav-item-title-wrapper\u003E.snowflake-mega-nav-nav-item-title{line-height:20px!important}.snowflake-card .heading-2.snowflake-title-line{font-size:24px!important;line-height:28px!important}}@media screen and (min-width:992px){.hp-hero__eyebrow a{gap:12px;margin-left:0;margin-right:0}.hp-hero__eyebrow a::after{content:\"\";background-image:url(\"data:image/svg+xml,%3Csvg width='6' height='11' viewBox='0 0 6 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M5.49134 5.79438C5.53447 5.75922 5.56923 5.71489 5.5931 5.66463C5.61697 5.61436 5.62935 5.55941 5.62935 5.50376C5.62935 5.44811 5.61697 5.39316 5.5931 5.34289C5.56923 5.29263 5.53447 5.2483 5.49134 5.21314L.736339 .413136C.522589 .203135 .331339 .203135 .151339 .413136C-.0286612 .623135 -.0586612 .818135 .151339 .994386L4.48634 5.50188L.155089 9.97938C.107068 10.0142 .0679743 10.0598 .0410153 10.1126C.0140562 10.1654 0 10.2238 0 10.2831C0 10.3424 .0140562 10.4009 .0410153 10.4537C.0679743 10.5065 .107068 10.5521 .155089 10.5869C.335089 10.7969 .530089 10.7969 .740089 10.5869L5.49134 5.79438Z' fill='black'/%3E%3C/svg%3E%0A\");display:inline-block;width:12px;height:12px;background-repeat:no-repeat;background-size:auto 100%;background-position:left center}.promo-banner--homepage{padding-top:32px}.homepage-banner-offset-container::after{height:50%}#storyHighlights{padding:2rem}.body-display-v2.snowflake-quote-item-quote-text{line-height:28px!important}.snowflake-hero-system-headline .heading-1-v2{line-height:48px;font-size:54px!important}.sc-overview__webinar-promo-banner .snowflake-content-chip-content{flex-direction:row;justify-content:space-between;align-items:center;width:100%}.sc-overview__webinar-promo-banner .snowflake-content-chip-content .heading-5-v2{flex-direction:row}.sc-overview__webinar-promo-banner .snowflake-content-chip-content .snowflake-title-v2-line:not(:first-child)::before{content:\"|\";margin:0 6px}.sc-cert-banner{padding:40px}.sc-cert-banner\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{margin:0!important;width:50%}.sc-cert-banner\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:first-child{flex-grow:1;padding-right:24px}.sc-cert-banner\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:last-child{max-width:240px}.summit-pricing-block__content\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:last-child{width:70%;padding-left:40px}.summit-pricing-block__content\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:first-child{width:30%}.summit-add-on-block__content\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:calc(33.3333% - 24px);margin:0!important;display:flex}.summit-pricing-block__tile .snowflake-content-chip-content{display:flex;flex-direction:row;align-items:center;width:calc(100% - 200px)}.summit-pricing-block__tile .heading-5-v2 span.snowflake-title-v2-line:last-child{position:absolute;top:50%;transform:translate(0,-50%);right:40px}.press-body\u003E.snowflake-flexible-column-container-items\u003Ediv:last-child{position:sticky;top:120px}.snowflake-mega-nav-navigation-title:hover{color:var(--ui-01)}}@media screen and (min-width:1024px){.about-snowflake{padding:28px}.about-snowflake__logo{max-width:none;padding:0 0 0 48px;margin-bottom:0}.hero--press .snowflake-hero-system-layout-70-30 .snowflake-hero-system-content-container{width:85%}.snowflake-hero-system{padding-bottom:var(--spacing-04);padding-top:var(--spacing-07)}.hero--press .display-2-v2{font-size:64px;line-height:56px}.about-snowflake\u003E.container\u003E.cmp-container\u003E.aem-container{flex-direction:row;flex-wrap:nowrap;align-items:center}.about-snowflake\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:last-child{max-width:280px}.about-snowflake\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:first-child{flex-grow:1;margin-bottom:0!important}#polarisNavItem{margin-top:40px}.snowflake-mega-nav-nav-item-description{line-height:18px!important}.snowflake-mega-nav-column-items{gap:var(--spacing-01);grid-gap:var(--spacing-01)}.snowflake-mega-nav-navigation-title{text-transform:none}}div[id*=blueIcon] .snowflake-mega-nav-nav-item-icon__inner{background:var(--ui-01);padding:8px}div[id*=blueIcon]:hover .snowflake-mega-nav-nav-item-icon__inner{background:var(--ui-01)!important}.snowflake-mega-nav-nav-item-icon__inner{border-radius:4px;background:var(--ui-background-05);padding:6px}.snowflake-mega-nav-nav-item:hover .snowflake-mega-nav-nav-item-icon__inner{background:#fff!important}.snowflake-mega-nav-nav-item-icon.snowflake-image-container{height:40px;width:40px}.snowflake-mega-nav-dropdown-footer-links\u003E.snowflake-button-link\u003E.snowflake-button-container{font-size:16px!important;font-family:Texta!important;font-weight:800!important}.snowflake-mega-nav-dropdown-footer-icon.snowflake-image-container{margin-right:8px;width:40px!important;height:40px!important}#viewAllCapabilities a:hover{background:0 0!important}#platformFooter .snowflake-title-v2 .snowflake-title-v2-line:last-child{font-family:Lato;font-size:14px;font-weight:500}#platformFooter .snowflake-mega-nav-dropdown-footer-links{flex-grow:1;justify-content:flex-end;align-items:center}#platformFooter .snowflake-mega-nav-dropdown-footer-content{flex-direction:row}#offset,#open-source{flex-direction:column;border-top:1px solid #ccc}#offset::before,#open-source::before{content:\" \";display:block;width:100%;font-weight:800!important;font-size:12px!important;line-height:14px;text-transform:uppercase;white-space:nowrap;margin-top:16px;margin-bottom:8px}#open-source::before{content:\"Open Source Technologies\"}.snowflake-mega-nav-dropdown-menu-close-button{margin:var(--spacing-04) 0 var(--spacing-03)}.snowflake-mega-nav-column{gap:var(--spacing-02)!important}.snowflake-mega-nav-nav-item\u003Ea{width:100%;margin-left:-8px;padding:8px;border-radius:4px}.snowflake-mega-nav-nav-item\u003Ea:hover{background-color:var(--ui-background-05)}.snowflake-mega-nav-nav-item-description{margin-top:2px;display:block}#promobanner_overflowBottomDarkBlue::before{content:'';display:block;position:absolute;bottom:0;left:0;width:100%;height:50%;background:#212d35}#promobanner_overflowTopDarkBlue::before{content:'';display:block;position:absolute;top:0;left:0;width:100%;height:50%;background:#212d35}.overview-card\u003Ediv{box-shadow:0 0 14px 0 rgba(0,0,0,.10);background-color:#fff;border-radius:16px;overflow:hidden}.overview-card-text{padding:40px}.overview-card-image img{border-radius:0 !important}.overview-card-text h3,.overview-card-text .heading-3-v2{font-size:18px;line-height:1.1;margin-top:0}",":type":"snowflake-site/components/markup-editor","isGSAPEnabled":false},"mega_header":{"additionalClasses":"heap-nav-header","layout":"SIMPLE","id":"container-192e7d6989",":type":"snowflake-site/components/mega-header",":items":{"nav_mega":{"activeItem":"item_1719963657751_c_663444255","id":"tabs-02f1574024",":type":"snowflake-site/components/nav/nav-mega",":items":{"item_1719963657751_c_663444255":{"id":"nav-dropdown-menu-dce9c14b45","enableDropdown":true,"nav_column_container":{"layout":"SIMPLE","id":"container-c4dddfe758",":type":"snowflake-site/components/nav/nav-column/nav-column-container",":items":{"nav_column":{"additionalClasses":"nav-platform-sidebar","numberOfSubColumns":"one-column","minWidth":"230","maxWidth":"350","layout":"SIMPLE","id":"container-90af18eae0",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item_copy_copy_2_793631646":{"id":"nav-item-1b67e4b858","additionalClasses":"nav-item__platform-parent is-platform","linkDescription":"Develop AI products, apps and more on a fully managed platform that securely connects businesses globally — across any type or scale of data.","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/platform/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"The Snowflake Platform"},":type":"snowflake-site/components/nav/nav-item"},"nav_item":{"id":"nav-item-7e7f0d4500","additionalClasses":"nav-item nav-item--si is-si","linkDescription":"All your knowledge. One trusted enterprise agent.","flag":"NOW GA","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/snowflake-cowork/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Snowflake CoWork"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_copy_2_836345186":{"id":"nav-item-722a58ca19","additionalClasses":"blue-icon is-analytics","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/analytics/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Analytics"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_copy_2":{"id":"nav-item-c42e9c792d","additionalClasses":"blue-icon is-ai","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/ai/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"AI"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_copy_2_1314771042":{"id":"nav-item-ce1fb49d21","additionalClasses":"blue-icon is-data-eng","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/data-engineering/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Data Engineering"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_144634":{"id":"nav-item-0ba758f92d","additionalClasses":"blue-icon is-apps-collab","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/applications-and-collaboration/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Applications & Collaboration"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_144634_2013333117":{"id":"nav-item-77fbbb5f6b","additionalClasses":"blue-icon is-transactions","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/transactions/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Transactions"},":type":"snowflake-site/components/nav/nav-item"}},":itemsOrder":["nav_item_copy_copy_2_793631646","nav_item","nav_item_copy_copy_2_836345186","nav_item_copy_copy_2","nav_item_copy_copy_2_1314771042","nav_item_copy_144634","nav_item_copy_144634_2013333117"]},"nav_column_copy_copy":{"additionalClasses":"meganav-platform-features","navColumnTitle":"Featured Capabilities","numberOfSubColumns":"one-column","layout":"SIMPLE","id":"container-e02893ef55",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item_copy_212715":{"id":"nav-item-42d6613604","additionalClasses":"is-cortex-code","linkDescription":"Snowflake-native AI coding agent ","flag":"Now GA","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/snowflake-coco/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Snowflake CoCo"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_511717659_c":{"id":"nav-item-a6c9bca439","additionalClasses":"is-observe","linkDescription":"AI-powered observability for faster production troubleshooting","flag":"New","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/observe/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Observe"},":type":"snowflake-site/components/nav/nav-item"},"nav_item":{"id":"nav-item-0f97472c76","additionalClasses":"is-cortex-ai","linkDescription":"Instant access to industry-leading LLMs","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/product/features/cortex/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Cortex AI"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_660590635":{"id":"nav-item-3be52669c9","additionalClasses":"is-marketplace","linkDescription":"Third-party data sources connected within minutes","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/product/features/marketplace/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Marketplace"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_660590":{"id":"nav-item-15960e9e90","additionalClasses":"is-snowpark","linkDescription":"Libraries and code execution environments that run Python and more","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/product/features/snowpark/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Snowpark"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_660590_1664056128":{"id":"nav-item-5a959b4dfe","additionalClasses":"is-snowpark","linkDescription":"Compute that right-sizes itself for every workload","flag":"Now GA","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/features/adaptive-compute/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Adaptive Compute"},":type":"snowflake-site/components/nav/nav-item"}},":itemsOrder":["nav_item_copy_212715","nav_item_511717659_c","nav_item","nav_item_copy_660590635","nav_item_copy_660590","nav_item_copy_660590_1664056128"]},"nav_column_692142673":{"navColumnTitle":" ","numberOfSubColumns":"one-column","layout":"SIMPLE","id":"container-a2f6df28e5",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item_copy_660590_1739526127":{"id":"nav-item-131ea946fa","additionalClasses":"is-postgres","linkDescription":"Fully compatible open source Postgres running on Snowflake","flag":"Now GA","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/features/postgres/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Postgres"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_660590_2011265650":{"id":"nav-item-192c4e6501","additionalClasses":"is-streamlit","linkDescription":"Framework for transforming Python scripts into web apps","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/product/features/streamlit-in-snowflake/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Streamlit"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_185565":{"id":"nav-item-6ea65cc140","additionalClasses":"is-dcr","linkDescription":"Streamlined model development and MLOps from a centralized UI","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/features/end-to-end-ml-workflows/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Snowflake ML"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_212715":{"id":"nav-item-ffb12e9959","additionalClasses":"is-openflow","linkDescription":"Effortless data movement for integrations","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/product/features/openflow/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Openflow"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_660590":{"id":"nav-item-358edafcfb","additionalClasses":"is-notebooks","linkDescription":"Interactive dev environment for data and AI teams","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/product/features/notebooks/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Notebooks"},":type":"snowflake-site/components/nav/nav-item"}},":itemsOrder":["nav_item_copy_660590_1739526127","nav_item_copy_660590_2011265650","nav_item_copy_185565","nav_item_copy_212715","nav_item_copy_660590"]},"nav_column_782221091":{"navColumnTitle":" ","numberOfSubColumns":"one-column","layout":"SIMPLE","id":"container-d2e0e2f3f1",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item_258535199":{"id":"nav-item-cab1b4c5b3","propertiesId":"workload-nav-1","additionalClasses":"is-native-apps","linkDescription":"End-to-end, Snowflake-native app creation and distribution","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/product/features/native-apps/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Native Apps"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy":{"id":"nav-item-e10bd1dc12","additionalClasses":"is-light-gray-icon is-horizon-catalog","linkDescription":"Universal AI catalog","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/features/horizon/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Horizon Catalog"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_660590_1293798742":{"id":"nav-item-0ab3aa5206","additionalClasses":"is-snowflake-ml","linkDescription":"Governed context layer that keeps AI, BI and data apps working from one truth","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/features/horizon-context/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Horizon Context"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_511717659_c":{"id":"nav-item-57f9a51827","additionalClasses":"is-unistore","linkDescription":"Unify transactional and analytical workloads in Snowflake for enhanced simplicity","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/features/unistore/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Unistore"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_511717659_c_1006104884":{"id":"nav-item-f84475ba6a","additionalClasses":"is-observe","linkDescription":"Use any engine on a single governed data copy","flag":"Now GA","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/product/use-cases/interoperable-lakehouse/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Interoperable Lakehouse"},":type":"snowflake-site/components/nav/nav-item"}},":itemsOrder":["nav_item_258535199","nav_item_copy","nav_item_copy_660590_1293798742","nav_item_511717659_c","nav_item_511717659_c_1006104884"]}},":itemsOrder":["nav_column","nav_column_copy_copy","nav_column_692142673","nav_column_782221091"]},":type":"snowflake-site/components/nav/nav-dropdown-menu","cq:panelTitle":"Product"},"nav_dropdown_menu_2":{"id":"nav-dropdown-menu-77f01b3fc9","enableDropdown":true,"nav_column_container":{"layout":"SIMPLE","id":"container-e4830df707",":type":"snowflake-site/components/nav/nav-column/nav-column-container",":items":{"nav_column":{"navColumnTitle":"INDUSTRIES","numberOfSubColumns":"one-column","minWidth":"280","layout":"SIMPLE","id":"container-ec47ac88fc",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item_copy_361384_2056203141":{"id":"nav-item-4b29e01174","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/industries/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"All Industries"},":type":"snowflake-site/components/nav/nav-item"},"nav_item":{"id":"nav-item-c23e3feaf0","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/industries/advertising-media-entertainment/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Advertising, Media & Entertainment"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy":{"id":"nav-item-2a287bc984","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/industries/financial-services/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Financial Services"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_1970515619":{"id":"nav-item-9b1d13b386","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/industries/healthcare-and-life-sciences/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Healthcare & Life Sciences"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_1533429516":{"id":"nav-item-75187b4352","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/industries/manufacturing/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Manufacturing"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_1444458226":{"id":"nav-item-76f6763ed5","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/industries/public-sector/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Public Sector"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_1149488919":{"id":"nav-item-c40f799c45","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/industries/retail-consumer-goods/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Retail & Consumer Goods"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_57417040":{"id":"nav-item-14cf726499","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/industries/technology/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Technology"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_361384674":{"id":"nav-item-0cfd64107b","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/industries/telecom/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Telecom"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_361384":{"id":"nav-item-52c48c3803","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/industries/travel-hospitality/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Travel & Hospitality"},":type":"snowflake-site/components/nav/nav-item"}},":itemsOrder":["nav_item_copy_361384_2056203141","nav_item","nav_item_copy","nav_item_copy_1970515619","nav_item_copy_1533429516","nav_item_copy_1444458226","nav_item_copy_1149488919","nav_item_copy_57417040","nav_item_copy_361384674","nav_item_copy_361384"],"appliedCssClassNames":"snowflake-responsive-container-inner-padding-extra-small"},"nav_column_copy":{"navColumnTitle":"DEPARTMENTS","numberOfSubColumns":"one-column","minWidth":"160","layout":"SIMPLE","id":"container-e6fbe0e2c6",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item":{"id":"nav-item-52afda74c6","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/solutions/departments/finance/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Finance"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy":{"id":"nav-item-363a86358c","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/solutions/departments/information-technology/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"IT"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_1970515619":{"id":"nav-item-1eece6fcfd","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/solutions/departments/marketing/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Marketing"},":type":"snowflake-site/components/nav/nav-item"}},":itemsOrder":["nav_item","nav_item_copy","nav_item_copy_1970515619"]},"nav_column_833417450":{"navColumnTitle":"Enablement Solutions","numberOfSubColumns":"one-column","layout":"SIMPLE","id":"container-f80db5b140",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item_copy_107772":{"id":"nav-item-89ab17d309","linkDescription":"Confident migration to a unified platform","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/migrate-to-the-cloud/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Migrate to the AI Data Cloud"},"icon":{"id":"icon","height":"64","alt":"Cloud icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/nav_dropdown_menu_2/nav_column_container/nav_column_833417450/nav_item_copy_107772/icon.coreimg.svg/1723828484100/nav-icon-cloud.svg","isLcpImage":false,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_copy":{"id":"nav-item-f2f81d890e","linkDescription":"Snowflake experts to help you accelerate and achieve business goals","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/solutions/services-delivery/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Services Delivery"},"icon":{"id":"icon","height":"64","alt":"Migrate icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/nav_dropdown_menu_2/nav_column_container/nav_column_833417450/nav_item_copy_copy/icon.coreimg.svg/1768354429188/nav-icon--migrate.svg","isLcpImage":false,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"}},":itemsOrder":["nav_item_copy_107772","nav_item_copy_copy"]},"nav_column_copy_copy":{"navColumnTitle":"PARTNER SOLUTIONS","numberOfSubColumns":"one-column","layout":"SIMPLE","id":"container-653c4c2ca7",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item":{"id":"nav-item-b23ce87ab7","linkDescription":"Programs with product, solutions and cloud partners","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/why-snowflake/partners/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Snowflake Partner Network"},"icon":{"id":"icon","height":"64","alt":"Partner Network icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/nav_dropdown_menu_2/nav_column_container/nav_column_copy_copy/nav_item/icon.coreimg.svg/1723828498700/nav-icon--partner-network.svg","isLcpImage":false,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy":{"id":"nav-item-974d541b77","linkDescription":"Partners, apps and solutions for enhanced deployment","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/why-snowflake/partners/all-partners/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Partner Finder"},"icon":{"id":"icon","height":"64","alt":"Partner Finder icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/nav_dropdown_menu_2/nav_column_container/nav_column_copy_copy/nav_item_copy/icon.coreimg.svg/1726173927645/nav-icon--partner-finder.svg","isLcpImage":false,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_1970515619":{"id":"nav-item-180ec00b33","linkDescription":"Live and virtual events","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/why-snowflake/partners/event-partnership-opportunities/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Event Partnership Opportunities"},"icon":{"id":"icon","height":"64","alt":"Calendar icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/nav_dropdown_menu_2/nav_column_container/nav_column_copy_copy/nav_item_copy_1970515619/icon.coreimg.svg/1726173935655/nav-icon--events.svg","isLcpImage":false,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"}},":itemsOrder":["nav_item","nav_item_copy","nav_item_copy_1970515619"]}},":itemsOrder":["nav_column","nav_column_copy","nav_column_833417450","nav_column_copy_copy"]},":type":"snowflake-site/components/nav/nav-dropdown-menu","cq:panelTitle":"Solutions"},"item_1719963657751_c":{"id":"nav-dropdown-menu-9041cbf611","enableDropdown":true,"nav_column_container":{"layout":"SIMPLE","id":"container-b67d62caaa",":type":"snowflake-site/components/nav/nav-column/nav-column-container",":items":{"nav_column":{"numberOfSubColumns":"one-column","minWidth":"230","maxWidth":"350","layout":"SIMPLE","id":"container-910e66099f",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item_copy_copy_2_793631646":{"id":"nav-item-3e762e9d38","additionalClasses":"nav-item__platform-parent-why-sf","linkDescription":"Collaborate locally and globally to reveal new insights, create previously unforeseen business opportunities, and identify your customers with seamless experiences.","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/why-snowflake/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Why Snowflake"},":type":"snowflake-site/components/nav/nav-item"}},":itemsOrder":["nav_item_copy_copy_2_793631646"]},"nav_column_copy_copy":{"additionalClasses":"meganav-platform-features","numberOfSubColumns":"two-columns","maxWidth":"1200","layout":"SIMPLE","id":"container-b23e487e23",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item":{"id":"nav-item-76e515aeec","propertiesId":"testID","linkDescription":"Case studies and videos showcasing how global organizations use Snowflake","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/customers/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Customers"},"icon":{"id":"icon","height":"64","alt":"Customer icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719963657751_c/nav_column_container/nav_column_copy_copy/nav_item/icon.coreimg.svg/1739839279367/nav-icon--partner-network.svg","isLcpImage":false,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_258535199":{"id":"nav-item-330e49d543","propertiesId":"workload-nav-1","linkDescription":"Learn how to connect, share and integrate the data and apps on the AI Data Cloud","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/why-snowflake/what-is-data-cloud/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"The AI Data Cloud Explained"},"icon":{"id":"icon","height":"64","alt":"Cloud icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719963657751_c/nav_column_container/nav_column_copy_copy/nav_item_258535199/icon.coreimg.svg/1739840490955/nav-icon-cloud.svg","isLcpImage":false,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_185565":{"id":"nav-item-031b45b111","linkDescription":"Comprehensive security through built-in features, robust cloud infrastructure protection, and more","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/why-snowflake/snowflake-security-hub/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Security Hub"},"icon":{"id":"icon","height":"64","alt":"User with security lock icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719963657751_c/nav_column_container/nav_column_copy_copy/nav_item_copy_185565/icon.coreimg.svg/1758909528089/user-security-admins-ciso-icon.svg","isLcpImage":false,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy":{"id":"nav-item-1c92df75d2","additionalClasses":"is-light-gray-icon","linkDescription":"Reduce compute costs across queries, warehouses and storage","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/pricing-options/cost-and-performance-optimization/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Cost Optimization"},"icon":{"id":"icon","height":"64","alt":"Cost Optimization icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719963657751_c/nav_column_container/nav_column_copy_copy/nav_item_copy/icon.coreimg.svg/1791996291063/nav-icon-cost-optimization-performance.svg","isLcpImage":false,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_185565_903555964":{"id":"nav-item-15758d4326","linkDescription":"Startups building applications in the AI Data Cloud","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/why-snowflake/startup-program/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Snowflake for Startups"},"icon":{"id":"icon","height":"64","alt":"Launch","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719963657751_c/nav_column_container/nav_column_copy_copy/nav_item_copy_185565_903555964/icon.coreimg.svg/1758732224323/launch.svg","isLcpImage":false,"width":"65",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_copy":{"id":"nav-item-fc96fae7b6","additionalClasses":"is-light-gray-icon","linkDescription":"Keep queries fast as workloads grow with automatic tuning ","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/why-snowflake/workload-optimization/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Workload Optimization"},"icon":{"id":"icon","height":"64","alt":"Management Optimizer","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719963657751_c/nav_column_container/nav_column_copy_copy/nav_item_copy_copy/icon.coreimg.svg/1791996347807/management-optimizer.svg","isLcpImage":false,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"}},":itemsOrder":["nav_item","nav_item_258535199","nav_item_copy_185565","nav_item_copy","nav_item_copy_185565_903555964","nav_item_copy_copy"]}},":itemsOrder":["nav_column","nav_column_copy_copy"]},":type":"snowflake-site/components/nav/nav-dropdown-menu","cq:panelTitle":"Why Snowflake"},"item_1719961362824":{"id":"nav-dropdown-menu-08b146a919","enableDropdown":true,"nav_column_container":{"layout":"SIMPLE","id":"container-6c2598e5f2",":type":"snowflake-site/components/nav/nav-column/nav-column-container",":items":{"nav_column_copy":{"navColumnTitle":"Connect","numberOfSubColumns":"one-column","minWidth":"124","layout":"SIMPLE","id":"container-8df5669591",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item":{"id":"nav-item-a1aec446fa","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/blog/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Blog"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_180298689":{"id":"nav-item-230fac76a7","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/events/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Events"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_1639361946":{"id":"nav-item-d9c08df88a","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/support/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Support"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_680912746":{"id":"nav-item-b5be23a61b","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/contact/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Contact us"},":type":"snowflake-site/components/nav/nav-item"}},":itemsOrder":["nav_item","nav_item_180298689","nav_item_1639361946","nav_item_680912746"]},"nav_column_44600420__826130542":{"navColumnTitle":"Learn","numberOfSubColumns":"two-columns","layout":"SIMPLE","id":"container-bba58f0155",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item_copy":{"id":"nav-item-5cb98a9688","linkDescription":"Ebooks, videos, white papers and more","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/resources/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Resource Library"},"icon":{"id":"icon","height":"64","alt":"Notebooks icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719961362824/nav_column_container/nav_column_44600420__826130542/nav_item_copy/icon.coreimg.svg/1736877128196/nav-icon--notebooks.svg","isLcpImage":false,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item":{"id":"nav-item-b63dd19f34","linkDescription":"Overview of Snowflake's educational offerings","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/resources/learn/training/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Training"},"icon":{"id":"icon","height":"64","alt":"Training icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719961362824/nav_column_container/nav_column_44600420__826130542/nav_item/icon.coreimg.svg/1722385094416/nav-icon--training.svg","isLcpImage":false,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_144634_1984107859":{"id":"nav-item-b63df23a22","linkDescription":"Expert-led discussions and demos across industries and use cases","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/webinars/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Webinars"},"icon":{"id":"icon","height":"64","alt":"Webinars icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719961362824/nav_column_container/nav_column_44600420__826130542/nav_item_copy_144634_1984107859/icon.coreimg.svg/1759424691990/nav-icon--webinars.svg","isLcpImage":false,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_1438098918":{"id":"nav-item-9cf5f04ad9","linkDescription":"Snowflake's technical industry professional certifications","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/en/resources/learn/certifications/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Certifications"},"icon":{"id":"icon","height":"64","alt":"Certification icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719961362824/nav_column_container/nav_column_44600420__826130542/nav_item_copy_1438098918/icon.coreimg.svg/1722382780833/nav-icon--cert.svg","isLcpImage":false,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_143809":{"id":"nav-item-433da7e640","linkDescription":"Weekly product demos showcasing key features and live Q&A ","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/webinars/demo/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Live Demos"},"icon":{"id":"icon","height":"64","alt":"Live Demo icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719961362824/nav_column_container/nav_column_44600420__826130542/nav_item_copy_143809/icon.coreimg.svg/1759424359543/nav-icon--live-demo.svg","isLcpImage":false,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_333890638":{"id":"nav-item-baaa8e43cf","linkDescription":"Training courses for all levels, on-demand or instructor-led","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"attributes":{"target":"_blank"},"url":"https://learn.snowflake.com/en/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Snowflake University"},"icon":{"id":"icon","height":"64","alt":"Education icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719961362824/nav_column_container/nav_column_44600420__826130542/nav_item_copy_333890638/icon.coreimg.svg/1722382769808/nav-icon--education.svg","isLcpImage":false,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_189945":{"id":"nav-item-6d5b4e4245","linkDescription":"Instructor-led virtual workshops for exploring key Snowflake features","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/webinars/virtual-hands-on-lab/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Hands-On Labs"},"icon":{"id":"icon","height":"64","alt":"Hands-on Labs icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719961362824/nav_column_container/nav_column_44600420__826130542/nav_item_copy_189945/icon.coreimg.svg/1759388182903/nav-icon--labs.svg","isLcpImage":false,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_333890":{"id":"nav-item-1029e42445","linkDescription":"Academic papers written by Snowflake researchers","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/resources/publications/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Snowflake Research Publications"},"icon":{"id":"icon","height":"64","alt":"Copy","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719961362824/nav_column_container/nav_column_44600420__826130542/nav_item_copy_333890/icon.coreimg.svg/1756326371387/copy.svg","isLcpImage":false,"width":"65",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_333890_930852828":{"id":"nav-item-b2602937cf","linkDescription":"Informative articles about AI and data topics","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/fundamentals/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Fundamentals"},"icon":{"id":"icon","height":"64","alt":"Document with list","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719961362824/nav_column_container/nav_column_44600420__826130542/nav_item_copy_333890_930852828/icon.coreimg.svg/1756853637155/data-sheet.svg","isLcpImage":false,"width":"65",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"}},":itemsOrder":["nav_item_copy","nav_item","nav_item_copy_144634_1984107859","nav_item_copy_1438098918","nav_item_copy_143809","nav_item_copy_333890638","nav_item_copy_189945","nav_item_copy_333890","nav_item_copy_333890_930852828"]}},":itemsOrder":["nav_column_copy","nav_column_44600420__826130542"]},"nav_promo_section":{"id":"nav-promo-section-5f90ce0a19","experience_fragment_1":{"id":"experiencefragment-e02258a448","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/nav-promo-card/master1/jcr:content","configured":true,"classNames":"aem-xf",":type":"snowflake-site/components/experiencefragment",":items":{"root":{"layout":"RESPONSIVE_GRID","columnCount":12,"columnClassNames":{"nav_promo_card":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-4cce61a62a",":type":"snowflake-site/components/container",":items":{"nav_promo_card":{"id":"nav-promo-card-947abe7d07","openInNewWindow":true,"layout":"horizontal","headline":"The Modern Marketing Data Stack 5th Edition","description":"AI agents are changing the marketing stack. See how to govern the shift. ","linkTitle":"Learn more","linkUrl":"/en/the-modern-marketing-data-stack-report/","image":{"id":"image","height":"540","alt":"MMDS report 5th edition","lazyEnabled":true,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--b3030d24-fd50-45e6-bfe6-9520d3eb46d8/web-inside-the-mmds-5th-960x540.png?preferwebp=true&quality=85","isLcpImage":false,"width":"960",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-promo-card"}},":itemsOrder":["nav_promo_card"]},"cq:metadata":{":type":"nt:unstructured"}},":itemsOrder":["root","cq:metadata"]},"experience_fragment_2":{"id":"experiencefragment-c57c9ae182","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/nav-promo-card/navigation-promo-card-2/jcr:content","configured":true,"classNames":"aem-xf",":type":"snowflake-site/components/experiencefragment",":items":{"root":{"layout":"RESPONSIVE_GRID","columnCount":12,"columnClassNames":{"nav_promo_card":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-708d1e3b4e",":type":"snowflake-site/components/container",":items":{"nav_promo_card":{"id":"nav-promo-card-69951b8ca7","openInNewWindow":true,"layout":"horizontal","headline":"The ROI of Gen AI and Agents 2026","description":"Discover how 92% of early adopters are achieving positive ROI with gen AI.","linkTitle":"Learn More","linkUrl":"/en/lp/radical-roi-generative-ai/","image":{"id":"image","height":"540","alt":"roi of gen ai and agents","lazyEnabled":true,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--0c15edae-1a97-4739-8b16-c7f3941a6d9e/web-roi-of-gen-ai-and-agents-2026-r02-960x540.png?preferwebp=true&quality=85","isLcpImage":false,"width":"960",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-promo-card"}},":itemsOrder":["nav_promo_card"]},"cq:metadata":{":type":"nt:unstructured"}},":itemsOrder":["root","cq:metadata"]},"experience_fragment_3":{"id":"experiencefragment-7117edaa88","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/nav-promo-card/navigation-promo-card-3/jcr:content","configured":true,"classNames":"aem-xf",":type":"snowflake-site/components/experiencefragment",":items":{"root":{"layout":"RESPONSIVE_GRID","columnCount":12,"columnClassNames":{"nav_promo_card":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-688fc57cb6",":type":"snowflake-site/components/container",":items":{"nav_promo_card":{"id":"nav-promo-card-f866723b6d","openInNewWindow":true,"layout":"horizontal","headline":"EXPEDITION 2026 | NOVEMBER 3-6","description":"Embark on your agentic transformation with deep technical workshops and curated executive sessions.","linkTitle":"Register now","linkUrl":"/en/expedition/","image":{"id":"image","height":"540","alt":"expedition","lazyEnabled":true,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--b02be612-1a04-464a-bc67-97ff0446e009/expedition-card-thumb.jpg?preferwebp=true&quality=85","isLcpImage":false,"width":"960",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-promo-card"}},":itemsOrder":["nav_promo_card"]},"cq:metadata":{":type":"nt:unstructured"}},":itemsOrder":["root","cq:metadata"]},":type":"snowflake-site/components/nav/nav-promo-section"},":type":"snowflake-site/components/nav/nav-dropdown-menu","cq:panelTitle":"Resources"},"item_1719963657751":{"id":"nav-dropdown-menu-02fac54d14","enableDropdown":true,"nav_column_container":{"layout":"SIMPLE","id":"container-c4c777e709",":type":"snowflake-site/components/nav/nav-column/nav-column-container",":items":{"nav_column_copy_copy":{"navColumnTitle":"Build","numberOfSubColumns":"one-column","layout":"SIMPLE","id":"container-f5ce3896d2",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item":{"id":"nav-item-c4d7caf6bc","propertiesId":"testID","linkDescription":"Overview of the dev resources you need to build and scale","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/developers/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Snowflake for Developers"},"icon":{"id":"icon","height":"64","alt":"Developers icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719963657751/nav_column_container/nav_column_copy_copy/nav_item/icon.coreimg.svg/1731362494574/nav-icon--devs.svg","isLcpImage":false,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_1855651246":{"id":"nav-item-94c2db57b4","linkDescription":"Reference architectures, use cases and best practices","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/developers/guides/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Developer Guides"},"icon":{"id":"icon","height":"64","alt":"Solution Center icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719963657751/nav_column_container/nav_column_copy_copy/nav_item_copy_1855651246/icon.coreimg.svg/1761677891705/nav-icon--solution-center.svg","isLcpImage":false,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy":{"id":"nav-item-be1e811131","additionalClasses":"is-light-gray-icon","linkDescription":"The latest software versions, drivers, libraries and relevant docs","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/developers/downloads/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Downloads"},"icon":{"id":"icon","height":"28","alt":"Download icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719963657751/nav_column_container/nav_column_copy_copy/nav_item_copy/icon.coreimg.svg/1731362660050/nav-icon-download.svg","isLcpImage":false,"width":"28",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"}},":itemsOrder":["nav_item","nav_item_copy_1855651246","nav_item_copy"]},"nav_column_copy_copy_1367930678":{"navColumnTitle":"Learn","numberOfSubColumns":"one-column","layout":"SIMPLE","id":"container-9b84c489e0",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item":{"id":"nav-item-d00cf2ce02","propertiesId":"testID","linkDescription":"Reference docs, guides, tutorials and announcements","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"attributes":{"target":"_blank"},"url":"https://docs.snowflake.com/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Documentation"},"icon":{"id":"icon","height":"64","alt":"Docs icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719963657751/nav_column_container/nav_column_copy_copy_1367930678/nav_item/icon.coreimg.svg/1731361950527/nav-icon--docs.svg","isLcpImage":false,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy":{"id":"nav-item-8ae293761e","additionalClasses":"is-light-gray-icon","linkDescription":"Key projects Snowflake engineers maintain and support","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/developers/open-source/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Open Source"},"icon":{"id":"icon","height":"32","alt":"Open Source icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719963657751/nav_column_container/nav_column_copy_copy_1367930678/nav_item_copy/icon.coreimg.svg/1731365437016/nav-icon-open-source.svg","isLcpImage":false,"width":"32",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_copy":{"id":"nav-item-f81375516d","additionalClasses":"is-light-gray-icon","linkDescription":"Online and in-person classes and workshops to upskill on Snowflake","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/developers/northstar/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Builder Education"},"icon":{"id":"icon","height":"32","alt":"Northstar logo","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719963657751/nav_column_container/nav_column_copy_copy_1367930678/nav_item_copy_copy/icon.coreimg.svg/1731362475640/nav-icon--northstar.svg","isLcpImage":false,"width":"32",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"}},":itemsOrder":["nav_item","nav_item_copy","nav_item_copy_copy"]},"nav_column_copy_copy_1101894776":{"navColumnTitle":"Connect","numberOfSubColumns":"one-column","layout":"SIMPLE","id":"container-f5d43ae499",":type":"snowflake-site/components/nav/nav-column",":items":{"nav_item":{"id":"nav-item-3c94441c98","propertiesId":"testID","linkDescription":"Snowflake’s technical leaders on what, why and how they build features","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://www.snowflake.com/engineering-blog/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Engineering Blog"},"icon":{"id":"icon","height":"64","alt":"software engineers icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719963657751/nav_column_container/nav_column_copy_copy_1101894776/nav_item/icon.coreimg.svg/1789759077904/software-engineers.svg","isLcpImage":false,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_892639794":{"id":"nav-item-4e7d460842","linkDescription":"Ideas, solutions and tools for developers of data-intensive applications","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"url":"/en/developers/blog/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_INTERNAL","text":"Developer Blog"},"icon":{"id":"icon","height":"32","alt":"developer icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719963657751/nav_column_container/nav_column_copy_copy_1101894776/nav_item_892639794/icon.coreimg.svg/1789759047695/nav-icon--developer-center.svg","isLcpImage":false,"width":"32",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"},"nav_item_copy_1855651246":{"id":"nav-item-93e10f77be","linkDescription":"Tips, tricks and discussion with fellow Snowflake developers","button":{"id":"button","showOutboundIcon":false,"buttonLink":{"valid":true,"attributes":{"target":"_blank"},"url":"https://community.snowflake.com/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Community"},"icon":{"id":"icon","height":"64","alt":"Partner Network icon","lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/_jcr_content/root/mega_header/nav_mega/item_1719963657751/nav_column_container/nav_column_copy_copy_1101894776/nav_item_copy_1855651246/icon.coreimg.svg/1731362644348/nav-icon--partner-network.svg","isLcpImage":false,"width":"64",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-item"}},":itemsOrder":["nav_item","nav_item_892639794","nav_item_copy_1855651246"]}},":itemsOrder":["nav_column_copy_copy","nav_column_copy_copy_1367930678","nav_column_copy_copy_1101894776"]},"nav_promo_section":{"id":"nav-promo-section-09bae997dc","experience_fragment_1":{"id":"experiencefragment-4c11b606fd","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/nav-promo-card/nav-promo-5/jcr:content","configured":true,"classNames":"aem-xf",":type":"snowflake-site/components/experiencefragment",":items":{"root":{"layout":"RESPONSIVE_GRID","columnCount":12,"columnClassNames":{"nav_promo_card":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-157d62c409",":type":"snowflake-site/components/container",":items":{"nav_promo_card":{"id":"nav-promo-card-0c3b5cd3c7","openInNewWindow":false,"layout":"horizontal","headline":"Get started with your first Snowflake Notebook","description":"Write and execute code, visualize results, and tell the story of your analysis all in one place.","linkTitle":"Learn More","linkUrl":"/en/developers/solutions-center/getting-started-with-your-first-snowflake-notebook-project/","image":{"id":"image","height":"210","alt":"alt","lazyEnabled":true,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--dc7e334a-c38b-4283-b1de-fcf829952eef/nav-promo-first-notebook.jpg?preferwebp=true&quality=85","isLcpImage":false,"width":"415",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-promo-card"}},":itemsOrder":["nav_promo_card"]},"cq:LiveSyncConfig":{"cq:isDeep":true,"cq:rolloutConfigs":[],"cq:master":"/content/experience-fragments/snowflake-site/language-masters/en/site/nav-promo-card/nav-promo-card-4",":type":"cq:LiveCopy"}},":itemsOrder":["root","cq:LiveSyncConfig"]},"experience_fragment_2":{"id":"experiencefragment-4b8f676f99","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/nav-promo-card/nav-promo-card-4/jcr:content","configured":true,"classNames":"aem-xf",":type":"snowflake-site/components/experiencefragment",":items":{"root":{"layout":"RESPONSIVE_GRID","columnCount":12,"columnClassNames":{"nav_promo_card":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-cb7eba89bd",":type":"snowflake-site/components/container",":items":{"nav_promo_card":{"id":"nav-promo-card-50063b5f9c","openInNewWindow":true,"layout":"horizontal","headline":"Northstar Builder Workshops","description":"Join other developers as you roll up your sleeves and explore the possibilities of Snowflake.","linkTitle":"Learn More","linkUrl":"/en/nav-promos/northstar-builders-workshop/","image":{"id":"image","height":"700","alt":"Snowflake Northstar logo","lazyEnabled":true,"src":"https://www.snowflake.com/adobe/dynamicmedia/deliver/dm-aid--14341ced-bc5e-4a29-9762-b7857f6cadfc/nav-promo-northstar.jpg?preferwebp=true&quality=85","isLcpImage":false,"width":"1440",":type":"snowflake-site/components/image"},":type":"snowflake-site/components/nav/nav-promo-card"}},":itemsOrder":["nav_promo_card"]},"cq:LiveSyncConfig":{"cq:isDeep":true,"cq:rolloutConfigs":[],"cq:master":"/content/experience-fragments/snowflake-site/language-masters/en/site/nav-promo-card/master",":type":"cq:LiveCopy"}},":itemsOrder":["root","cq:LiveSyncConfig"]},":type":"snowflake-site/components/nav/nav-promo-section"},":type":"snowflake-site/components/nav/nav-dropdown-menu","cq:panelTitle":"Developers"},"item_1718247180324":{"id":"nav-dropdown-menu-a6ae85291f","enableDropdown":false,"link_url":"/en/pricing-options/",":type":"snowflake-site/components/nav/nav-dropdown-menu","cq:panelTitle":"Pricing"}},":itemsOrder":["item_1719963657751_c_663444255","nav_dropdown_menu_2","item_1719963657751_c","item_1719961362824","item_1719963657751","item_1718247180324"]},"languagenavigation":{"id":"language-navigation-c74d521821","languageNavItems":[{"title":"English","path":"/en/developers/guides/build-fwa-detection-platform-cortex-ai/","locale":"en","active":true},{"title":"日本語","path":"/ja/","locale":"ja","active":false},{"title":"한국어","path":"/ko/","locale":"ko","active":false},{"title":"中文（简体）","path":"/zh_cn/","locale":"zh-cn","active":false},{"title":"Português","path":"/pt_br/","locale":"pt-br","active":false},{"title":"Deutsch","path":"/de/","locale":"de","active":false},{"title":"Français","path":"/fr/","locale":"fr","active":false},{"title":"Español","path":"/es/","locale":"es","active":false},{"title":"Italiano","path":"/it/","locale":"it","active":false}],":type":"snowflake-site/components/nav/language-navigation"},"button_1177328691":{"id":"button-45ce972c0a","heapButtonClasses":["mega-nav__sign-in"],"showOutboundIcon":false,"buttonLink":{"valid":true,"attributes":{"target":"_blank"},"url":"https://app.snowflake.com/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","appliedCssClassNames":"snowflake-button-link snowflake-button-black snowflake-button-compact","linkType":"SNOWFLAKE_EXTERNAL","text":"Sign in"},"button":{"id":"button-18e7a0a242","heapButtonClasses":["contact_nav","heap-nav-contact"],"showOutboundIcon":true,"buttonLink":{"valid":true,"url":"/en/contact-sales/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","appliedCssClassNames":"snowflake-button-secondary snowflake-button-blue snowflake-button-compact","linkType":"SNOWFLAKE_INTERNAL","text":"CONTACT SALES"},"button_288358396":{"id":"button-4b787543f6","heapButtonClasses":["start_for_free_nav","heap-nav-start-for-free"],"showOutboundIcon":false,"buttonLink":{"valid":true,"url":"https://signup.snowflake.com/"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","appliedCssClassNames":"snowflake-button-primary snowflake-button-blue snowflake-button-compact","linkType":"SNOWFLAKE_EXTERNAL","text":"start for free"}},":itemsOrder":["nav_mega","languagenavigation","button_1177328691","button","button_288358396"],"appliedCssClassNames":"snowflake-header-container white"}},":itemsOrder":["markup_editor","mega_header"]},"image":{":type":"nt:unstructured"},"cq:targetMetadata":{"cq:targetStatus":"OUT_OF_SYNC","cq:exportTime":1791996401653,"cq:targetOfferId":860250,":type":"nt:unstructured"}},":itemsOrder":["root","image","cq:targetMetadata"]},"markup_editor_1950346551":{"id":"markup-editor-7761b12fd1","title":" ","cssUrl":"/conf/snowflake-site/settings/wcm/templates/quickstart-page-template/structure/_jcr_content/root/markup_editor_1950346551.e08bb1bc93839db7.css",":type":"snowflake-site/components/markup-editor","isGSAPEnabled":false},"responsivegrid":{"columnCount":12,"columnClassNames":{"quickstart_hero":"aem-GridColumn aem-GridColumn--default--12","flexible_column_cont":"aem-GridColumn aem-GridColumn--default--12","markup_editor":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12",":items":{"quickstart_hero":{"id":"quickstart-hero-6dd8761d4f","fragmentPath":"/content/dam/snowflake-site/en/content-fragments/quickstarts/build-fwa-detection-platform-cortex-ai",":type":"snowflake-site/components/quickstart/quickstart-hero","isDeveloperGuidesPage":false,"quickstartHeroFirstCertifiedTag":{"tagText":"Quickstart","tagColor":"#29B5E8","tagPath":"/content/cq:tags/snowflake-site/taxonomy/solution-center/certification/quickstart","tagIcon":""},"quickstartHeroTitle":{"lines":["Build a Fraud, Waste, and Abuse Detection Platform with Snowflake Cortex AI"],"type":"heading2",":type":"snowflake-site/components/title-v2"},"quickstartHeroAuthor":"Ravi Kumar","quickstartHeroFirstSnowflakeFeatureTag":{"tagText":"Cortex Analyst","tagColor":"#29B5E8","tagPath":"/content/cq:tags/snowflake-site/taxonomy/snowflake-feature/cortex-analyst","tagIcon":""},"quickstartHeroForkRepoLink":{"id":"button-89c2e55fcf","showOutboundIcon":false,"buttonLink":{"valid":true,"attributes":{"target":"_blank"},"url":"https://github.com/Snowflake-Labs/sfquickstarts/tree/master/site/sfguides/src/build-fwa-detection-platform-cortex-ai"},"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Fork Repo"},"quickstartHeroBreadcrumbs":[{"title":"Build a Fraud, Waste, and Abuse Detection Platform with Snowflake Cortex AI","url":"https://www.snowflake.com/content/snowflake-site/global/en/developers/guides/build-fwa-detection-platform-cortex-ai","currentPage":true},{"title":"Guides","url":"https://www.snowflake.com/content/snowflake-site/global/en/developers/guides","currentPage":false},{"title":"Snowflake for Developers","url":"https://www.snowflake.com/content/snowflake-site/global/en/developers","currentPage":false}]},"flexible_column_cont":{"id":"flexible-column-container-2254383211","propertiesId":"quickstart-template-main-flexible-container","type":"2-column-75-25","alignColumns":"top","containerMaxWidth":"extra-large","topPadding":"none","bottomPadding":"none","spaceBetween":"small","reverseOnMobile":false,"carouselOnMobile":false,"backgroundImageOption":"none","flexible_column_content_container_1":{"layout":"SIMPLE","id":"container-d253ec4697",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"contentfragment":{"id":"contentfragment-e3cfbc08dc","paragraphs":["&lt;!-- ------------------------ --&gt;\n","\u003Ch2\u003EOverview\u003C/h2\u003E\n","\u003Cp\u003EDuration: 5\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAuthor:\u003C/strong\u003E Ravi Kumar, Partner Solutions Architect\u003C/p\u003E\n","\u003Cp\u003EPublic sector agencies rely on &quot;pay and chase&quot; &mdash; send the payment, then try to recover fraudulent dollars after the fact. A modern FWA platform needs to do many things at once: ingest and unify claims from disparate systems, profile provider behavior against peers in real time, run ML models for anomaly detection and predictive scoring, classify fraud types with LLM explainability, detect collusion rings through graph analysis, parse clinical documents and transcribe audio for evidence, and give investigators a natural-language interface to query it all &mdash; without moving sensitive PHI/PII outside the platform boundary.\u003C/p\u003E\n","\u003Cp\u003ESnowflake is uniquely suited for this because every one of these capabilities runs natively inside a single platform &mdash; no data egress, no external ML infrastructure, no separate graph database, no third-party LLM APIs. Dynamic Tables replace batch ETL with continuous refresh. Snowflake ML trains and scores anomaly detection and classification models in pure SQL. Cortex AI functions (AI_CLASSIFY, AI_COMPLETE, AI_PARSE_DOCUMENT, AI_TRANSCRIBE, AI_SUMMARIZE) bring LLM intelligence directly to your data. Cortex Search indexes unstructured evidence for retrieval. Cortex Agents orchestrate structured and unstructured queries behind a single natural-language interface. And Streamlit in Snowflake delivers the investigator UI &mdash; all governed by Snowflake's native RBAC, masking policies, and encryption.\u003C/p\u003E\n","\u003Cp\u003EThis guide builds a complete, end-to-end FWA detection platform for healthcare claims. Every SQL block is copy-pastable and validated. Nothing leaves Snowflake.\u003C/p\u003E\n","\u003Cp\u003E\u003Cimg src=\"https://www.snowflake.com/content/dam/snowflake-site/developers/guides/build-fwa-detection-platform-cortex-ai/fwa-architecture-diagram.png?v=b2cabf14\" alt=\"FWA Platform Architecture\"\u003E\u003C/p\u003E\n","\u003Ch3\u003EWhy Now?\u003C/h3\u003E\n\u003Cul\u003E\u003Cli\u003EML infrastructure now processes massive claim volumes in near real time at falling cost.\u003C/li\u003E\u003Cli\u003ELLMs unlock explainability &mdash; AI returns reasoning behind a flag, giving investigators probable cause.\u003C/li\u003E\u003Cli\u003EFraudsters use AI too (fake records, synthetic identities). Agencies must match these tools for defense.\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EWhat You'll Need\u003C/h3\u003E\n\u003Cul\u003E\u003Cli\u003ESnowflake account with ACCOUNTADMIN (or roles with ML, Cortex AI, Cortex Search, Cortex Agent, and Streamlit privileges)\u003C/li\u003E\u003Cli\u003EA warehouse (MEDIUM) and familiarity with SQL and basic Python\u003C/li\u003E\u003Cli\u003ECortex AI LLM functions require supported regions &mdash; check Snowflake docs for availability\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EWhat You'll Learn\u003C/h3\u003E\n\u003Cul\u003E\u003Cli\u003EHow to build continuously refreshing provider behavior profiles with Dynamic Tables\u003C/li\u003E\u003Cli\u003EHow to classify fraud types with LLM explainability using Cortex AI\u003C/li\u003E\u003Cli\u003EHow to train anomaly detection and predictive models with Snowflake ML in pure SQL\u003C/li\u003E\u003Cli\u003EHow to detect fraud rings with SQL-based graph analysis\u003C/li\u003E\u003Cli\u003EHow to parse documents and transcribe audio with Cortex AI functions\u003C/li\u003E\u003Cli\u003EHow to build a Cortex Agent for natural-language investigation\u003C/li\u003E\u003Cli\u003EHow to deploy a Streamlit investigator application\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EWhat You'll Build\u003C/h3\u003E\n\u003Cul\u003E\u003Cli\u003EUnified data foundation with synthetic sample data\u003C/li\u003E\u003Cli\u003EContinuously refreshing provider behavior profiles (Dynamic Tables)\u003C/li\u003E\u003Cli\u003ELLM-driven fraud classification with plain-English explanations (Cortex AI)\u003C/li\u003E\u003Cli\u003EAnomaly detection and predictive fraud scoring (Snowflake ML)\u003C/li\u003E\u003Cli\u003EFraud ring detection via SQL-based graph analysis\u003C/li\u003E\u003Cli\u003EDocument and audio analysis pipelines (Cortex AI)\u003C/li\u003E\u003Cli\u003ECortex Agent for natural-language investigation queries\u003C/li\u003E\u003Cli\u003EStreamlit in Snowflake investigator application\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EArchitecture\u003C/h3\u003E\n","\u003Cp\u003EThe platform follows four phases:\u003C/p\u003E\n\u003Ctable\u003E\u003Cthead\u003E\u003Ctr\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EPhase\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EWhat Happens\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EGuide Steps\u003C/th\u003E\u003C/tr\u003E\u003C/thead\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003E1. Ingest &amp; Contextualize\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EBring in claims, enrich into risk-scored profiles\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ESteps 2-3\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003E2. Detect &amp; Score\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ELLM classification, anomaly detection, fraud rings\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ESteps 4-6\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003E3. Analyze &amp; Evidence\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EDocument/audio parsing, Cortex Agent\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ESteps 7-8\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003E4. Decide &amp; Act\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EStreamlit UI, security, case management\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ESteps 9-11\u003C/td\u003E\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E\n&lt;!-- ------------------------ --&gt;\n","\u003Ch2\u003ESetup and Data Foundation\u003C/h2\u003E\n","\u003Cp\u003EDuration: 10\u003C/p\u003E\n","\u003Ch3\u003ECreate Infrastructure\u003C/h3\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-sql\"\u003E-- Create the database and schema that hold all FWA objects\nCREATE DATABASE IF NOT EXISTS FWA_QS;\nCREATE SCHEMA IF NOT EXISTS FWA_QS.DETECTION;\nUSE DATABASE FWA_QS;\nUSE SCHEMA DETECTION;\n\n-- Warehouse for all compute (Dynamic Tables, ML training, Cortex AI calls)\nCREATE WAREHOUSE IF NOT EXISTS FWA_WH\n  WAREHOUSE_SIZE = 'MEDIUM'\n  AUTO_SUSPEND = 60     -- suspend after 60s idle to save credits\n  AUTO_RESUME = TRUE;   -- auto-resume when a query arrives\n\nUSE WAREHOUSE FWA_WH;\n\n-- Internal stages for unstructured files (PDFs, invoices, audio recordings)\n-- Snowflake-managed encryption keeps data secure at rest\nCREATE STAGE IF NOT EXISTS FWA_QS.DETECTION.DOCUMENTS\n  ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE');\nCREATE STAGE IF NOT EXISTS FWA_QS.DETECTION.AUDIO_FILES\n  ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE');\n-- Stage for the Cortex Analyst semantic model YAML (used in the Investigation Agent step)\nCREATE STAGE IF NOT EXISTS FWA_QS.DETECTION.SEMANTIC_MODELS\n  ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE');\n\u003C/code\u003E\u003C/pre\u003E\n","\u003Ch3\u003ELoad Sample Files from GitHub\u003C/h3\u003E\n","\u003Cp\u003EThe synthetic claim documents (PDFs), audio recordings (MP3s), and semantic model YAML live in the \u003Ca href=\"https://github.com/sfc-gh-rkumar/sfguide-fwa-detection-platform-cortex-ai\"\u003Ecompanion repository\u003C/a\u003E. Snowflake's Git integration clones the public repo and copies the files straight into your stages, so there is nothing to download or upload by hand.\u003C/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-sql\"\u003E-- API integration that lets Snowflake read the public companion repo (no credentials needed)\nCREATE OR REPLACE API INTEGRATION FWA_GIT_API_INTEGRATION\n  API_PROVIDER = git_https_api\n  API_ALLOWED_PREFIXES = ('https://github.com/sfc-gh-rkumar')\n  ENABLED = TRUE;\n\n-- Clone the companion repo into Snowflake as a Git repository object\nCREATE OR REPLACE GIT REPOSITORY FWA_QS.DETECTION.FWA_SAMPLE_FILES\n  API_INTEGRATION = FWA_GIT_API_INTEGRATION\n  ORIGIN = 'https://github.com/sfc-gh-rkumar/sfguide-fwa-detection-platform-cortex-ai.git';\n\n-- Copy the sample files from the repo into the stages\nCOPY FILES INTO @FWA_QS.DETECTION.DOCUMENTS\n  FROM @FWA_QS.DETECTION.FWA_SAMPLE_FILES/branches/main/data/documents/;\nCOPY FILES INTO @FWA_QS.DETECTION.AUDIO_FILES\n  FROM @FWA_QS.DETECTION.FWA_SAMPLE_FILES/branches/main/data/audio/;\nCOPY FILES INTO @FWA_QS.DETECTION.SEMANTIC_MODELS\n  FROM @FWA_QS.DETECTION.FWA_SAMPLE_FILES/branches/main/semantic_model/;\n\u003C/code\u003E\u003C/pre\u003E\n\u003Cblockquote\u003E\n","\u003Cp\u003E\u003Cstrong\u003EVerify:\u003C/strong\u003E \u003Ccode\u003ELIST @FWA_QS.DETECTION.DOCUMENTS;\u003C/code\u003E shows 3 PDFs and \u003Ccode\u003ELIST @FWA_QS.DETECTION.AUDIO_FILES;\u003C/code\u003E shows 2 MP3s.\u003C/p\u003E\n","\u003Cp\u003EPrefer a manual upload? Download the files from the \u003Ca href=\"https://github.com/sfc-gh-rkumar/sfguide-fwa-detection-platform-cortex-ai\"\u003Ecompanion repository\u003C/a\u003E and upload them to the same stages in Snowsight (\u003Cstrong\u003ECatalog &raquo; Database Explorer &raquo; FWA_QS &raquo; DETECTION &raquo; Stages\u003C/strong\u003E).\u003C/p\u003E\n\u003C/blockquote\u003E\n","\u003Ch3\u003ECreate Base Tables\u003C/h3\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-sql\"\u003E-- Providers: ADDRESS, PHONE, BANK_ACCOUNT columns enable fraud ring detection (Step 6)\nCREATE OR REPLACE TABLE FWA_QS.DETECTION.PROVIDERS (\n    PROVIDER_ID       VARCHAR(10) PRIMARY KEY,\n    PROVIDER_NAME     VARCHAR(100),\n    SPECIALTY         VARCHAR(50),\n    ADDRESS           VARCHAR(200),\n    PHONE             VARCHAR(20),\n    BANK_ACCOUNT      VARCHAR(30),\n    LICENSE_STATUS    VARCHAR(20) DEFAULT 'ACTIVE',\n    STATE             VARCHAR(2)\n);\n\n-- Medicaid/Medicare beneficiaries (patients)\nCREATE OR REPLACE TABLE FWA_QS.DETECTION.BENEFICIARIES (\n    BENEFICIARY_ID    VARCHAR(10) PRIMARY KEY,\n    FIRST_NAME        VARCHAR(50),\n    LAST_NAME         VARCHAR(50),\n    DOB               DATE,\n    STATE             VARCHAR(2),\n    ENROLLMENT_DATE   DATE\n);\n\n-- Claims: the central fact table. IS_FRAUD is NULL until an investigator confirms/rejects.\nCREATE OR REPLACE TABLE FWA_QS.DETECTION.CLAIMS (\n    CLAIM_ID          VARCHAR(10) PRIMARY KEY,\n    PROVIDER_ID       VARCHAR(10) REFERENCES FWA_QS.DETECTION.PROVIDERS(PROVIDER_ID),\n    BENEFICIARY_ID    VARCHAR(10) REFERENCES FWA_QS.DETECTION.BENEFICIARIES(BENEFICIARY_ID),\n    PROCEDURE_CODE    VARCHAR(10),\n    DIAGNOSIS_CODE    VARCHAR(10),\n    CLAIM_AMOUNT      NUMBER(12,2),\n    CLAIM_DATE        DATE,\n    PRIOR_AUTH_FLAG   BOOLEAN,\n    PLACE_OF_SERVICE  VARCHAR(50),\n    IS_FRAUD          BOOLEAN DEFAULT NULL\n);\n\n-- OIG/state exclusion and watch list entries &mdash; drives 45-point risk score component\nCREATE OR REPLACE TABLE FWA_QS.DETECTION.WATCH_LIST (\n    PROVIDER_ID       VARCHAR(10),\n    REASON            VARCHAR(200),\n    ADDED_DATE        DATE,\n    SOURCE            VARCHAR(50)\n);\n\n-- Tracks clinical documents (PDFs, invoices) uploaded to the DOCUMENTS stage\nCREATE OR REPLACE TABLE FWA_QS.DETECTION.DOCUMENT_METADATA (\n    DOC_ID            VARCHAR(10) PRIMARY KEY,\n    CLAIM_ID          VARCHAR(10),\n    FILE_NAME         VARCHAR(200),\n    DOC_TYPE          VARCHAR(50),\n    UPLOAD_DATE       DATE\n);\n\n-- Tracks audio files (hotline calls, whistleblower recordings) uploaded to AUDIO_FILES stage\nCREATE OR REPLACE TABLE FWA_QS.DETECTION.AUDIO_METADATA (\n    AUDIO_ID          VARCHAR(10) PRIMARY KEY,\n    FILE_NAME         VARCHAR(200),\n    SOURCE_TYPE       VARCHAR(50),\n    RELATED_PROVIDER  VARCHAR(10),\n    RECEIVED_DATE     DATE\n);\n\u003C/code\u003E\u003C/pre\u003E\n&lt;!-- ------------------------ --&gt;\n","\u003Ch2\u003ELoad Sample Data\u003C/h2\u003E\n","\u003Cp\u003EDuration: 5\u003C/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-sql\"\u003E-- Providers: P-1001 and P-1002 share an address (fraud ring signal)\n-- P-1002 and P-1003 share a bank account (fraud ring signal)\n-- P-1008, P-1009, P-1010 are legitimate low-billing cardiology providers\n-- that establish a realistic peer baseline for the billing ratio calculation\nINSERT INTO FWA_QS.DETECTION.PROVIDERS VALUES\n('P-1001','Dr. Alpha Medical','Cardiology','100 Main St, Austin TX','512-555-0101','ACCT-9999','ACTIVE','TX'),\n('P-1002','Beta Health Corp','Cardiology','100 Main St, Austin TX','512-555-0102','ACCT-8888','ACTIVE','TX'),\n('P-1003','Gamma Clinic','Orthopedics','200 Oak Ave, Dallas TX','214-555-0201','ACCT-8888','ACTIVE','TX'),\n('P-1004','Delta Wellness','Cardiology','300 Elm St, Houston TX','713-555-0301','ACCT-7777','ACTIVE','TX'),\n('P-1005','Epsilon Care','Orthopedics','400 Pine St, Austin TX','512-555-0401','ACCT-6666','ACTIVE','TX'),\n('P-1006','Zeta Medical Group','General Practice','500 Cedar Ln, Dallas TX','214-555-0501','ACCT-5555','ACTIVE','TX'),\n('P-1008','Theta Cardiology','Cardiology','600 Birch St, Houston TX','713-555-0601','ACCT-3333','ACTIVE','TX'),\n('P-1009','Iota Heart Center','Cardiology','700 Maple Dr, Dallas TX','214-555-0701','ACCT-2222','ACTIVE','TX'),\n('P-1010','Kappa Cardiac Care','Cardiology','800 Walnut Blvd, Austin TX','512-555-0801','ACCT-1111','ACTIVE','TX');\n\n-- Beneficiaries\nINSERT INTO FWA_QS.DETECTION.BENEFICIARIES VALUES\n('B-2001','John','Smith','1955-03-15','TX','2020-01-01'),\n('B-2002','Jane','Doe','1962-07-22','TX','2019-06-15'),\n('B-2003','Robert','Johnson','1948-11-30','TX','2021-03-01'),\n('B-2004','Maria','Garcia','1970-05-10','TX','2018-09-01'),\n('B-2005','James','Wilson','1958-01-20','TX','2022-01-15');\n\n-- Claims: P-1001 and P-1002 have suspiciously high amounts ($7K-$9.5K) and missing prior auth\n-- P-1008, P-1009, P-1010 bill normal amounts ($150-$210) &mdash; legitimate cardiology baseline\n-- C-3015 has IS_FRAUD = NULL &mdash; unconfirmed, used to demo the predictive model\nINSERT INTO FWA_QS.DETECTION.CLAIMS VALUES\n('C-3001','P-1001','B-2001','99214','I10',250.00,'2024-01-15',TRUE,'Office',FALSE),\n('C-3002','P-1001','B-2002','99215','I25',8500.00,'2024-01-16',FALSE,'Office',TRUE),\n('C-3003','P-1001','B-2003','99215','I10',9200.00,'2024-01-17',FALSE,'Office',TRUE),\n('C-3004','P-1002','B-2001','99214','M54',7800.00,'2024-01-18',FALSE,'Office',TRUE),\n('C-3005','P-1002','B-2004','99213','I10',350.00,'2024-01-19',TRUE,'Office',FALSE),\n('C-3006','P-1003','B-2003','27447','M17',4500.00,'2024-02-01',TRUE,'Hospital',FALSE),\n('C-3007','P-1003','B-2005','27447','M17',4700.00,'2024-02-05',TRUE,'Hospital',FALSE),\n('C-3008','P-1004','B-2002','99213','I10',180.00,'2024-02-10',TRUE,'Office',FALSE),\n('C-3009','P-1004','B-2004','99214','I25',220.00,'2024-02-12',TRUE,'Office',FALSE),\n('C-3010','P-1005','B-2005','29881','M23',3800.00,'2024-02-15',TRUE,'Ambulatory',FALSE),\n('C-3011','P-1006','B-2001','99213','J06',150.00,'2024-02-20',TRUE,'Office',FALSE),\n('C-3012','P-1006','B-2003','99214','J20',200.00,'2024-02-22',TRUE,'Office',FALSE),\n('C-3013','P-1001','B-2004','99215','I10',9500.00,'2024-03-01',FALSE,'Office',TRUE),\n('C-3014','P-1002','B-2005','99215','I25',8100.00,'2024-03-05',FALSE,'Office',TRUE),\n('C-3015','P-1001','B-2005','99215','I10',8800.00,'2024-03-10',FALSE,'Office',NULL),\n-- Legitimate low-billing cardiology claims (establish peer baseline)\n('C-3016','P-1008','B-2001','99213','I10',175.00,'2024-02-18',TRUE,'Office',FALSE),\n('C-3017','P-1008','B-2003','99213','I10',200.00,'2024-02-19',TRUE,'Office',FALSE),\n('C-3018','P-1008','B-2004','99214','I25',190.00,'2024-02-20',TRUE,'Office',FALSE),\n('C-3019','P-1009','B-2002','99213','I10',160.00,'2024-02-21',TRUE,'Office',FALSE),\n('C-3020','P-1009','B-2005','99214','I25',210.00,'2024-02-22',TRUE,'Office',FALSE),\n('C-3021','P-1009','B-2001','99213','I10',185.00,'2024-02-23',TRUE,'Office',FALSE),\n('C-3022','P-1010','B-2003','99213','I10',165.00,'2024-02-24',TRUE,'Office',FALSE),\n('C-3023','P-1010','B-2004','99214','I25',195.00,'2024-02-25',TRUE,'Office',FALSE),\n('C-3024','P-1010','B-2005','99213','I10',170.00,'2024-02-26',TRUE,'Office',FALSE);\n\n-- Watch list\nINSERT INTO FWA_QS.DETECTION.WATCH_LIST VALUES\n('P-1001','Unusually high billing volume flagged by OIG','2023-06-01','OIG'),\n('P-1002','Complaints from multiple beneficiaries','2023-09-15','State Medicaid');\n\n-- Document metadata: links uploaded files to claims for document-vs-claim comparison\nINSERT INTO FWA_QS.DETECTION.DOCUMENT_METADATA VALUES\n('D-5001','C-3002','claim_C3002_invoice.pdf','Invoice','2024-01-20'),\n('D-5002','C-3003','claim_C3003_clinical_notes.pdf','Clinical Notes','2024-01-21'),\n('D-5003','C-3013','claim_C3013_procedure_report.pdf','Procedure Report','2024-03-05');\n\n-- Audio metadata: links uploaded audio files (hotline calls, whistleblower recordings)\nINSERT INTO FWA_QS.DETECTION.AUDIO_METADATA VALUES\n('A-6001','hotline_call_20240201.mp3','Fraud Hotline','P-1001','2024-02-01'),\n('A-6002','whistleblower_report_20240315.mp3','Whistleblower','P-1002','2024-03-15');\n\u003C/code\u003E\u003C/pre\u003E\n\u003Cblockquote\u003E\n","\u003Cp\u003E\u003Cstrong\u003EVerify:\u003C/strong\u003E \u003Ccode\u003ESELECT COUNT(*) FROM FWA_QS.DETECTION.CLAIMS;\u003C/code\u003E &mdash; expect 24 rows.\u003C/p\u003E\n\u003C/blockquote\u003E\n&lt;!-- ------------------------ --&gt;\n","\u003Ch2\u003EProvider Behavior Profiles\u003C/h2\u003E\n","\u003Cp\u003EDuration: 5\u003C/p\u003E\n","\u003Cp\u003EDynamic Tables refresh automatically as new claims arrive &mdash; no batch jobs, no ETL scheduler. This profile compares each provider against specialty peers and incorporates watch list status into a composite risk score (0-100).\u003C/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-sql\"\u003E-- Dynamic Table: auto-refreshes within 1 hour as new claims arrive\n-- Compares each provider's billing against specialty peers and scores risk 0-100\nCREATE OR REPLACE DYNAMIC TABLE FWA_QS.DETECTION.PROVIDER_PROFILES\n  TARGET_LAG = '1 hour'   -- Snowflake refreshes automatically within this lag\n  WAREHOUSE = FWA_WH      -- compute used for incremental refreshes\nAS\nSELECT\n    p.PROVIDER_ID,\n    p.PROVIDER_NAME,\n    p.SPECIALTY,\n    COUNT(c.CLAIM_ID)                                          AS TOTAL_CLAIMS,\n    ROUND(AVG(c.CLAIM_AMOUNT), 2)                              AS AVG_CLAIM_AMOUNT,\n    ROUND(AVG(c.CLAIM_AMOUNT) / NULLIF(\n        AVG(AVG(c.CLAIM_AMOUNT)) OVER (PARTITION BY p.SPECIALTY), 0\n    ), 2)                                                      AS PEER_BILLING_RATIO,\n    ROUND(SUM(CASE WHEN c.PRIOR_AUTH_FLAG = FALSE THEN 1 ELSE 0 END)::FLOAT\n        / NULLIF(COUNT(c.CLAIM_ID), 0), 2)                    AS PRIOR_AUTH_GAP_RATE,\n    MAX(CASE WHEN w.PROVIDER_ID IS NOT NULL THEN 1 ELSE 0 END) AS ON_WATCH_LIST,\n    -- Composite risk score: peer billing (30) + auth gaps (25) + watch list (45)\n    (\n      CASE WHEN AVG(c.CLAIM_AMOUNT) / NULLIF(\n          AVG(AVG(c.CLAIM_AMOUNT)) OVER (PARTITION BY p.SPECIALTY), 0\n      ) &gt; 3 THEN 30 ELSE 0 END\n      + CASE WHEN SUM(CASE WHEN c.PRIOR_AUTH_FLAG = FALSE THEN 1 ELSE 0 END)::FLOAT\n            / NULLIF(COUNT(c.CLAIM_ID), 0) &gt; 0.3 THEN 25 ELSE 0 END\n      + CASE WHEN MAX(CASE WHEN w.PROVIDER_ID IS NOT NULL THEN 1 ELSE 0 END) = 1\n            THEN 45 ELSE 0 END\n    )                                                          AS RISK_SCORE\nFROM FWA_QS.DETECTION.PROVIDERS p\nJOIN FWA_QS.DETECTION.CLAIMS c ON p.PROVIDER_ID = c.PROVIDER_ID\nLEFT JOIN FWA_QS.DETECTION.WATCH_LIST w ON p.PROVIDER_ID = w.PROVIDER_ID\nGROUP BY p.PROVIDER_ID, p.PROVIDER_NAME, p.SPECIALTY;\n\u003C/code\u003E\u003C/pre\u003E\n\u003Cblockquote\u003E\n","\u003Cp\u003E\u003Cstrong\u003EVerify:\u003C/strong\u003E P-1001 scores 100 (30 peer billing + 25 auth gaps + 45 watch list), P-1002 scores 70 (25 + 45).\u003C/p\u003E\n\u003C/blockquote\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-sql\"\u003ESELECT PROVIDER_ID, PROVIDER_NAME, PEER_BILLING_RATIO, RISK_SCORE\nFROM FWA_QS.DETECTION.PROVIDER_PROFILES\nORDER BY RISK_SCORE DESC;\n\u003C/code\u003E\u003C/pre\u003E\n&lt;!-- ------------------------ --&gt;\n","\u003Ch2\u003EFraud Classification\u003C/h2\u003E\n","\u003Cp\u003EDuration: 10\u003C/p\u003E\n","\u003Cp\u003EMaterialize LLM-driven classification so downstream services can index the results. Each claim is classified into a fraud type with a plain-English explanation.\u003C/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-sql\"\u003E-- Materialize LLM results into a table so Cortex Search can index them\n-- AI_CLASSIFY: assigns each claim to a fraud category\n-- AI_COMPLETE: generates a plain-English explanation for investigators\nCREATE OR REPLACE TABLE FWA_QS.DETECTION.FRAUD_CLASSIFICATIONS AS\nSELECT\n    c.CLAIM_ID,\n    c.PROVIDER_ID,\n    c.CLAIM_AMOUNT,\n    c.PROCEDURE_CODE,\n    p.SPECIALTY,\n    pp.RISK_SCORE,\n    pp.PEER_BILLING_RATIO,\n    AI_CLASSIFY(\n        'Healthcare claim &mdash; Procedure: ' || c.PROCEDURE_CODE\n            || ', Amount: $' || c.CLAIM_AMOUNT::VARCHAR\n            || ', Specialty: ' || p.SPECIALTY\n            || ', Provider risk score: ' || pp.RISK_SCORE::VARCHAR,\n        ['Upcoding','Phantom Billing','Unbundling','Provider Ring','Identity Theft','Legitimate']\n    ):&quot;labels&quot;[0]::VARCHAR                                     AS FRAUD_TYPE,\n    AI_COMPLETE('llama3.3-70b',\n        'You are a healthcare fraud analyst. In 2 sentences, explain why this claim '\n        || 'may be fraudulent. Procedure: ' || c.PROCEDURE_CODE\n        || ', Amount: $' || c.CLAIM_AMOUNT::VARCHAR\n        || ', Peer billing ratio: ' || pp.PEER_BILLING_RATIO::VARCHAR || 'x'\n        || ', Prior auth gap rate: ' || pp.PRIOR_AUTH_GAP_RATE::VARCHAR\n        || ', On watch list: ' || pp.ON_WATCH_LIST::VARCHAR\n    )::VARCHAR                                                 AS EXPLANATION\nFROM FWA_QS.DETECTION.CLAIMS c\nJOIN FWA_QS.DETECTION.PROVIDERS p ON c.PROVIDER_ID = p.PROVIDER_ID\nJOIN FWA_QS.DETECTION.PROVIDER_PROFILES pp ON c.PROVIDER_ID = pp.PROVIDER_ID\nWHERE pp.RISK_SCORE &gt;= 25;\n\u003C/code\u003E\u003C/pre\u003E\n","\u003Cp\u003EOnly claims from providers with RISK_SCORE &gt;= 25 are sent through LLM classification, controlling cost at scale.\u003C/p\u003E\n\u003Cblockquote\u003E\n","\u003Cp\u003E\u003Cstrong\u003EVerify:\u003C/strong\u003E\u003C/p\u003E\n\u003C/blockquote\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-sql\"\u003ESELECT CLAIM_ID, FRAUD_TYPE, LEFT(EXPLANATION, 80) AS EXPLANATION_PREVIEW\nFROM FWA_QS.DETECTION.FRAUD_CLASSIFICATIONS;\n\u003C/code\u003E\u003C/pre\u003E\n&lt;!-- ------------------------ --&gt;\n","\u003Ch2\u003EAnomaly Detection &amp; Scoring\u003C/h2\u003E\n","\u003Cp\u003EDuration: 10\u003C/p\u003E\n","\u003Cp\u003EPure SQL &mdash; no Python, no notebooks, no external tools.\u003C/p\u003E\n","\u003Ch3\u003EAnomaly Detection\u003C/h3\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-sql\"\u003E-- Train an unsupervised anomaly model on claims before March 2024\n-- The model learns normal billing patterns from this baseline period\n-- LABEL_COLNAME =&gt; '' means unsupervised (no pre-labeled anomalies)\nCREATE OR REPLACE SNOWFLAKE.ML.ANOMALY_DETECTION FWA_QS.DETECTION.CLAIMS_ANOMALY_MODEL(\n    INPUT_DATA =&gt; SYSTEM$QUERY_REFERENCE(\n        'SELECT CLAIM_DATE, CLAIM_AMOUNT FROM FWA_QS.DETECTION.CLAIMS WHERE CLAIM_DATE &lt; ''2024-03-01'''\n    ),\n    TIMESTAMP_COLNAME =&gt; 'CLAIM_DATE',\n    TARGET_COLNAME =&gt; 'CLAIM_AMOUNT',\n    LABEL_COLNAME =&gt; ''\n);\n\n-- Run inference on newer claims (must be after training period)\n-- Returns IS_ANOMALY flag, prediction interval, and distance from expected range\nCALL FWA_QS.DETECTION.CLAIMS_ANOMALY_MODEL!DETECT_ANOMALIES(\n    INPUT_DATA =&gt; SYSTEM$QUERY_REFERENCE(\n        'SELECT CLAIM_DATE, CLAIM_AMOUNT FROM FWA_QS.DETECTION.CLAIMS WHERE CLAIM_DATE &gt;= ''2024-03-01'''\n    ),\n    TIMESTAMP_COLNAME =&gt; 'CLAIM_DATE',\n    TARGET_COLNAME =&gt; 'CLAIM_AMOUNT'\n);\n\u003C/code\u003E\u003C/pre\u003E\n","\u003Ch3\u003EPredictive Fraud Scoring\u003C/h3\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-sql\"\u003E-- Feature view: joins claim-level data with provider profile metrics\n-- Only includes claims where IS_FRAUD has been confirmed (not NULL)\nCREATE OR REPLACE VIEW FWA_QS.DETECTION.TRAINING_FEATURES_V AS\nSELECT\n    c.CLAIM_ID,\n    c.CLAIM_AMOUNT,\n    c.PRIOR_AUTH_FLAG,\n    pp.PEER_BILLING_RATIO,\n    pp.PRIOR_AUTH_GAP_RATE,\n    pp.RISK_SCORE,\n    pp.ON_WATCH_LIST,\n    pp.TOTAL_CLAIMS       AS PROVIDER_TOTAL_CLAIMS,\n    c.IS_FRAUD\nFROM FWA_QS.DETECTION.CLAIMS c\nJOIN FWA_QS.DETECTION.PROVIDER_PROFILES pp ON c.PROVIDER_ID = pp.PROVIDER_ID\nWHERE c.IS_FRAUD IS NOT NULL;\n\n-- Train a gradient-boosted classifier to predict fraud probability\n-- Snowflake ML automatically handles train/test split, hyperparameters, and feature importance\nCREATE OR REPLACE SNOWFLAKE.ML.CLASSIFICATION FWA_QS.DETECTION.FRAUD_PREDICTION_MODEL(\n    INPUT_DATA =&gt; SYSTEM$REFERENCE('VIEW', 'FWA_QS.DETECTION.TRAINING_FEATURES_V'),\n    TARGET_COLNAME =&gt; 'IS_FRAUD'\n);\n\u003C/code\u003E\u003C/pre\u003E\n&lt;!-- ------------------------ --&gt;\n","\u003Ch2\u003EFraud Ring Detection\u003C/h2\u003E\n","\u003Cp\u003EDuration: 5\u003C/p\u003E\n","\u003Cp\u003EBuild edges from shared provider attributes and cluster them. No separate graph database required.\u003C/p\u003E\n","\u003Ch3\u003EBuild Edges\u003C/h3\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-sql\"\u003E-- Build an edge list: two providers are &quot;connected&quot; if they share an address,\n-- bank account, or phone number. Self-joins with ID &lt; ID avoid duplicates.\nCREATE OR REPLACE TABLE FWA_QS.DETECTION.PROVIDER_EDGES AS\nSELECT a.PROVIDER_ID AS PROVIDER_A, b.PROVIDER_ID AS PROVIDER_B,\n       'SHARED_ADDRESS' AS CONNECTION_TYPE\nFROM FWA_QS.DETECTION.PROVIDERS a\nJOIN FWA_QS.DETECTION.PROVIDERS b\n    ON a.ADDRESS = b.ADDRESS AND a.PROVIDER_ID &lt; b.PROVIDER_ID\nUNION ALL\nSELECT a.PROVIDER_ID, b.PROVIDER_ID, 'SHARED_BANK_ACCOUNT'\nFROM FWA_QS.DETECTION.PROVIDERS a\nJOIN FWA_QS.DETECTION.PROVIDERS b\n    ON a.BANK_ACCOUNT = b.BANK_ACCOUNT AND a.PROVIDER_ID &lt; b.PROVIDER_ID\nUNION ALL\nSELECT a.PROVIDER_ID, b.PROVIDER_ID, 'SHARED_PHONE'\nFROM FWA_QS.DETECTION.PROVIDERS a\nJOIN FWA_QS.DETECTION.PROVIDERS b\n    ON a.PHONE = b.PHONE AND a.PROVIDER_ID &lt; b.PROVIDER_ID;\n\u003C/code\u003E\u003C/pre\u003E\n","\u003Ch3\u003ECluster Into Rings\u003C/h3\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-sql\"\u003E-- Find connected components: assign each provider the minimum reachable PROVIDER_ID\n-- Uses a multi-hop approach that handles chains (A-B via address, B-C via bank account)\nCREATE OR REPLACE TABLE FWA_QS.DETECTION.FRAUD_RINGS AS\nWITH\n-- Make edges bidirectional so we can traverse in both directions\nedges_both_ways AS (\n    SELECT PROVIDER_A AS P1, PROVIDER_B AS P2 FROM FWA_QS.DETECTION.PROVIDER_EDGES\n    UNION ALL\n    SELECT PROVIDER_B, PROVIDER_A FROM FWA_QS.DETECTION.PROVIDER_EDGES\n),\n-- Hop 1: for each provider, find their minimum direct neighbor\nhop1 AS (\n    SELECT P1 AS PROVIDER_ID, MIN(P2) AS MIN_NEIGHBOR\n    FROM edges_both_ways\n    GROUP BY P1\n),\n-- Hop 2: follow the neighbor's minimum neighbor (handles A&rarr;B&rarr;C chains)\nhop2 AS (\n    SELECT h1.PROVIDER_ID,\n           LEAST(h1.MIN_NEIGHBOR, COALESCE(MIN(h2.MIN_NEIGHBOR), h1.MIN_NEIGHBOR)) AS CLUSTER_ID\n    FROM hop1 h1\n    LEFT JOIN hop1 h2 ON h1.MIN_NEIGHBOR = h2.PROVIDER_ID\n    GROUP BY h1.PROVIDER_ID, h1.MIN_NEIGHBOR\n)\nSELECT PROVIDER_ID, MIN(CLUSTER_ID) AS CLUSTER_ID\nFROM hop2\nGROUP BY PROVIDER_ID;\n\u003C/code\u003E\u003C/pre\u003E\n\u003Cblockquote\u003E\n","\u003Cp\u003E\u003Cstrong\u003EVerify:\u003C/strong\u003E P-1001, P-1002, P-1003 share a cluster (address + bank account links).\u003C/p\u003E\n\u003C/blockquote\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-sql\"\u003ESELECT * FROM FWA_QS.DETECTION.FRAUD_RINGS;\n\u003C/code\u003E\u003C/pre\u003E\n&lt;!-- ------------------------ --&gt;\n","\u003Ch2\u003EDocument &amp; Audio Analysis\u003C/h2\u003E\n","\u003Cp\u003EDuration: 5\u003C/p\u003E\n","\u003Ch3\u003EDocument Analysis\u003C/h3\u003E\n","\u003Cp\u003EParse each claim document once and store the text. Downstream steps (mismatch analysis, the Cortex Search service, and the Streamlit app) read the stored text instead of re-parsing the PDFs.\u003C/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-sql\"\u003E-- AI_PARSE_DOCUMENT: extracts text (with OCR) from the PDFs on the stage\nCREATE OR REPLACE TABLE FWA_QS.DETECTION.DOCUMENT_TEXT AS\nSELECT\n    d.DOC_ID,\n    d.CLAIM_ID,\n    d.FILE_NAME,\n    d.DOC_TYPE,\n    AI_PARSE_DOCUMENT(TO_FILE('@FWA_QS.DETECTION.DOCUMENTS', d.FILE_NAME)):content::VARCHAR AS EXTRACTED_TEXT\nFROM FWA_QS.DETECTION.DOCUMENT_METADATA d;\n\n-- AI_COMPLETE: compares each document against its claim and lists mismatches\nCREATE OR REPLACE TABLE FWA_QS.DETECTION.DOCUMENT_FINDINGS AS\nSELECT\n    t.DOC_ID,\n    t.CLAIM_ID,\n    t.DOC_TYPE,\n    AI_COMPLETE('llama3.3-70b',\n        'You are a healthcare fraud auditor. Compare this clinical document to the claim details '\n        || 'and list any mismatches. Document text: ' || t.EXTRACTED_TEXT\n        || ' | Claim: procedure=' || c.PROCEDURE_CODE\n        || ', diagnosis=' || c.DIAGNOSIS_CODE\n        || ', amount=$' || c.CLAIM_AMOUNT::VARCHAR\n    )::VARCHAR AS MISMATCH_ANALYSIS\nFROM FWA_QS.DETECTION.DOCUMENT_TEXT t\nJOIN FWA_QS.DETECTION.CLAIMS c ON t.CLAIM_ID = c.CLAIM_ID;\n\u003C/code\u003E\u003C/pre\u003E\n\u003Cblockquote\u003E\n","\u003Cp\u003E\u003Cstrong\u003EVerify:\u003C/strong\u003E \u003Ccode\u003ESELECT DOC_ID, MISMATCH_ANALYSIS FROM FWA_QS.DETECTION.DOCUMENT_FINDINGS;\u003C/code\u003E The sample documents are written to conflict with their claims: C-3002 bills a high-complexity visit (99215) for a 12-minute follow-up, C-3003's own note says the visit was low complexity, and C-3013 documents a different procedure and diagnosis with no patient check-in.\u003C/p\u003E\n\u003C/blockquote\u003E\n","\u003Ch3\u003EAudio Analysis\u003C/h3\u003E\n","\u003Cp\u003ETranscribe each hotline call and whistleblower report once and store the transcript, then summarize it.\u003C/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-sql\"\u003E-- AI_TRANSCRIBE: converts speech to text directly from audio files on the stage\n-- It returns an object; the :text field holds the transcript\nCREATE OR REPLACE TABLE FWA_QS.DETECTION.AUDIO_TRANSCRIPTS AS\nSELECT\n    a.AUDIO_ID,\n    a.FILE_NAME,\n    a.SOURCE_TYPE,\n    a.RELATED_PROVIDER,\n    a.RECEIVED_DATE,\n    AI_TRANSCRIBE(TO_FILE('@FWA_QS.DETECTION.AUDIO_FILES', a.FILE_NAME)):text::VARCHAR AS TRANSCRIPTION\nFROM FWA_QS.DETECTION.AUDIO_METADATA a;\n\n-- AI_SUMMARIZE: condenses each transcript into key findings\nSELECT\n    AUDIO_ID,\n    SOURCE_TYPE,\n    RELATED_PROVIDER,\n    AI_SUMMARIZE(TRANSCRIPTION) AS SUMMARY\nFROM FWA_QS.DETECTION.AUDIO_TRANSCRIPTS;\n\u003C/code\u003E\u003C/pre\u003E\n\u003Cblockquote\u003E\n","\u003Cp\u003E\u003Cstrong\u003EVerify:\u003C/strong\u003E The hotline call (A-6001) reports that P-1001 bills 10-minute visits as 99215 and shares an address with Beta Health Corp. The whistleblower report (A-6002) reports that P-1002 and Gamma Clinic share bank account 8888.\u003C/p\u003E\n\u003C/blockquote\u003E\n\u003Cblockquote\u003E\n","\u003Cp\u003E\u003Cstrong\u003EIn production\u003C/strong\u003E, Snowflake Cortex AI provides a full suite of functions for audio and multilingual workflows: AI_TRANSCRIBE, AI_TRANSLATE, AI_SUMMARIZE, AI_CLASSIFY, AI_EXTRACT, AI_COMPLETE, AI_SENTIMENT, AI_PARSE_DOCUMENT. These run inside Snowflake &mdash; no external API calls, no data movement. Combine them to build end-to-end pipelines, e.g. AI_TRANSCRIBE &rarr; AI_TRANSLATE &rarr; AI_SUMMARIZE for multilingual hotline calls.\u003C/p\u003E\n\u003C/blockquote\u003E\n&lt;!-- ------------------------ --&gt;\n","\u003Ch2\u003EInvestigation Agent\u003C/h2\u003E\n","\u003Cp\u003EDuration: 15\u003C/p\u003E\n","\u003Ch3\u003ECortex Search Services\u003C/h3\u003E\n","\u003Cp\u003ECreate search indexes over fraud explanations, documents, audio, and fraud ring clusters:\u003C/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-sql\"\u003E-- Search service over LLM-generated fraud explanations\n-- Investigators can search by fraud type, provider, or free text\nCREATE OR REPLACE CORTEX SEARCH SERVICE FWA_QS.DETECTION.FRAUD_EXPLANATIONS_SEARCH\n  ON EXPLANATION\n  WAREHOUSE = FWA_WH\n  TARGET_LAG = '1 hour'\nAS (\n    SELECT CLAIM_ID, PROVIDER_ID, FRAUD_TYPE, EXPLANATION, CLAIM_AMOUNT, RISK_SCORE\n    FROM FWA_QS.DETECTION.FRAUD_CLASSIFICATIONS\n);\n\n-- Search service over the parsed document text stored in the previous step\n-- (Search services index stored text; they cannot call AI_PARSE_DOCUMENT themselves)\nCREATE OR REPLACE CORTEX SEARCH SERVICE FWA_QS.DETECTION.DOCUMENT_SEARCH\n  ON EXTRACTED_TEXT\n  ATTRIBUTES CLAIM_ID, DOC_TYPE\n  WAREHOUSE = FWA_WH\n  TARGET_LAG = '1 hour'\nAS (\n    SELECT DOC_ID, CLAIM_ID, FILE_NAME, DOC_TYPE, EXTRACTED_TEXT\n    FROM FWA_QS.DETECTION.DOCUMENT_TEXT\n);\n\n-- Search service over the stored audio transcripts (hotline calls, whistleblower reports)\nCREATE OR REPLACE CORTEX SEARCH SERVICE FWA_QS.DETECTION.AUDIO_SEARCH\n  ON TRANSCRIPTION\n  ATTRIBUTES RELATED_PROVIDER, SOURCE_TYPE\n  WAREHOUSE = FWA_WH\n  TARGET_LAG = '1 hour'\nAS (\n    SELECT AUDIO_ID, FILE_NAME, SOURCE_TYPE, RELATED_PROVIDER, TRANSCRIPTION\n    FROM FWA_QS.DETECTION.AUDIO_TRANSCRIPTS\n);\n\n-- Search service over fraud ring clusters &mdash; find providers by ring membership\nCREATE OR REPLACE CORTEX SEARCH SERVICE FWA_QS.DETECTION.CLUSTER_SEARCH\n  ON CLUSTER_DETAIL\n  WAREHOUSE = FWA_WH\n  TARGET_LAG = '1 hour'\nAS (\n    SELECT\n        fr.CLUSTER_ID,\n        fr.PROVIDER_ID,\n        p.PROVIDER_NAME,\n        pp.RISK_SCORE,\n        'Cluster ' || fr.CLUSTER_ID || ': ' || p.PROVIDER_NAME\n            || ' (risk=' || pp.RISK_SCORE::VARCHAR || ')' AS CLUSTER_DETAIL\n    FROM FWA_QS.DETECTION.FRAUD_RINGS fr\n    JOIN FWA_QS.DETECTION.PROVIDERS p ON fr.PROVIDER_ID = p.PROVIDER_ID\n    JOIN FWA_QS.DETECTION.PROVIDER_PROFILES pp ON fr.PROVIDER_ID = pp.PROVIDER_ID\n);\n\u003C/code\u003E\u003C/pre\u003E\n","\u003Ch3\u003ESemantic Model\u003C/h3\u003E\n","\u003Cp\u003EThe semantic model was copied to \u003Ccode\u003E@FWA_QS.DETECTION.SEMANTIC_MODELS\u003C/code\u003E in the setup step. It is shown here for reference:\u003C/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-yaml\"\u003E# fwa_semantic_model.yaml\n# NOTE: base_table must use nested database/schema/table format\n# All dimensions require data_type; use facts (not measures) for numeric columns\nname: FWA_Investigation_Model\ntables:\n  - name: CLAIMS\n    base_table:\n      database: FWA_QS\n      schema: DETECTION\n      table: CLAIMS\n    dimensions:\n      - name: CLAIM_ID\n        expr: CLAIM_ID\n        data_type: TEXT\n      - name: PROVIDER_ID\n        expr: PROVIDER_ID\n        data_type: TEXT\n      - name: BENEFICIARY_ID\n        expr: BENEFICIARY_ID\n        data_type: TEXT\n      - name: PROCEDURE_CODE\n        expr: PROCEDURE_CODE\n        data_type: TEXT\n    time_dimensions:\n      - name: CLAIM_DATE\n        expr: CLAIM_DATE\n        data_type: DATE\n    facts:\n      - name: CLAIM_AMOUNT\n        expr: CLAIM_AMOUNT\n        data_type: NUMBER\n\n  - name: PROVIDER_PROFILES\n    base_table:\n      database: FWA_QS\n      schema: DETECTION\n      table: PROVIDER_PROFILES\n    dimensions:\n      - name: PROVIDER_ID\n        expr: PROVIDER_ID\n        data_type: TEXT\n      - name: PROVIDER_NAME\n        expr: PROVIDER_NAME\n        data_type: TEXT\n      - name: SPECIALTY\n        expr: SPECIALTY\n        data_type: TEXT\n    facts:\n      - name: RISK_SCORE\n        expr: RISK_SCORE\n        data_type: NUMBER\n      - name: AVG_CLAIM_AMOUNT\n        expr: AVG_CLAIM_AMOUNT\n        data_type: NUMBER\n      - name: TOTAL_CLAIMS\n        expr: TOTAL_CLAIMS\n        data_type: NUMBER\n\n  - name: FRAUD_CLASSIFICATIONS\n    base_table:\n      database: FWA_QS\n      schema: DETECTION\n      table: FRAUD_CLASSIFICATIONS\n    dimensions:\n      - name: CLAIM_ID\n        expr: CLAIM_ID\n        data_type: TEXT\n      - name: FRAUD_TYPE\n        expr: FRAUD_TYPE\n        data_type: TEXT\n    facts:\n      - name: CLAIM_AMOUNT\n        expr: CLAIM_AMOUNT\n        data_type: NUMBER\n      - name: RISK_SCORE\n        expr: RISK_SCORE\n        data_type: NUMBER\n\u003C/code\u003E\u003C/pre\u003E\n","\u003Ch3\u003ECreate Analyst Tool and Agent\u003C/h3\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-sql\"\u003E-- Create a Cortex Agent using CREATE AGENT with a YAML specification\n-- The agent orchestrates: an Analyst tool (structured SQL via semantic model)\n-- and Cortex Search services (unstructured text search)\n-- execution_environment specifies the warehouse for running analyst SQL queries\nCREATE OR REPLACE AGENT FWA_QS.DETECTION.INVESTIGATION_AGENT\n  FROM SPECIFICATION\n  $$\n  tools:\n    - tool_spec:\n        type: &quot;cortex_analyst_text_to_sql&quot;\n        name: &quot;FWA_ANALYST&quot;\n        description: &quot;Answers structured SQL questions about claims, providers, risk scores, and fraud classifications&quot;\n    - tool_spec:\n        type: &quot;cortex_search&quot;\n        name: &quot;FRAUD_EXPLANATIONS&quot;\n        description: &quot;Searches LLM-generated fraud explanations for claims&quot;\n    - tool_spec:\n        type: &quot;cortex_search&quot;\n        name: &quot;CLUSTER_SEARCH&quot;\n        description: &quot;Searches fraud ring cluster details and connected providers&quot;\n    - tool_spec:\n        type: &quot;cortex_search&quot;\n        name: &quot;DOCUMENT_SEARCH&quot;\n        description: &quot;Searches parsed claim documents: invoices, clinical notes, and procedure reports&quot;\n    - tool_spec:\n        type: &quot;cortex_search&quot;\n        name: &quot;AUDIO_SEARCH&quot;\n        description: &quot;Searches transcripts of fraud hotline calls and whistleblower reports&quot;\n\n  tool_resources:\n    FWA_ANALYST:\n      semantic_model_file: &quot;@FWA_QS.DETECTION.SEMANTIC_MODELS/fwa_semantic_model.yaml&quot;\n      execution_environment:\n        type: &quot;warehouse&quot;\n        warehouse: &quot;FWA_WH&quot;\n    FRAUD_EXPLANATIONS:\n      search_service: &quot;FWA_QS.DETECTION.FRAUD_EXPLANATIONS_SEARCH&quot;\n    CLUSTER_SEARCH:\n      search_service: &quot;FWA_QS.DETECTION.CLUSTER_SEARCH&quot;\n    DOCUMENT_SEARCH:\n      search_service: &quot;FWA_QS.DETECTION.DOCUMENT_SEARCH&quot;\n    AUDIO_SEARCH:\n      search_service: &quot;FWA_QS.DETECTION.AUDIO_SEARCH&quot;\n  $$;\n\u003C/code\u003E\u003C/pre\u003E\n","\u003Ch3\u003ETest the Agent\u003C/h3\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-sql\"\u003E-- Test 1: routes to analyst tool (structured SQL query against profiles + classifications)\n-- DATA_AGENT_RUN takes the agent name, a JSON messages payload, and TRUE to wait for completion\nSELECT SNOWFLAKE.CORTEX.DATA_AGENT_RUN(\n    'FWA_QS.DETECTION.INVESTIGATION_AGENT',\n    $${&quot;messages&quot;: [{&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: [{&quot;type&quot;: &quot;text&quot;, &quot;text&quot;: &quot;Which providers have a risk score above 50 and what fraud types are they flagged for?&quot;}]}]}$$,\n    TRUE\n);\n\n-- Test 2: routes to cluster search service (unstructured ring data)\nSELECT SNOWFLAKE.CORTEX.DATA_AGENT_RUN(\n    'FWA_QS.DETECTION.INVESTIGATION_AGENT',\n    $${&quot;messages&quot;: [{&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: [{&quot;type&quot;: &quot;text&quot;, &quot;text&quot;: &quot;Show me fraud ring clusters and explain why cluster P-1001 was flagged.&quot;}]}]}$$,\n    TRUE\n);\n\n-- Test 3: routes to the audio search service (hotline and whistleblower transcripts)\nSELECT SNOWFLAKE.CORTEX.DATA_AGENT_RUN(\n    'FWA_QS.DETECTION.INVESTIGATION_AGENT',\n    $${&quot;messages&quot;: [{&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: [{&quot;type&quot;: &quot;text&quot;, &quot;text&quot;: &quot;Summarize any whistleblower or hotline reports that mention a shared bank account.&quot;}]}]}$$,\n    TRUE\n);\n\u003C/code\u003E\u003C/pre\u003E\n&lt;!-- ------------------------ --&gt;\n","\u003Ch2\u003EStreamlit Application\u003C/h2\u003E\n","\u003Cp\u003EDuration: 10\u003C/p\u003E\n","\u003Cp\u003ECreate a Streamlit in Snowflake app. Create a new Streamlit app in Snowsight (Projects &gt; Streamlit) and paste the code below.\u003C/p\u003E\n","\u003Ch3\u003Eenvironment.yml\u003C/h3\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-yaml\"\u003Ename: fwa_app\nchannels:\n  - snowflake\ndependencies:\n  - snowflake-snowpark-python\n  - streamlit\n\u003C/code\u003E\u003C/pre\u003E\n","\u003Ch3\u003Eapp.py\u003C/h3\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-python\"\u003Eimport streamlit as st\nfrom snowflake.snowpark.context import get_active_session\n\nsession = get_active_session()\n\nst.set_page_config(page_title=&quot;FWA Investigation Platform&quot;, layout=&quot;wide&quot;)\nst.title(&quot;Fraud, Waste &amp; Abuse Investigation Platform&quot;)\n\ntab1, tab2, tab3, tab4, tab5, tab6 = st.tabs([\n    &quot;Provider Profiles&quot;, &quot;Fraud Classifications&quot;, &quot;Anomaly Detection&quot;,\n    &quot;Fraud Rings&quot;, &quot;Document &amp; Audio&quot;, &quot;Investigation Agent&quot;\n])\n\n# --- Tab 1: Provider Profiles ---\nwith tab1:\n    st.header(&quot;Provider Behavior Profiles&quot;)\n    risk_threshold = st.slider(&quot;Minimum Risk Score&quot;, 0, 100, 25)\n    profiles = session.sql(f&quot;&quot;&quot;\n        SELECT PROVIDER_ID, PROVIDER_NAME, SPECIALTY, TOTAL_CLAIMS,\n               AVG_CLAIM_AMOUNT, PEER_BILLING_RATIO, PRIOR_AUTH_GAP_RATE,\n               ON_WATCH_LIST, RISK_SCORE\n        FROM FWA_QS.DETECTION.PROVIDER_PROFILES\n        WHERE RISK_SCORE &gt;= {risk_threshold}\n        ORDER BY RISK_SCORE DESC\n    &quot;&quot;&quot;).to_pandas()\n    st.dataframe(profiles, use_container_width=True)\n\n# --- Tab 2: Fraud Classifications ---\nwith tab2:\n    st.header(&quot;LLM Fraud Classifications&quot;)\n    classifications = session.sql(&quot;&quot;&quot;\n        SELECT CLAIM_ID, PROVIDER_ID, CLAIM_AMOUNT, FRAUD_TYPE,\n               LEFT(EXPLANATION, 300) AS EXPLANATION, RISK_SCORE\n        FROM FWA_QS.DETECTION.FRAUD_CLASSIFICATIONS\n        ORDER BY RISK_SCORE DESC\n    &quot;&quot;&quot;).to_pandas()\n    fraud_filter = st.multiselect(&quot;Filter by Fraud Type&quot;,\n        classifications[&quot;FRAUD_TYPE&quot;].unique().tolist(),\n        default=classifications[&quot;FRAUD_TYPE&quot;].unique().tolist())\n    st.dataframe(\n        classifications[classifications[&quot;FRAUD_TYPE&quot;].isin(fraud_filter)],\n        use_container_width=True\n    )\n\n# --- Tab 3: Anomaly Detection ---\nwith tab3:\n    st.header(&quot;Claim Amount Anomalies&quot;)\n    st.info(&quot;Anomaly detection scores claims from March 2024 onward against the pre-March baseline.&quot;)\n    try:\n        anomalies = session.sql(&quot;&quot;&quot;\n            SELECT * FROM TABLE(FWA_QS.DETECTION.CLAIMS_ANOMALY_MODEL!DETECT_ANOMALIES(\n                INPUT_DATA =&gt; SYSTEM$QUERY_REFERENCE(\n                    'SELECT CLAIM_DATE, CLAIM_AMOUNT FROM FWA_QS.DETECTION.CLAIMS WHERE CLAIM_DATE &gt;= ''2024-03-01'''\n                ),\n                TIMESTAMP_COLNAME =&gt; 'CLAIM_DATE',\n                TARGET_COLNAME =&gt; 'CLAIM_AMOUNT'\n            ))\n            ORDER BY TS DESC\n        &quot;&quot;&quot;).to_pandas()\n        st.dataframe(anomalies, use_container_width=True)\n    except Exception as e:\n        st.error(f&quot;Anomaly detection error: {e}&quot;)\n\n# --- Tab 4: Fraud Rings ---\nwith tab4:\n    st.header(&quot;Fraud Ring Clusters&quot;)\n    rings = session.sql(&quot;&quot;&quot;\n        SELECT fr.CLUSTER_ID, fr.PROVIDER_ID, p.PROVIDER_NAME,\n               p.ADDRESS, p.BANK_ACCOUNT, pp.RISK_SCORE\n        FROM FWA_QS.DETECTION.FRAUD_RINGS fr\n        JOIN FWA_QS.DETECTION.PROVIDERS p ON fr.PROVIDER_ID = p.PROVIDER_ID\n        JOIN FWA_QS.DETECTION.PROVIDER_PROFILES pp ON fr.PROVIDER_ID = pp.PROVIDER_ID\n        ORDER BY fr.CLUSTER_ID, pp.RISK_SCORE DESC\n    &quot;&quot;&quot;).to_pandas()\n    st.dataframe(rings, use_container_width=True)\n\n    edges = session.sql(&quot;&quot;&quot;\n        SELECT PROVIDER_A, PROVIDER_B, CONNECTION_TYPE\n        FROM FWA_QS.DETECTION.PROVIDER_EDGES\n    &quot;&quot;&quot;).to_pandas()\n    st.subheader(&quot;Connection Edges&quot;)\n    st.dataframe(edges, use_container_width=True)\n\n# --- Tab 5: Document &amp; Audio ---\nwith tab5:\n    st.header(&quot;Document &amp; Audio Analysis&quot;)\n    st.subheader(&quot;Document vs. Claim Mismatches&quot;)\n    findings = session.sql(&quot;&quot;&quot;\n        SELECT DOC_ID, CLAIM_ID, DOC_TYPE, MISMATCH_ANALYSIS\n        FROM FWA_QS.DETECTION.DOCUMENT_FINDINGS\n        ORDER BY DOC_ID\n    &quot;&quot;&quot;).to_pandas()\n    for _, row in findings.iterrows():\n        with st.expander(f&quot;{row['DOC_ID']} | Claim {row['CLAIM_ID']} | {row['DOC_TYPE']}&quot;):\n            st.markdown(row[&quot;MISMATCH_ANALYSIS&quot;])\n    st.subheader(&quot;Hotline and Whistleblower Transcripts&quot;)\n    transcripts = session.sql(&quot;&quot;&quot;\n        SELECT AUDIO_ID, SOURCE_TYPE, RELATED_PROVIDER, RECEIVED_DATE, TRANSCRIPTION\n        FROM FWA_QS.DETECTION.AUDIO_TRANSCRIPTS\n        ORDER BY RECEIVED_DATE\n    &quot;&quot;&quot;).to_pandas()\n    st.dataframe(transcripts, use_container_width=True)\n\n# --- Tab 6: Investigation Agent ---\nwith tab6:\n    st.header(&quot;Ask the Investigation Agent&quot;)\n    user_question = st.text_input(&quot;Ask a question about claims, providers, fraud rings, or documents:&quot;)\n    if user_question:\n        with st.spinner(&quot;Agent is investigating...&quot;):\n            import json\n            escaped_q = user_question.replace('&quot;', '\\\\&quot;')\n            result = session.sql(f&quot;&quot;&quot;\n                SELECT SNOWFLAKE.CORTEX.DATA_AGENT_RUN(\n                    'FWA_QS.DETECTION.INVESTIGATION_AGENT',\n                    $${{&quot;messages&quot;: [{{&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: [{{&quot;type&quot;: &quot;text&quot;, &quot;text&quot;: &quot;{escaped_q}&quot;}}]}}]}}$$,\n                    TRUE\n                ) AS RESPONSE\n            &quot;&quot;&quot;).to_pandas()\n            resp = json.loads(result[&quot;RESPONSE&quot;].iloc[0])\n            for item in resp.get(&quot;content&quot;, []):\n                if item.get(&quot;type&quot;) == &quot;text&quot;:\n                    st.markdown(item[&quot;text&quot;])\n\u003C/code\u003E\u003C/pre\u003E\n&lt;!-- ------------------------ --&gt;\n","\u003Ch2\u003ESecurity &amp; Access Control\u003C/h2\u003E\n","\u003Cp\u003EDuration: 5\u003C/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-sql\"\u003E-- Least-privilege roles: avoid running production workloads as ACCOUNTADMIN\nCREATE ROLE IF NOT EXISTS FWA_ADMIN;          -- manages the platform\nCREATE ROLE IF NOT EXISTS FWA_INVESTIGATOR;   -- reviews and acts on flagged claims\n\n-- FWA_ADMIN: full read/write on all FWA objects\nGRANT USAGE ON DATABASE FWA_QS TO ROLE FWA_ADMIN;\nGRANT USAGE ON SCHEMA FWA_QS.DETECTION TO ROLE FWA_ADMIN;\nGRANT ALL ON ALL TABLES IN SCHEMA FWA_QS.DETECTION TO ROLE FWA_ADMIN;\nGRANT USAGE ON WAREHOUSE FWA_WH TO ROLE FWA_ADMIN;\n\n-- FWA_INVESTIGATOR: read-only on results, agent access\nGRANT USAGE ON DATABASE FWA_QS TO ROLE FWA_INVESTIGATOR;\nGRANT USAGE ON SCHEMA FWA_QS.DETECTION TO ROLE FWA_INVESTIGATOR;\nGRANT SELECT ON FWA_QS.DETECTION.PROVIDER_PROFILES TO ROLE FWA_INVESTIGATOR;\nGRANT SELECT ON FWA_QS.DETECTION.FRAUD_CLASSIFICATIONS TO ROLE FWA_INVESTIGATOR;\nGRANT SELECT ON FWA_QS.DETECTION.FRAUD_RINGS TO ROLE FWA_INVESTIGATOR;\nGRANT USAGE ON WAREHOUSE FWA_WH TO ROLE FWA_INVESTIGATOR;\n\n-- Dynamic data masking: protects PHI/PII at query time without duplicating data\n-- Investigators see '***MASKED***' for patient names; admins see real values\nCREATE OR REPLACE MASKING POLICY FWA_QS.DETECTION.NAME_MASK AS (val STRING)\n  RETURNS STRING -&gt;\n    CASE WHEN CURRENT_ROLE() IN ('FWA_ADMIN','ACCOUNTADMIN') THEN val\n         ELSE '***MASKED***' END;\n\nALTER TABLE FWA_QS.DETECTION.BENEFICIARIES\n  MODIFY COLUMN FIRST_NAME SET MASKING POLICY FWA_QS.DETECTION.NAME_MASK;\nALTER TABLE FWA_QS.DETECTION.BENEFICIARIES\n  MODIFY COLUMN LAST_NAME SET MASKING POLICY FWA_QS.DETECTION.NAME_MASK;\n\u003C/code\u003E\u003C/pre\u003E\n&lt;!-- ------------------------ --&gt;\n","\u003Ch2\u003EOperations &amp; Case Management\u003C/h2\u003E\n","\u003Cp\u003EDuration: 10\u003C/p\u003E\n","\u003Ch3\u003EArchitecture Mapping\u003C/h3\u003E\n\u003Ctable\u003E\u003Cthead\u003E\u003Ctr\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EPhase\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003ESteps\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EKey Snowflake Features\u003C/th\u003E\u003C/tr\u003E\u003C/thead\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003E1. Ingest &amp; Contextualize\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ESteps 2-4\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ETables, Stages, Dynamic Tables\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003E2. Detect &amp; Score\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ESteps 5-7\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ECortex AI, Snowflake ML, SQL Graph Analysis\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003E3. Analyze &amp; Evidence\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ESteps 8-9\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EAI_PARSE_DOCUMENT, AI_TRANSCRIBE, Cortex Agent\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003E4. Decide &amp; Act\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ESteps 10-12\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EStreamlit, RBAC, Masking, Case Management\u003C/td\u003E\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E\n","\u003Ch3\u003ECase Management and Feedback Loop\u003C/h3\u003E\n","\u003Cp\u003EInvestigators can confirm, reject, or escalate flagged claims, and their decisions feed back into model retraining.\u003C/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-sql\"\u003E-- Tracks investigator decisions: confirm fraud, reject as false positive, or escalate\n-- Each row is an auditable action tied to a claim and the investigator who made it\nCREATE OR REPLACE TABLE FWA_QS.DETECTION.CASE_ACTIONS (\n    CASE_ID         VARCHAR(10) DEFAULT 'CA-' || SEQ4()::VARCHAR,\n    CLAIM_ID        VARCHAR(10),\n    PROVIDER_ID     VARCHAR(10),\n    ACTION          VARCHAR(20),   -- CONFIRMED_FRAUD, FALSE_POSITIVE, ESCALATED, PENDING\n    INVESTIGATOR    VARCHAR(100) DEFAULT CURRENT_USER(),\n    ACTION_DATE     TIMESTAMP DEFAULT CURRENT_TIMESTAMP(),\n    NOTES           VARCHAR(500),\n    RECOVERY_AMOUNT NUMBER(12,2) DEFAULT NULL\n);\n\n-- Grant investigators write access to this table\nGRANT INSERT, UPDATE ON FWA_QS.DETECTION.CASE_ACTIONS TO ROLE FWA_INVESTIGATOR;\n\u003C/code\u003E\u003C/pre\u003E\n","\u003Ch3\u003EAutomated Retrain Trigger\u003C/h3\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-sql\"\u003E-- Stream captures change data (inserts/updates) on CASE_ACTIONS for the task trigger\nCREATE OR REPLACE STREAM FWA_QS.DETECTION.CASE_ACTIONS_STREAM\n  ON TABLE FWA_QS.DETECTION.CASE_ACTIONS;\n\n-- Automated retrain: Snowflake Task checks the stream weekly for new investigator decisions\n-- Only fires if new case actions exist (SYSTEM$STREAM_HAS_DATA), avoiding unnecessary retrains\nCREATE OR REPLACE TASK FWA_QS.DETECTION.RETRAIN_ON_NEW_LABELS\n  WAREHOUSE = FWA_WH\n  SCHEDULE = 'USING CRON 0 2 * * 0 America/New_York'  -- weekly Sunday 2 AM\n  WHEN SYSTEM$STREAM_HAS_DATA('FWA_QS.DETECTION.CASE_ACTIONS_STREAM')\nAS\n  CREATE OR REPLACE SNOWFLAKE.ML.CLASSIFICATION FWA_QS.DETECTION.FRAUD_PREDICTION_MODEL(\n      INPUT_DATA =&gt; SYSTEM$REFERENCE('VIEW', 'FWA_QS.DETECTION.TRAINING_FEATURES_V'),\n      TARGET_COLNAME =&gt; 'IS_FRAUD'\n  );\n\n-- Resume the task so it starts running on schedule\nALTER TASK FWA_QS.DETECTION.RETRAIN_ON_NEW_LABELS RESUME;\n\u003C/code\u003E\u003C/pre\u003E\n","\u003Cp\u003EThis completes the cycle: claims flow in (Phase 1) &rarr; get detected and scored (Phase 2) &rarr; investigators analyze evidence (Phase 3) &rarr; they decide and act, and those decisions improve the next round of detection (Phase 4 &rarr; back to Phase 2).\u003C/p\u003E\n&lt;!-- ------------------------ --&gt;\n","\u003Ch2\u003EClean Up\u003C/h2\u003E\n","\u003Cp\u003EDuration: 2\u003C/p\u003E\n","\u003Cp\u003ETo remove all objects created by this guide and stop the scheduled retrain task:\u003C/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-sql\"\u003E-- Suspend the scheduled task first\nALTER TASK IF EXISTS FWA_QS.DETECTION.RETRAIN_ON_NEW_LABELS SUSPEND;\n\n-- Drop the database (removes all tables, views, dynamic tables, stages,\n-- ML models, search services, agent, stream, task, and Streamlit app)\nDROP DATABASE IF EXISTS FWA_QS;\n\n-- Drop the warehouse\nDROP WAREHOUSE IF EXISTS FWA_WH;\n\n-- Drop the custom roles\nDROP ROLE IF EXISTS FWA_ADMIN;\nDROP ROLE IF EXISTS FWA_INVESTIGATOR;\n\n-- Drop the Git API integration (account-level, so DROP DATABASE does not remove it)\nDROP INTEGRATION IF EXISTS FWA_GIT_API_INTEGRATION;\n\u003C/code\u003E\u003C/pre\u003E\n&lt;!-- ------------------------ --&gt;\n","\u003Ch2\u003EConclusion &amp; Resources\u003C/h2\u003E\n","\u003Cp\u003EDuration: 2\u003C/p\u003E\n","\u003Cp\u003ECongratulations! You have built a complete Fraud, Waste, and Abuse detection platform on Snowflake &mdash; from data ingestion through ML scoring, LLM classification, graph-based ring detection, document/audio analysis, a natural-language investigation agent, and an investigator UI with case management.\u003C/p\u003E\n","\u003Ch3\u003EWhat You Learned\u003C/h3\u003E\n\u003Cul\u003E\u003Cli\u003EHow Dynamic Tables replace batch ETL with continuously refreshing provider profiles\u003C/li\u003E\u003Cli\u003EHow Cortex AI (AI_CLASSIFY, AI_COMPLETE) classifies fraud with plain-English explanations\u003C/li\u003E\u003Cli\u003EHow Snowflake ML trains anomaly detection and classification models in pure SQL\u003C/li\u003E\u003Cli\u003EHow SQL graph analysis detects fraud rings without an external graph database\u003C/li\u003E\u003Cli\u003EHow Cortex AI functions parse documents and transcribe audio for evidence\u003C/li\u003E\u003Cli\u003EHow Cortex Agents orchestrate structured and unstructured queries in plain English\u003C/li\u003E\u003Cli\u003EHow Streamlit in Snowflake delivers an investigator application\u003C/li\u003E\u003Cli\u003EHow RBAC, masking policies, and case management close the decide-and-act loop\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003ESummary\u003C/h3\u003E\n\u003Ctable\u003E\u003Cthead\u003E\u003Ctr\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003ECapability\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003ESnowflake Feature\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003EStep\u003C/th\u003E\u003C/tr\u003E\u003C/thead\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EData foundation\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ETables, Stages\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E2-3\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EReal-time profiles\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EDynamic Tables\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E4\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EFraud classification\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ECortex AI (AI_CLASSIFY, AI_COMPLETE)\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E5\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EAnomaly detection\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ESnowflake ML Anomaly Detection\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E6\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EPredictive scoring\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ESnowflake ML Classification\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E6\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EFraud ring mapping\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ESQL graph analysis\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E7\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EDocument analysis\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ECortex AI (AI_PARSE_DOCUMENT, AI_COMPLETE)\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E8\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EAudio analysis\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ECortex AI (AI_TRANSCRIBE, AI_SUMMARIZE)\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E8\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ENatural-language investigation\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ECortex Agent + Cortex Search + Cortex Analyst\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E9\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EInvestigator UI\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EStreamlit in Snowflake\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E10\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EData protection\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ERoles, Masking Policies\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E11\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ECase management\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003ETables, Streams, Tasks\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E12\u003C/td\u003E\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E\n","\u003Ch3\u003ERelated Resources\u003C/h3\u003E\n\u003Cul\u003E\u003Cli\u003E\u003Ca href=\"https://docs.snowflake.com/en/user-guide/dynamic-tables-about\"\u003EDynamic Tables\u003C/a\u003E\u003C/li\u003E\u003Cli\u003E\u003Ca href=\"https://docs.snowflake.com/en/user-guide/snowflake-cortex/llm-functions\"\u003ECortex AI LLM Functions\u003C/a\u003E\u003C/li\u003E\u003Cli\u003E\u003Ca href=\"https://docs.snowflake.com/en/developer-guide/snowflake-ml/overview\"\u003ESnowflake ML\u003C/a\u003E\u003C/li\u003E\u003Cli\u003E\u003Ca href=\"https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-search/cortex-search-overview\"\u003ECortex Search\u003C/a\u003E\u003C/li\u003E\u003Cli\u003E\u003Ca href=\"https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-agents\"\u003ECortex Agents\u003C/a\u003E\u003C/li\u003E\u003Cli\u003E\u003Ca href=\"https://docs.snowflake.com/en/developer-guide/streamlit/about-streamlit\"\u003EStreamlit in Snowflake\u003C/a\u003E\u003C/li\u003E\u003C/ul\u003E"],"description":"","title":"Build a Fraud, Waste, and Abuse Detection Platform with Snowflake Cortex AI","elements":{"quickstartArticleBody":{"dataType":"string","title":"Quickstart Article Body","value":"\u003C!-- ------------------------ --\u003E\n## Overview\n\nDuration: 5\n\n**Author:** Ravi Kumar, Partner Solutions Architect\n\nPublic sector agencies rely on \"pay and chase\" — send the payment, then try to recover fraudulent dollars after the fact. A modern FWA platform needs to do many things at once: ingest and unify claims from disparate systems, profile provider behavior against peers in real time, run ML models for anomaly detection and predictive scoring, classify fraud types with LLM explainability, detect collusion rings through graph analysis, parse clinical documents and transcribe audio for evidence, and give investigators a natural-language interface to query it all — without moving sensitive PHI/PII outside the platform boundary.\n\nSnowflake is uniquely suited for this because every one of these capabilities runs natively inside a single platform — no data egress, no external ML infrastructure, no separate graph database, no third-party LLM APIs. Dynamic Tables replace batch ETL with continuous refresh. Snowflake ML trains and scores anomaly detection and classification models in pure SQL. Cortex AI functions (AI_CLASSIFY, AI_COMPLETE, AI_PARSE_DOCUMENT, AI_TRANSCRIBE, AI_SUMMARIZE) bring LLM intelligence directly to your data. Cortex Search indexes unstructured evidence for retrieval. Cortex Agents orchestrate structured and unstructured queries behind a single natural-language interface. And Streamlit in Snowflake delivers the investigator UI — all governed by Snowflake's native RBAC, masking policies, and encryption.\n\nThis guide builds a complete, end-to-end FWA detection platform for healthcare claims. Every SQL block is copy-pastable and validated. Nothing leaves Snowflake.\n\n![FWA Platform Architecture](https://www.snowflake.com/content/dam/snowflake-site/developers/guides/build-fwa-detection-platform-cortex-ai/fwa-architecture-diagram.png?v=b2cabf14)\n\n### Why Now?\n- ML infrastructure now processes massive claim volumes in near real time at falling cost.\n- LLMs unlock explainability — AI returns reasoning behind a flag, giving investigators probable cause.\n- Fraudsters use AI too (fake records, synthetic identities). Agencies must match these tools for defense.\n\n### What You'll Need\n- Snowflake account with ACCOUNTADMIN (or roles with ML, Cortex AI, Cortex Search, Cortex Agent, and Streamlit privileges)\n- A warehouse (MEDIUM) and familiarity with SQL and basic Python\n- Cortex AI LLM functions require supported regions — check Snowflake docs for availability\n\n### What You'll Learn\n- How to build continuously refreshing provider behavior profiles with Dynamic Tables\n- How to classify fraud types with LLM explainability using Cortex AI\n- How to train anomaly detection and predictive models with Snowflake ML in pure SQL\n- How to detect fraud rings with SQL-based graph analysis\n- How to parse documents and transcribe audio with Cortex AI functions\n- How to build a Cortex Agent for natural-language investigation\n- How to deploy a Streamlit investigator application\n\n### What You'll Build\n- Unified data foundation with synthetic sample data\n- Continuously refreshing provider behavior profiles (Dynamic Tables)\n- LLM-driven fraud classification with plain-English explanations (Cortex AI)\n- Anomaly detection and predictive fraud scoring (Snowflake ML)\n- Fraud ring detection via SQL-based graph analysis\n- Document and audio analysis pipelines (Cortex AI)\n- Cortex Agent for natural-language investigation queries\n- Streamlit in Snowflake investigator application\n\n### Architecture\n\nThe platform follows four phases:\n\n| Phase | What Happens | Guide Steps |\n|-------|-------------|-------------|\n| **1. Ingest & Contextualize** | Bring in claims, enrich into risk-scored profiles | Steps 2-3 |\n| **2. Detect & Score** | LLM classification, anomaly detection, fraud rings | Steps 4-6 |\n| **3. Analyze & Evidence** | Document/audio parsing, Cortex Agent | Steps 7-8 |\n| **4. Decide & Act** | Streamlit UI, security, case management | Steps 9-11 |\n\n\u003C!-- ------------------------ --\u003E\n## Setup and Data Foundation\n\nDuration: 10\n\n### Create Infrastructure\n\n```sql\n-- Create the database and schema that hold all FWA objects\nCREATE DATABASE IF NOT EXISTS FWA_QS;\nCREATE SCHEMA IF NOT EXISTS FWA_QS.DETECTION;\nUSE DATABASE FWA_QS;\nUSE SCHEMA DETECTION;\n\n-- Warehouse for all compute (Dynamic Tables, ML training, Cortex AI calls)\nCREATE WAREHOUSE IF NOT EXISTS FWA_WH\n  WAREHOUSE_SIZE = 'MEDIUM'\n  AUTO_SUSPEND = 60     -- suspend after 60s idle to save credits\n  AUTO_RESUME = TRUE;   -- auto-resume when a query arrives\n\nUSE WAREHOUSE FWA_WH;\n\n-- Internal stages for unstructured files (PDFs, invoices, audio recordings)\n-- Snowflake-managed encryption keeps data secure at rest\nCREATE STAGE IF NOT EXISTS FWA_QS.DETECTION.DOCUMENTS\n  ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE');\nCREATE STAGE IF NOT EXISTS FWA_QS.DETECTION.AUDIO_FILES\n  ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE');\n-- Stage for the Cortex Analyst semantic model YAML (used in the Investigation Agent step)\nCREATE STAGE IF NOT EXISTS FWA_QS.DETECTION.SEMANTIC_MODELS\n  ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE');\n```\n\n### Load Sample Files from GitHub\n\nThe synthetic claim documents (PDFs), audio recordings (MP3s), and semantic model YAML live in the [companion repository](https://github.com/sfc-gh-rkumar/sfguide-fwa-detection-platform-cortex-ai). Snowflake's Git integration clones the public repo and copies the files straight into your stages, so there is nothing to download or upload by hand.\n\n```sql\n-- API integration that lets Snowflake read the public companion repo (no credentials needed)\nCREATE OR REPLACE API INTEGRATION FWA_GIT_API_INTEGRATION\n  API_PROVIDER = git_https_api\n  API_ALLOWED_PREFIXES = ('https://github.com/sfc-gh-rkumar')\n  ENABLED = TRUE;\n\n-- Clone the companion repo into Snowflake as a Git repository object\nCREATE OR REPLACE GIT REPOSITORY FWA_QS.DETECTION.FWA_SAMPLE_FILES\n  API_INTEGRATION = FWA_GIT_API_INTEGRATION\n  ORIGIN = 'https://github.com/sfc-gh-rkumar/sfguide-fwa-detection-platform-cortex-ai.git';\n\n-- Copy the sample files from the repo into the stages\nCOPY FILES INTO @FWA_QS.DETECTION.DOCUMENTS\n  FROM @FWA_QS.DETECTION.FWA_SAMPLE_FILES/branches/main/data/documents/;\nCOPY FILES INTO @FWA_QS.DETECTION.AUDIO_FILES\n  FROM @FWA_QS.DETECTION.FWA_SAMPLE_FILES/branches/main/data/audio/;\nCOPY FILES INTO @FWA_QS.DETECTION.SEMANTIC_MODELS\n  FROM @FWA_QS.DETECTION.FWA_SAMPLE_FILES/branches/main/semantic_model/;\n```\n\n\u003E **Verify:** `LIST @FWA_QS.DETECTION.DOCUMENTS;` shows 3 PDFs and `LIST @FWA_QS.DETECTION.AUDIO_FILES;` shows 2 MP3s.\n\u003E\n\u003E Prefer a manual upload? Download the files from the [companion repository](https://github.com/sfc-gh-rkumar/sfguide-fwa-detection-platform-cortex-ai) and upload them to the same stages in Snowsight (**Catalog » Database Explorer » FWA_QS » DETECTION » Stages**).\n\n### Create Base Tables\n\n```sql\n-- Providers: ADDRESS, PHONE, BANK_ACCOUNT columns enable fraud ring detection (Step 6)\nCREATE OR REPLACE TABLE FWA_QS.DETECTION.PROVIDERS (\n    PROVIDER_ID       VARCHAR(10) PRIMARY KEY,\n    PROVIDER_NAME     VARCHAR(100),\n    SPECIALTY         VARCHAR(50),\n    ADDRESS           VARCHAR(200),\n    PHONE             VARCHAR(20),\n    BANK_ACCOUNT      VARCHAR(30),\n    LICENSE_STATUS    VARCHAR(20) DEFAULT 'ACTIVE',\n    STATE             VARCHAR(2)\n);\n\n-- Medicaid/Medicare beneficiaries (patients)\nCREATE OR REPLACE TABLE FWA_QS.DETECTION.BENEFICIARIES (\n    BENEFICIARY_ID    VARCHAR(10) PRIMARY KEY,\n    FIRST_NAME        VARCHAR(50),\n    LAST_NAME         VARCHAR(50),\n    DOB               DATE,\n    STATE             VARCHAR(2),\n    ENROLLMENT_DATE   DATE\n);\n\n-- Claims: the central fact table. IS_FRAUD is NULL until an investigator confirms/rejects.\nCREATE OR REPLACE TABLE FWA_QS.DETECTION.CLAIMS (\n    CLAIM_ID          VARCHAR(10) PRIMARY KEY,\n    PROVIDER_ID       VARCHAR(10) REFERENCES FWA_QS.DETECTION.PROVIDERS(PROVIDER_ID),\n    BENEFICIARY_ID    VARCHAR(10) REFERENCES FWA_QS.DETECTION.BENEFICIARIES(BENEFICIARY_ID),\n    PROCEDURE_CODE    VARCHAR(10),\n    DIAGNOSIS_CODE    VARCHAR(10),\n    CLAIM_AMOUNT      NUMBER(12,2),\n    CLAIM_DATE        DATE,\n    PRIOR_AUTH_FLAG   BOOLEAN,\n    PLACE_OF_SERVICE  VARCHAR(50),\n    IS_FRAUD          BOOLEAN DEFAULT NULL\n);\n\n-- OIG/state exclusion and watch list entries — drives 45-point risk score component\nCREATE OR REPLACE TABLE FWA_QS.DETECTION.WATCH_LIST (\n    PROVIDER_ID       VARCHAR(10),\n    REASON            VARCHAR(200),\n    ADDED_DATE        DATE,\n    SOURCE            VARCHAR(50)\n);\n\n-- Tracks clinical documents (PDFs, invoices) uploaded to the DOCUMENTS stage\nCREATE OR REPLACE TABLE FWA_QS.DETECTION.DOCUMENT_METADATA (\n    DOC_ID            VARCHAR(10) PRIMARY KEY,\n    CLAIM_ID          VARCHAR(10),\n    FILE_NAME         VARCHAR(200),\n    DOC_TYPE          VARCHAR(50),\n    UPLOAD_DATE       DATE\n);\n\n-- Tracks audio files (hotline calls, whistleblower recordings) uploaded to AUDIO_FILES stage\nCREATE OR REPLACE TABLE FWA_QS.DETECTION.AUDIO_METADATA (\n    AUDIO_ID          VARCHAR(10) PRIMARY KEY,\n    FILE_NAME         VARCHAR(200),\n    SOURCE_TYPE       VARCHAR(50),\n    RELATED_PROVIDER  VARCHAR(10),\n    RECEIVED_DATE     DATE\n);\n```\n\n\u003C!-- ------------------------ --\u003E\n## Load Sample Data\n\nDuration: 5\n\n```sql\n-- Providers: P-1001 and P-1002 share an address (fraud ring signal)\n-- P-1002 and P-1003 share a bank account (fraud ring signal)\n-- P-1008, P-1009, P-1010 are legitimate low-billing cardiology providers\n-- that establish a realistic peer baseline for the billing ratio calculation\nINSERT INTO FWA_QS.DETECTION.PROVIDERS VALUES\n('P-1001','Dr. Alpha Medical','Cardiology','100 Main St, Austin TX','512-555-0101','ACCT-9999','ACTIVE','TX'),\n('P-1002','Beta Health Corp','Cardiology','100 Main St, Austin TX','512-555-0102','ACCT-8888','ACTIVE','TX'),\n('P-1003','Gamma Clinic','Orthopedics','200 Oak Ave, Dallas TX','214-555-0201','ACCT-8888','ACTIVE','TX'),\n('P-1004','Delta Wellness','Cardiology','300 Elm St, Houston TX','713-555-0301','ACCT-7777','ACTIVE','TX'),\n('P-1005','Epsilon Care','Orthopedics','400 Pine St, Austin TX','512-555-0401','ACCT-6666','ACTIVE','TX'),\n('P-1006','Zeta Medical Group','General Practice','500 Cedar Ln, Dallas TX','214-555-0501','ACCT-5555','ACTIVE','TX'),\n('P-1008','Theta Cardiology','Cardiology','600 Birch St, Houston TX','713-555-0601','ACCT-3333','ACTIVE','TX'),\n('P-1009','Iota Heart Center','Cardiology','700 Maple Dr, Dallas TX','214-555-0701','ACCT-2222','ACTIVE','TX'),\n('P-1010','Kappa Cardiac Care','Cardiology','800 Walnut Blvd, Austin TX','512-555-0801','ACCT-1111','ACTIVE','TX');\n\n-- Beneficiaries\nINSERT INTO FWA_QS.DETECTION.BENEFICIARIES VALUES\n('B-2001','John','Smith','1955-03-15','TX','2020-01-01'),\n('B-2002','Jane','Doe','1962-07-22','TX','2019-06-15'),\n('B-2003','Robert','Johnson','1948-11-30','TX','2021-03-01'),\n('B-2004','Maria','Garcia','1970-05-10','TX','2018-09-01'),\n('B-2005','James','Wilson','1958-01-20','TX','2022-01-15');\n\n-- Claims: P-1001 and P-1002 have suspiciously high amounts ($7K-$9.5K) and missing prior auth\n-- P-1008, P-1009, P-1010 bill normal amounts ($150-$210) — legitimate cardiology baseline\n-- C-3015 has IS_FRAUD = NULL — unconfirmed, used to demo the predictive model\nINSERT INTO FWA_QS.DETECTION.CLAIMS VALUES\n('C-3001','P-1001','B-2001','99214','I10',250.00,'2024-01-15',TRUE,'Office',FALSE),\n('C-3002','P-1001','B-2002','99215','I25',8500.00,'2024-01-16',FALSE,'Office',TRUE),\n('C-3003','P-1001','B-2003','99215','I10',9200.00,'2024-01-17',FALSE,'Office',TRUE),\n('C-3004','P-1002','B-2001','99214','M54',7800.00,'2024-01-18',FALSE,'Office',TRUE),\n('C-3005','P-1002','B-2004','99213','I10',350.00,'2024-01-19',TRUE,'Office',FALSE),\n('C-3006','P-1003','B-2003','27447','M17',4500.00,'2024-02-01',TRUE,'Hospital',FALSE),\n('C-3007','P-1003','B-2005','27447','M17',4700.00,'2024-02-05',TRUE,'Hospital',FALSE),\n('C-3008','P-1004','B-2002','99213','I10',180.00,'2024-02-10',TRUE,'Office',FALSE),\n('C-3009','P-1004','B-2004','99214','I25',220.00,'2024-02-12',TRUE,'Office',FALSE),\n('C-3010','P-1005','B-2005','29881','M23',3800.00,'2024-02-15',TRUE,'Ambulatory',FALSE),\n('C-3011','P-1006','B-2001','99213','J06',150.00,'2024-02-20',TRUE,'Office',FALSE),\n('C-3012','P-1006','B-2003','99214','J20',200.00,'2024-02-22',TRUE,'Office',FALSE),\n('C-3013','P-1001','B-2004','99215','I10',9500.00,'2024-03-01',FALSE,'Office',TRUE),\n('C-3014','P-1002','B-2005','99215','I25',8100.00,'2024-03-05',FALSE,'Office',TRUE),\n('C-3015','P-1001','B-2005','99215','I10',8800.00,'2024-03-10',FALSE,'Office',NULL),\n-- Legitimate low-billing cardiology claims (establish peer baseline)\n('C-3016','P-1008','B-2001','99213','I10',175.00,'2024-02-18',TRUE,'Office',FALSE),\n('C-3017','P-1008','B-2003','99213','I10',200.00,'2024-02-19',TRUE,'Office',FALSE),\n('C-3018','P-1008','B-2004','99214','I25',190.00,'2024-02-20',TRUE,'Office',FALSE),\n('C-3019','P-1009','B-2002','99213','I10',160.00,'2024-02-21',TRUE,'Office',FALSE),\n('C-3020','P-1009','B-2005','99214','I25',210.00,'2024-02-22',TRUE,'Office',FALSE),\n('C-3021','P-1009','B-2001','99213','I10',185.00,'2024-02-23',TRUE,'Office',FALSE),\n('C-3022','P-1010','B-2003','99213','I10',165.00,'2024-02-24',TRUE,'Office',FALSE),\n('C-3023','P-1010','B-2004','99214','I25',195.00,'2024-02-25',TRUE,'Office',FALSE),\n('C-3024','P-1010','B-2005','99213','I10',170.00,'2024-02-26',TRUE,'Office',FALSE);\n\n-- Watch list\nINSERT INTO FWA_QS.DETECTION.WATCH_LIST VALUES\n('P-1001','Unusually high billing volume flagged by OIG','2023-06-01','OIG'),\n('P-1002','Complaints from multiple beneficiaries','2023-09-15','State Medicaid');\n\n-- Document metadata: links uploaded files to claims for document-vs-claim comparison\nINSERT INTO FWA_QS.DETECTION.DOCUMENT_METADATA VALUES\n('D-5001','C-3002','claim_C3002_invoice.pdf','Invoice','2024-01-20'),\n('D-5002','C-3003','claim_C3003_clinical_notes.pdf','Clinical Notes','2024-01-21'),\n('D-5003','C-3013','claim_C3013_procedure_report.pdf','Procedure Report','2024-03-05');\n\n-- Audio metadata: links uploaded audio files (hotline calls, whistleblower recordings)\nINSERT INTO FWA_QS.DETECTION.AUDIO_METADATA VALUES\n('A-6001','hotline_call_20240201.mp3','Fraud Hotline','P-1001','2024-02-01'),\n('A-6002','whistleblower_report_20240315.mp3','Whistleblower','P-1002','2024-03-15');\n```\n\n\u003E **Verify:** `SELECT COUNT(*) FROM FWA_QS.DETECTION.CLAIMS;` — expect 24 rows.\n\n\u003C!-- ------------------------ --\u003E\n## Provider Behavior Profiles\n\nDuration: 5\n\nDynamic Tables refresh automatically as new claims arrive — no batch jobs, no ETL scheduler. This profile compares each provider against specialty peers and incorporates watch list status into a composite risk score (0-100).\n\n```sql\n-- Dynamic Table: auto-refreshes within 1 hour as new claims arrive\n-- Compares each provider's billing against specialty peers and scores risk 0-100\nCREATE OR REPLACE DYNAMIC TABLE FWA_QS.DETECTION.PROVIDER_PROFILES\n  TARGET_LAG = '1 hour'   -- Snowflake refreshes automatically within this lag\n  WAREHOUSE = FWA_WH      -- compute used for incremental refreshes\nAS\nSELECT\n    p.PROVIDER_ID,\n    p.PROVIDER_NAME,\n    p.SPECIALTY,\n    COUNT(c.CLAIM_ID)                                          AS TOTAL_CLAIMS,\n    ROUND(AVG(c.CLAIM_AMOUNT), 2)                              AS AVG_CLAIM_AMOUNT,\n    ROUND(AVG(c.CLAIM_AMOUNT) / NULLIF(\n        AVG(AVG(c.CLAIM_AMOUNT)) OVER (PARTITION BY p.SPECIALTY), 0\n    ), 2)                                                      AS PEER_BILLING_RATIO,\n    ROUND(SUM(CASE WHEN c.PRIOR_AUTH_FLAG = FALSE THEN 1 ELSE 0 END)::FLOAT\n        / NULLIF(COUNT(c.CLAIM_ID), 0), 2)                    AS PRIOR_AUTH_GAP_RATE,\n    MAX(CASE WHEN w.PROVIDER_ID IS NOT NULL THEN 1 ELSE 0 END) AS ON_WATCH_LIST,\n    -- Composite risk score: peer billing (30) + auth gaps (25) + watch list (45)\n    (\n      CASE WHEN AVG(c.CLAIM_AMOUNT) / NULLIF(\n          AVG(AVG(c.CLAIM_AMOUNT)) OVER (PARTITION BY p.SPECIALTY), 0\n      ) \u003E 3 THEN 30 ELSE 0 END\n      + CASE WHEN SUM(CASE WHEN c.PRIOR_AUTH_FLAG = FALSE THEN 1 ELSE 0 END)::FLOAT\n            / NULLIF(COUNT(c.CLAIM_ID), 0) \u003E 0.3 THEN 25 ELSE 0 END\n      + CASE WHEN MAX(CASE WHEN w.PROVIDER_ID IS NOT NULL THEN 1 ELSE 0 END) = 1\n            THEN 45 ELSE 0 END\n    )                                                          AS RISK_SCORE\nFROM FWA_QS.DETECTION.PROVIDERS p\nJOIN FWA_QS.DETECTION.CLAIMS c ON p.PROVIDER_ID = c.PROVIDER_ID\nLEFT JOIN FWA_QS.DETECTION.WATCH_LIST w ON p.PROVIDER_ID = w.PROVIDER_ID\nGROUP BY p.PROVIDER_ID, p.PROVIDER_NAME, p.SPECIALTY;\n```\n\n\u003E **Verify:** P-1001 scores 100 (30 peer billing + 25 auth gaps + 45 watch list), P-1002 scores 70 (25 + 45).\n```sql\nSELECT PROVIDER_ID, PROVIDER_NAME, PEER_BILLING_RATIO, RISK_SCORE\nFROM FWA_QS.DETECTION.PROVIDER_PROFILES\nORDER BY RISK_SCORE DESC;\n```\n\n\u003C!-- ------------------------ --\u003E\n## Fraud Classification\n\nDuration: 10\n\nMaterialize LLM-driven classification so downstream services can index the results. Each claim is classified into a fraud type with a plain-English explanation.\n\n```sql\n-- Materialize LLM results into a table so Cortex Search can index them\n-- AI_CLASSIFY: assigns each claim to a fraud category\n-- AI_COMPLETE: generates a plain-English explanation for investigators\nCREATE OR REPLACE TABLE FWA_QS.DETECTION.FRAUD_CLASSIFICATIONS AS\nSELECT\n    c.CLAIM_ID,\n    c.PROVIDER_ID,\n    c.CLAIM_AMOUNT,\n    c.PROCEDURE_CODE,\n    p.SPECIALTY,\n    pp.RISK_SCORE,\n    pp.PEER_BILLING_RATIO,\n    AI_CLASSIFY(\n        'Healthcare claim — Procedure: ' || c.PROCEDURE_CODE\n            || ', Amount: $' || c.CLAIM_AMOUNT::VARCHAR\n            || ', Specialty: ' || p.SPECIALTY\n            || ', Provider risk score: ' || pp.RISK_SCORE::VARCHAR,\n        ['Upcoding','Phantom Billing','Unbundling','Provider Ring','Identity Theft','Legitimate']\n    ):\"labels\"[0]::VARCHAR                                     AS FRAUD_TYPE,\n    AI_COMPLETE('llama3.3-70b',\n        'You are a healthcare fraud analyst. In 2 sentences, explain why this claim '\n        || 'may be fraudulent. Procedure: ' || c.PROCEDURE_CODE\n        || ', Amount: $' || c.CLAIM_AMOUNT::VARCHAR\n        || ', Peer billing ratio: ' || pp.PEER_BILLING_RATIO::VARCHAR || 'x'\n        || ', Prior auth gap rate: ' || pp.PRIOR_AUTH_GAP_RATE::VARCHAR\n        || ', On watch list: ' || pp.ON_WATCH_LIST::VARCHAR\n    )::VARCHAR                                                 AS EXPLANATION\nFROM FWA_QS.DETECTION.CLAIMS c\nJOIN FWA_QS.DETECTION.PROVIDERS p ON c.PROVIDER_ID = p.PROVIDER_ID\nJOIN FWA_QS.DETECTION.PROVIDER_PROFILES pp ON c.PROVIDER_ID = pp.PROVIDER_ID\nWHERE pp.RISK_SCORE \u003E= 25;\n```\n\nOnly claims from providers with RISK_SCORE \u003E= 25 are sent through LLM classification, controlling cost at scale.\n\n\u003E **Verify:**\n```sql\nSELECT CLAIM_ID, FRAUD_TYPE, LEFT(EXPLANATION, 80) AS EXPLANATION_PREVIEW\nFROM FWA_QS.DETECTION.FRAUD_CLASSIFICATIONS;\n```\n\n\u003C!-- ------------------------ --\u003E\n## Anomaly Detection & Scoring\n\nDuration: 10\n\nPure SQL — no Python, no notebooks, no external tools.\n\n### Anomaly Detection\n\n```sql\n-- Train an unsupervised anomaly model on claims before March 2024\n-- The model learns normal billing patterns from this baseline period\n-- LABEL_COLNAME =\u003E '' means unsupervised (no pre-labeled anomalies)\nCREATE OR REPLACE SNOWFLAKE.ML.ANOMALY_DETECTION FWA_QS.DETECTION.CLAIMS_ANOMALY_MODEL(\n    INPUT_DATA =\u003E SYSTEM$QUERY_REFERENCE(\n        'SELECT CLAIM_DATE, CLAIM_AMOUNT FROM FWA_QS.DETECTION.CLAIMS WHERE CLAIM_DATE \u003C ''2024-03-01'''\n    ),\n    TIMESTAMP_COLNAME =\u003E 'CLAIM_DATE',\n    TARGET_COLNAME =\u003E 'CLAIM_AMOUNT',\n    LABEL_COLNAME =\u003E ''\n);\n\n-- Run inference on newer claims (must be after training period)\n-- Returns IS_ANOMALY flag, prediction interval, and distance from expected range\nCALL FWA_QS.DETECTION.CLAIMS_ANOMALY_MODEL!DETECT_ANOMALIES(\n    INPUT_DATA =\u003E SYSTEM$QUERY_REFERENCE(\n        'SELECT CLAIM_DATE, CLAIM_AMOUNT FROM FWA_QS.DETECTION.CLAIMS WHERE CLAIM_DATE \u003E= ''2024-03-01'''\n    ),\n    TIMESTAMP_COLNAME =\u003E 'CLAIM_DATE',\n    TARGET_COLNAME =\u003E 'CLAIM_AMOUNT'\n);\n```\n\n### Predictive Fraud Scoring\n\n```sql\n-- Feature view: joins claim-level data with provider profile metrics\n-- Only includes claims where IS_FRAUD has been confirmed (not NULL)\nCREATE OR REPLACE VIEW FWA_QS.DETECTION.TRAINING_FEATURES_V AS\nSELECT\n    c.CLAIM_ID,\n    c.CLAIM_AMOUNT,\n    c.PRIOR_AUTH_FLAG,\n    pp.PEER_BILLING_RATIO,\n    pp.PRIOR_AUTH_GAP_RATE,\n    pp.RISK_SCORE,\n    pp.ON_WATCH_LIST,\n    pp.TOTAL_CLAIMS       AS PROVIDER_TOTAL_CLAIMS,\n    c.IS_FRAUD\nFROM FWA_QS.DETECTION.CLAIMS c\nJOIN FWA_QS.DETECTION.PROVIDER_PROFILES pp ON c.PROVIDER_ID = pp.PROVIDER_ID\nWHERE c.IS_FRAUD IS NOT NULL;\n\n-- Train a gradient-boosted classifier to predict fraud probability\n-- Snowflake ML automatically handles train/test split, hyperparameters, and feature importance\nCREATE OR REPLACE SNOWFLAKE.ML.CLASSIFICATION FWA_QS.DETECTION.FRAUD_PREDICTION_MODEL(\n    INPUT_DATA =\u003E SYSTEM$REFERENCE('VIEW', 'FWA_QS.DETECTION.TRAINING_FEATURES_V'),\n    TARGET_COLNAME =\u003E 'IS_FRAUD'\n);\n```\n\n\u003C!-- ------------------------ --\u003E\n## Fraud Ring Detection\n\nDuration: 5\n\nBuild edges from shared provider attributes and cluster them. No separate graph database required.\n\n### Build Edges\n\n```sql\n-- Build an edge list: two providers are \"connected\" if they share an address,\n-- bank account, or phone number. Self-joins with ID \u003C ID avoid duplicates.\nCREATE OR REPLACE TABLE FWA_QS.DETECTION.PROVIDER_EDGES AS\nSELECT a.PROVIDER_ID AS PROVIDER_A, b.PROVIDER_ID AS PROVIDER_B,\n       'SHARED_ADDRESS' AS CONNECTION_TYPE\nFROM FWA_QS.DETECTION.PROVIDERS a\nJOIN FWA_QS.DETECTION.PROVIDERS b\n    ON a.ADDRESS = b.ADDRESS AND a.PROVIDER_ID \u003C b.PROVIDER_ID\nUNION ALL\nSELECT a.PROVIDER_ID, b.PROVIDER_ID, 'SHARED_BANK_ACCOUNT'\nFROM FWA_QS.DETECTION.PROVIDERS a\nJOIN FWA_QS.DETECTION.PROVIDERS b\n    ON a.BANK_ACCOUNT = b.BANK_ACCOUNT AND a.PROVIDER_ID \u003C b.PROVIDER_ID\nUNION ALL\nSELECT a.PROVIDER_ID, b.PROVIDER_ID, 'SHARED_PHONE'\nFROM FWA_QS.DETECTION.PROVIDERS a\nJOIN FWA_QS.DETECTION.PROVIDERS b\n    ON a.PHONE = b.PHONE AND a.PROVIDER_ID \u003C b.PROVIDER_ID;\n```\n\n### Cluster Into Rings\n\n```sql\n-- Find connected components: assign each provider the minimum reachable PROVIDER_ID\n-- Uses a multi-hop approach that handles chains (A-B via address, B-C via bank account)\nCREATE OR REPLACE TABLE FWA_QS.DETECTION.FRAUD_RINGS AS\nWITH\n-- Make edges bidirectional so we can traverse in both directions\nedges_both_ways AS (\n    SELECT PROVIDER_A AS P1, PROVIDER_B AS P2 FROM FWA_QS.DETECTION.PROVIDER_EDGES\n    UNION ALL\n    SELECT PROVIDER_B, PROVIDER_A FROM FWA_QS.DETECTION.PROVIDER_EDGES\n),\n-- Hop 1: for each provider, find their minimum direct neighbor\nhop1 AS (\n    SELECT P1 AS PROVIDER_ID, MIN(P2) AS MIN_NEIGHBOR\n    FROM edges_both_ways\n    GROUP BY P1\n),\n-- Hop 2: follow the neighbor's minimum neighbor (handles A→B→C chains)\nhop2 AS (\n    SELECT h1.PROVIDER_ID,\n           LEAST(h1.MIN_NEIGHBOR, COALESCE(MIN(h2.MIN_NEIGHBOR), h1.MIN_NEIGHBOR)) AS CLUSTER_ID\n    FROM hop1 h1\n    LEFT JOIN hop1 h2 ON h1.MIN_NEIGHBOR = h2.PROVIDER_ID\n    GROUP BY h1.PROVIDER_ID, h1.MIN_NEIGHBOR\n)\nSELECT PROVIDER_ID, MIN(CLUSTER_ID) AS CLUSTER_ID\nFROM hop2\nGROUP BY PROVIDER_ID;\n```\n\n\u003E **Verify:** P-1001, P-1002, P-1003 share a cluster (address + bank account links).\n```sql\nSELECT * FROM FWA_QS.DETECTION.FRAUD_RINGS;\n```\n\n\u003C!-- ------------------------ --\u003E\n## Document & Audio Analysis\n\nDuration: 5\n\n### Document Analysis\n\nParse each claim document once and store the text. Downstream steps (mismatch analysis, the Cortex Search service, and the Streamlit app) read the stored text instead of re-parsing the PDFs.\n\n```sql\n-- AI_PARSE_DOCUMENT: extracts text (with OCR) from the PDFs on the stage\nCREATE OR REPLACE TABLE FWA_QS.DETECTION.DOCUMENT_TEXT AS\nSELECT\n    d.DOC_ID,\n    d.CLAIM_ID,\n    d.FILE_NAME,\n    d.DOC_TYPE,\n    AI_PARSE_DOCUMENT(TO_FILE('@FWA_QS.DETECTION.DOCUMENTS', d.FILE_NAME)):content::VARCHAR AS EXTRACTED_TEXT\nFROM FWA_QS.DETECTION.DOCUMENT_METADATA d;\n\n-- AI_COMPLETE: compares each document against its claim and lists mismatches\nCREATE OR REPLACE TABLE FWA_QS.DETECTION.DOCUMENT_FINDINGS AS\nSELECT\n    t.DOC_ID,\n    t.CLAIM_ID,\n    t.DOC_TYPE,\n    AI_COMPLETE('llama3.3-70b',\n        'You are a healthcare fraud auditor. Compare this clinical document to the claim details '\n        || 'and list any mismatches. Document text: ' || t.EXTRACTED_TEXT\n        || ' | Claim: procedure=' || c.PROCEDURE_CODE\n        || ', diagnosis=' || c.DIAGNOSIS_CODE\n        || ', amount=$' || c.CLAIM_AMOUNT::VARCHAR\n    )::VARCHAR AS MISMATCH_ANALYSIS\nFROM FWA_QS.DETECTION.DOCUMENT_TEXT t\nJOIN FWA_QS.DETECTION.CLAIMS c ON t.CLAIM_ID = c.CLAIM_ID;\n```\n\n\u003E **Verify:** `SELECT DOC_ID, MISMATCH_ANALYSIS FROM FWA_QS.DETECTION.DOCUMENT_FINDINGS;` The sample documents are written to conflict with their claims: C-3002 bills a high-complexity visit (99215) for a 12-minute follow-up, C-3003's own note says the visit was low complexity, and C-3013 documents a different procedure and diagnosis with no patient check-in.\n\n### Audio Analysis\n\nTranscribe each hotline call and whistleblower report once and store the transcript, then summarize it.\n\n```sql\n-- AI_TRANSCRIBE: converts speech to text directly from audio files on the stage\n-- It returns an object; the :text field holds the transcript\nCREATE OR REPLACE TABLE FWA_QS.DETECTION.AUDIO_TRANSCRIPTS AS\nSELECT\n    a.AUDIO_ID,\n    a.FILE_NAME,\n    a.SOURCE_TYPE,\n    a.RELATED_PROVIDER,\n    a.RECEIVED_DATE,\n    AI_TRANSCRIBE(TO_FILE('@FWA_QS.DETECTION.AUDIO_FILES', a.FILE_NAME)):text::VARCHAR AS TRANSCRIPTION\nFROM FWA_QS.DETECTION.AUDIO_METADATA a;\n\n-- AI_SUMMARIZE: condenses each transcript into key findings\nSELECT\n    AUDIO_ID,\n    SOURCE_TYPE,\n    RELATED_PROVIDER,\n    AI_SUMMARIZE(TRANSCRIPTION) AS SUMMARY\nFROM FWA_QS.DETECTION.AUDIO_TRANSCRIPTS;\n```\n\n\u003E **Verify:** The hotline call (A-6001) reports that P-1001 bills 10-minute visits as 99215 and shares an address with Beta Health Corp. The whistleblower report (A-6002) reports that P-1002 and Gamma Clinic share bank account 8888.\n\n\u003E **In production**, Snowflake Cortex AI provides a full suite of functions for audio and multilingual workflows: AI_TRANSCRIBE, AI_TRANSLATE, AI_SUMMARIZE, AI_CLASSIFY, AI_EXTRACT, AI_COMPLETE, AI_SENTIMENT, AI_PARSE_DOCUMENT. These run inside Snowflake — no external API calls, no data movement. Combine them to build end-to-end pipelines, e.g. AI_TRANSCRIBE → AI_TRANSLATE → AI_SUMMARIZE for multilingual hotline calls.\n\n\u003C!-- ------------------------ --\u003E\n## Investigation Agent\n\nDuration: 15\n\n### Cortex Search Services\n\nCreate search indexes over fraud explanations, documents, audio, and fraud ring clusters:\n\n```sql\n-- Search service over LLM-generated fraud explanations\n-- Investigators can search by fraud type, provider, or free text\nCREATE OR REPLACE CORTEX SEARCH SERVICE FWA_QS.DETECTION.FRAUD_EXPLANATIONS_SEARCH\n  ON EXPLANATION\n  WAREHOUSE = FWA_WH\n  TARGET_LAG = '1 hour'\nAS (\n    SELECT CLAIM_ID, PROVIDER_ID, FRAUD_TYPE, EXPLANATION, CLAIM_AMOUNT, RISK_SCORE\n    FROM FWA_QS.DETECTION.FRAUD_CLASSIFICATIONS\n);\n\n-- Search service over the parsed document text stored in the previous step\n-- (Search services index stored text; they cannot call AI_PARSE_DOCUMENT themselves)\nCREATE OR REPLACE CORTEX SEARCH SERVICE FWA_QS.DETECTION.DOCUMENT_SEARCH\n  ON EXTRACTED_TEXT\n  ATTRIBUTES CLAIM_ID, DOC_TYPE\n  WAREHOUSE = FWA_WH\n  TARGET_LAG = '1 hour'\nAS (\n    SELECT DOC_ID, CLAIM_ID, FILE_NAME, DOC_TYPE, EXTRACTED_TEXT\n    FROM FWA_QS.DETECTION.DOCUMENT_TEXT\n);\n\n-- Search service over the stored audio transcripts (hotline calls, whistleblower reports)\nCREATE OR REPLACE CORTEX SEARCH SERVICE FWA_QS.DETECTION.AUDIO_SEARCH\n  ON TRANSCRIPTION\n  ATTRIBUTES RELATED_PROVIDER, SOURCE_TYPE\n  WAREHOUSE = FWA_WH\n  TARGET_LAG = '1 hour'\nAS (\n    SELECT AUDIO_ID, FILE_NAME, SOURCE_TYPE, RELATED_PROVIDER, TRANSCRIPTION\n    FROM FWA_QS.DETECTION.AUDIO_TRANSCRIPTS\n);\n\n-- Search service over fraud ring clusters — find providers by ring membership\nCREATE OR REPLACE CORTEX SEARCH SERVICE FWA_QS.DETECTION.CLUSTER_SEARCH\n  ON CLUSTER_DETAIL\n  WAREHOUSE = FWA_WH\n  TARGET_LAG = '1 hour'\nAS (\n    SELECT\n        fr.CLUSTER_ID,\n        fr.PROVIDER_ID,\n        p.PROVIDER_NAME,\n        pp.RISK_SCORE,\n        'Cluster ' || fr.CLUSTER_ID || ': ' || p.PROVIDER_NAME\n            || ' (risk=' || pp.RISK_SCORE::VARCHAR || ')' AS CLUSTER_DETAIL\n    FROM FWA_QS.DETECTION.FRAUD_RINGS fr\n    JOIN FWA_QS.DETECTION.PROVIDERS p ON fr.PROVIDER_ID = p.PROVIDER_ID\n    JOIN FWA_QS.DETECTION.PROVIDER_PROFILES pp ON fr.PROVIDER_ID = pp.PROVIDER_ID\n);\n```\n\n### Semantic Model\n\nThe semantic model was copied to `@FWA_QS.DETECTION.SEMANTIC_MODELS` in the setup step. It is shown here for reference:\n\n```yaml\n# fwa_semantic_model.yaml\n# NOTE: base_table must use nested database/schema/table format\n# All dimensions require data_type; use facts (not measures) for numeric columns\nname: FWA_Investigation_Model\ntables:\n  - name: CLAIMS\n    base_table:\n      database: FWA_QS\n      schema: DETECTION\n      table: CLAIMS\n    dimensions:\n      - name: CLAIM_ID\n        expr: CLAIM_ID\n        data_type: TEXT\n      - name: PROVIDER_ID\n        expr: PROVIDER_ID\n        data_type: TEXT\n      - name: BENEFICIARY_ID\n        expr: BENEFICIARY_ID\n        data_type: TEXT\n      - name: PROCEDURE_CODE\n        expr: PROCEDURE_CODE\n        data_type: TEXT\n    time_dimensions:\n      - name: CLAIM_DATE\n        expr: CLAIM_DATE\n        data_type: DATE\n    facts:\n      - name: CLAIM_AMOUNT\n        expr: CLAIM_AMOUNT\n        data_type: NUMBER\n\n  - name: PROVIDER_PROFILES\n    base_table:\n      database: FWA_QS\n      schema: DETECTION\n      table: PROVIDER_PROFILES\n    dimensions:\n      - name: PROVIDER_ID\n        expr: PROVIDER_ID\n        data_type: TEXT\n      - name: PROVIDER_NAME\n        expr: PROVIDER_NAME\n        data_type: TEXT\n      - name: SPECIALTY\n        expr: SPECIALTY\n        data_type: TEXT\n    facts:\n      - name: RISK_SCORE\n        expr: RISK_SCORE\n        data_type: NUMBER\n      - name: AVG_CLAIM_AMOUNT\n        expr: AVG_CLAIM_AMOUNT\n        data_type: NUMBER\n      - name: TOTAL_CLAIMS\n        expr: TOTAL_CLAIMS\n        data_type: NUMBER\n\n  - name: FRAUD_CLASSIFICATIONS\n    base_table:\n      database: FWA_QS\n      schema: DETECTION\n      table: FRAUD_CLASSIFICATIONS\n    dimensions:\n      - name: CLAIM_ID\n        expr: CLAIM_ID\n        data_type: TEXT\n      - name: FRAUD_TYPE\n        expr: FRAUD_TYPE\n        data_type: TEXT\n    facts:\n      - name: CLAIM_AMOUNT\n        expr: CLAIM_AMOUNT\n        data_type: NUMBER\n      - name: RISK_SCORE\n        expr: RISK_SCORE\n        data_type: NUMBER\n```\n\n### Create Analyst Tool and Agent\n\n```sql\n-- Create a Cortex Agent using CREATE AGENT with a YAML specification\n-- The agent orchestrates: an Analyst tool (structured SQL via semantic model)\n-- and Cortex Search services (unstructured text search)\n-- execution_environment specifies the warehouse for running analyst SQL queries\nCREATE OR REPLACE AGENT FWA_QS.DETECTION.INVESTIGATION_AGENT\n  FROM SPECIFICATION\n  $$\n  tools:\n    - tool_spec:\n        type: \"cortex_analyst_text_to_sql\"\n        name: \"FWA_ANALYST\"\n        description: \"Answers structured SQL questions about claims, providers, risk scores, and fraud classifications\"\n    - tool_spec:\n        type: \"cortex_search\"\n        name: \"FRAUD_EXPLANATIONS\"\n        description: \"Searches LLM-generated fraud explanations for claims\"\n    - tool_spec:\n        type: \"cortex_search\"\n        name: \"CLUSTER_SEARCH\"\n        description: \"Searches fraud ring cluster details and connected providers\"\n    - tool_spec:\n        type: \"cortex_search\"\n        name: \"DOCUMENT_SEARCH\"\n        description: \"Searches parsed claim documents: invoices, clinical notes, and procedure reports\"\n    - tool_spec:\n        type: \"cortex_search\"\n        name: \"AUDIO_SEARCH\"\n        description: \"Searches transcripts of fraud hotline calls and whistleblower reports\"\n\n  tool_resources:\n    FWA_ANALYST:\n      semantic_model_file: \"@FWA_QS.DETECTION.SEMANTIC_MODELS/fwa_semantic_model.yaml\"\n      execution_environment:\n        type: \"warehouse\"\n        warehouse: \"FWA_WH\"\n    FRAUD_EXPLANATIONS:\n      search_service: \"FWA_QS.DETECTION.FRAUD_EXPLANATIONS_SEARCH\"\n    CLUSTER_SEARCH:\n      search_service: \"FWA_QS.DETECTION.CLUSTER_SEARCH\"\n    DOCUMENT_SEARCH:\n      search_service: \"FWA_QS.DETECTION.DOCUMENT_SEARCH\"\n    AUDIO_SEARCH:\n      search_service: \"FWA_QS.DETECTION.AUDIO_SEARCH\"\n  $$;\n```\n\n### Test the Agent\n\n```sql\n-- Test 1: routes to analyst tool (structured SQL query against profiles + classifications)\n-- DATA_AGENT_RUN takes the agent name, a JSON messages payload, and TRUE to wait for completion\nSELECT SNOWFLAKE.CORTEX.DATA_AGENT_RUN(\n    'FWA_QS.DETECTION.INVESTIGATION_AGENT',\n    $${\"messages\": [{\"role\": \"user\", \"content\": [{\"type\": \"text\", \"text\": \"Which providers have a risk score above 50 and what fraud types are they flagged for?\"}]}]}$$,\n    TRUE\n);\n\n-- Test 2: routes to cluster search service (unstructured ring data)\nSELECT SNOWFLAKE.CORTEX.DATA_AGENT_RUN(\n    'FWA_QS.DETECTION.INVESTIGATION_AGENT',\n    $${\"messages\": [{\"role\": \"user\", \"content\": [{\"type\": \"text\", \"text\": \"Show me fraud ring clusters and explain why cluster P-1001 was flagged.\"}]}]}$$,\n    TRUE\n);\n\n-- Test 3: routes to the audio search service (hotline and whistleblower transcripts)\nSELECT SNOWFLAKE.CORTEX.DATA_AGENT_RUN(\n    'FWA_QS.DETECTION.INVESTIGATION_AGENT',\n    $${\"messages\": [{\"role\": \"user\", \"content\": [{\"type\": \"text\", \"text\": \"Summarize any whistleblower or hotline reports that mention a shared bank account.\"}]}]}$$,\n    TRUE\n);\n```\n\n\u003C!-- ------------------------ --\u003E\n## Streamlit Application\n\nDuration: 10\n\nCreate a Streamlit in Snowflake app. Create a new Streamlit app in Snowsight (Projects \u003E Streamlit) and paste the code below.\n\n### environment.yml\n\n```yaml\nname: fwa_app\nchannels:\n  - snowflake\ndependencies:\n  - snowflake-snowpark-python\n  - streamlit\n```\n\n### app.py\n\n```python\nimport streamlit as st\nfrom snowflake.snowpark.context import get_active_session\n\nsession = get_active_session()\n\nst.set_page_config(page_title=\"FWA Investigation Platform\", layout=\"wide\")\nst.title(\"Fraud, Waste & Abuse Investigation Platform\")\n\ntab1, tab2, tab3, tab4, tab5, tab6 = st.tabs([\n    \"Provider Profiles\", \"Fraud Classifications\", \"Anomaly Detection\",\n    \"Fraud Rings\", \"Document & Audio\", \"Investigation Agent\"\n])\n\n# --- Tab 1: Provider Profiles ---\nwith tab1:\n    st.header(\"Provider Behavior Profiles\")\n    risk_threshold = st.slider(\"Minimum Risk Score\", 0, 100, 25)\n    profiles = session.sql(f\"\"\"\n        SELECT PROVIDER_ID, PROVIDER_NAME, SPECIALTY, TOTAL_CLAIMS,\n               AVG_CLAIM_AMOUNT, PEER_BILLING_RATIO, PRIOR_AUTH_GAP_RATE,\n               ON_WATCH_LIST, RISK_SCORE\n        FROM FWA_QS.DETECTION.PROVIDER_PROFILES\n        WHERE RISK_SCORE \u003E= {risk_threshold}\n        ORDER BY RISK_SCORE DESC\n    \"\"\").to_pandas()\n    st.dataframe(profiles, use_container_width=True)\n\n# --- Tab 2: Fraud Classifications ---\nwith tab2:\n    st.header(\"LLM Fraud Classifications\")\n    classifications = session.sql(\"\"\"\n        SELECT CLAIM_ID, PROVIDER_ID, CLAIM_AMOUNT, FRAUD_TYPE,\n               LEFT(EXPLANATION, 300) AS EXPLANATION, RISK_SCORE\n        FROM FWA_QS.DETECTION.FRAUD_CLASSIFICATIONS\n        ORDER BY RISK_SCORE DESC\n    \"\"\").to_pandas()\n    fraud_filter = st.multiselect(\"Filter by Fraud Type\",\n        classifications[\"FRAUD_TYPE\"].unique().tolist(),\n        default=classifications[\"FRAUD_TYPE\"].unique().tolist())\n    st.dataframe(\n        classifications[classifications[\"FRAUD_TYPE\"].isin(fraud_filter)],\n        use_container_width=True\n    )\n\n# --- Tab 3: Anomaly Detection ---\nwith tab3:\n    st.header(\"Claim Amount Anomalies\")\n    st.info(\"Anomaly detection scores claims from March 2024 onward against the pre-March baseline.\")\n    try:\n        anomalies = session.sql(\"\"\"\n            SELECT * FROM TABLE(FWA_QS.DETECTION.CLAIMS_ANOMALY_MODEL!DETECT_ANOMALIES(\n                INPUT_DATA =\u003E SYSTEM$QUERY_REFERENCE(\n                    'SELECT CLAIM_DATE, CLAIM_AMOUNT FROM FWA_QS.DETECTION.CLAIMS WHERE CLAIM_DATE \u003E= ''2024-03-01'''\n                ),\n                TIMESTAMP_COLNAME =\u003E 'CLAIM_DATE',\n                TARGET_COLNAME =\u003E 'CLAIM_AMOUNT'\n            ))\n            ORDER BY TS DESC\n        \"\"\").to_pandas()\n        st.dataframe(anomalies, use_container_width=True)\n    except Exception as e:\n        st.error(f\"Anomaly detection error: {e}\")\n\n# --- Tab 4: Fraud Rings ---\nwith tab4:\n    st.header(\"Fraud Ring Clusters\")\n    rings = session.sql(\"\"\"\n        SELECT fr.CLUSTER_ID, fr.PROVIDER_ID, p.PROVIDER_NAME,\n               p.ADDRESS, p.BANK_ACCOUNT, pp.RISK_SCORE\n        FROM FWA_QS.DETECTION.FRAUD_RINGS fr\n        JOIN FWA_QS.DETECTION.PROVIDERS p ON fr.PROVIDER_ID = p.PROVIDER_ID\n        JOIN FWA_QS.DETECTION.PROVIDER_PROFILES pp ON fr.PROVIDER_ID = pp.PROVIDER_ID\n        ORDER BY fr.CLUSTER_ID, pp.RISK_SCORE DESC\n    \"\"\").to_pandas()\n    st.dataframe(rings, use_container_width=True)\n\n    edges = session.sql(\"\"\"\n        SELECT PROVIDER_A, PROVIDER_B, CONNECTION_TYPE\n        FROM FWA_QS.DETECTION.PROVIDER_EDGES\n    \"\"\").to_pandas()\n    st.subheader(\"Connection Edges\")\n    st.dataframe(edges, use_container_width=True)\n\n# --- Tab 5: Document & Audio ---\nwith tab5:\n    st.header(\"Document & Audio Analysis\")\n    st.subheader(\"Document vs. Claim Mismatches\")\n    findings = session.sql(\"\"\"\n        SELECT DOC_ID, CLAIM_ID, DOC_TYPE, MISMATCH_ANALYSIS\n        FROM FWA_QS.DETECTION.DOCUMENT_FINDINGS\n        ORDER BY DOC_ID\n    \"\"\").to_pandas()\n    for _, row in findings.iterrows():\n        with st.expander(f\"{row['DOC_ID']} | Claim {row['CLAIM_ID']} | {row['DOC_TYPE']}\"):\n            st.markdown(row[\"MISMATCH_ANALYSIS\"])\n    st.subheader(\"Hotline and Whistleblower Transcripts\")\n    transcripts = session.sql(\"\"\"\n        SELECT AUDIO_ID, SOURCE_TYPE, RELATED_PROVIDER, RECEIVED_DATE, TRANSCRIPTION\n        FROM FWA_QS.DETECTION.AUDIO_TRANSCRIPTS\n        ORDER BY RECEIVED_DATE\n    \"\"\").to_pandas()\n    st.dataframe(transcripts, use_container_width=True)\n\n# --- Tab 6: Investigation Agent ---\nwith tab6:\n    st.header(\"Ask the Investigation Agent\")\n    user_question = st.text_input(\"Ask a question about claims, providers, fraud rings, or documents:\")\n    if user_question:\n        with st.spinner(\"Agent is investigating...\"):\n            import json\n            escaped_q = user_question.replace('\"', '\\\\\"')\n            result = session.sql(f\"\"\"\n                SELECT SNOWFLAKE.CORTEX.DATA_AGENT_RUN(\n                    'FWA_QS.DETECTION.INVESTIGATION_AGENT',\n                    $${{\"messages\": [{{\"role\": \"user\", \"content\": [{{\"type\": \"text\", \"text\": \"{escaped_q}\"}}]}}]}}$$,\n                    TRUE\n                ) AS RESPONSE\n            \"\"\").to_pandas()\n            resp = json.loads(result[\"RESPONSE\"].iloc[0])\n            for item in resp.get(\"content\", []):\n                if item.get(\"type\") == \"text\":\n                    st.markdown(item[\"text\"])\n```\n\n\u003C!-- ------------------------ --\u003E\n## Security & Access Control\n\nDuration: 5\n\n```sql\n-- Least-privilege roles: avoid running production workloads as ACCOUNTADMIN\nCREATE ROLE IF NOT EXISTS FWA_ADMIN;          -- manages the platform\nCREATE ROLE IF NOT EXISTS FWA_INVESTIGATOR;   -- reviews and acts on flagged claims\n\n-- FWA_ADMIN: full read/write on all FWA objects\nGRANT USAGE ON DATABASE FWA_QS TO ROLE FWA_ADMIN;\nGRANT USAGE ON SCHEMA FWA_QS.DETECTION TO ROLE FWA_ADMIN;\nGRANT ALL ON ALL TABLES IN SCHEMA FWA_QS.DETECTION TO ROLE FWA_ADMIN;\nGRANT USAGE ON WAREHOUSE FWA_WH TO ROLE FWA_ADMIN;\n\n-- FWA_INVESTIGATOR: read-only on results, agent access\nGRANT USAGE ON DATABASE FWA_QS TO ROLE FWA_INVESTIGATOR;\nGRANT USAGE ON SCHEMA FWA_QS.DETECTION TO ROLE FWA_INVESTIGATOR;\nGRANT SELECT ON FWA_QS.DETECTION.PROVIDER_PROFILES TO ROLE FWA_INVESTIGATOR;\nGRANT SELECT ON FWA_QS.DETECTION.FRAUD_CLASSIFICATIONS TO ROLE FWA_INVESTIGATOR;\nGRANT SELECT ON FWA_QS.DETECTION.FRAUD_RINGS TO ROLE FWA_INVESTIGATOR;\nGRANT USAGE ON WAREHOUSE FWA_WH TO ROLE FWA_INVESTIGATOR;\n\n-- Dynamic data masking: protects PHI/PII at query time without duplicating data\n-- Investigators see '***MASKED***' for patient names; admins see real values\nCREATE OR REPLACE MASKING POLICY FWA_QS.DETECTION.NAME_MASK AS (val STRING)\n  RETURNS STRING -\u003E\n    CASE WHEN CURRENT_ROLE() IN ('FWA_ADMIN','ACCOUNTADMIN') THEN val\n         ELSE '***MASKED***' END;\n\nALTER TABLE FWA_QS.DETECTION.BENEFICIARIES\n  MODIFY COLUMN FIRST_NAME SET MASKING POLICY FWA_QS.DETECTION.NAME_MASK;\nALTER TABLE FWA_QS.DETECTION.BENEFICIARIES\n  MODIFY COLUMN LAST_NAME SET MASKING POLICY FWA_QS.DETECTION.NAME_MASK;\n```\n\n\u003C!-- ------------------------ --\u003E\n## Operations & Case Management\n\nDuration: 10\n\n### Architecture Mapping\n\n| Phase | Steps | Key Snowflake Features |\n|-------|-------|----------------------|\n| **1. Ingest & Contextualize** | Steps 2-4 | Tables, Stages, Dynamic Tables |\n| **2. Detect & Score** | Steps 5-7 | Cortex AI, Snowflake ML, SQL Graph Analysis |\n| **3. Analyze & Evidence** | Steps 8-9 | AI_PARSE_DOCUMENT, AI_TRANSCRIBE, Cortex Agent |\n| **4. Decide & Act** | Steps 10-12 | Streamlit, RBAC, Masking, Case Management |\n\n### Case Management and Feedback Loop\n\nInvestigators can confirm, reject, or escalate flagged claims, and their decisions feed back into model retraining.\n\n```sql\n-- Tracks investigator decisions: confirm fraud, reject as false positive, or escalate\n-- Each row is an auditable action tied to a claim and the investigator who made it\nCREATE OR REPLACE TABLE FWA_QS.DETECTION.CASE_ACTIONS (\n    CASE_ID         VARCHAR(10) DEFAULT 'CA-' || SEQ4()::VARCHAR,\n    CLAIM_ID        VARCHAR(10),\n    PROVIDER_ID     VARCHAR(10),\n    ACTION          VARCHAR(20),   -- CONFIRMED_FRAUD, FALSE_POSITIVE, ESCALATED, PENDING\n    INVESTIGATOR    VARCHAR(100) DEFAULT CURRENT_USER(),\n    ACTION_DATE     TIMESTAMP DEFAULT CURRENT_TIMESTAMP(),\n    NOTES           VARCHAR(500),\n    RECOVERY_AMOUNT NUMBER(12,2) DEFAULT NULL\n);\n\n-- Grant investigators write access to this table\nGRANT INSERT, UPDATE ON FWA_QS.DETECTION.CASE_ACTIONS TO ROLE FWA_INVESTIGATOR;\n```\n\n### Automated Retrain Trigger\n\n```sql\n-- Stream captures change data (inserts/updates) on CASE_ACTIONS for the task trigger\nCREATE OR REPLACE STREAM FWA_QS.DETECTION.CASE_ACTIONS_STREAM\n  ON TABLE FWA_QS.DETECTION.CASE_ACTIONS;\n\n-- Automated retrain: Snowflake Task checks the stream weekly for new investigator decisions\n-- Only fires if new case actions exist (SYSTEM$STREAM_HAS_DATA), avoiding unnecessary retrains\nCREATE OR REPLACE TASK FWA_QS.DETECTION.RETRAIN_ON_NEW_LABELS\n  WAREHOUSE = FWA_WH\n  SCHEDULE = 'USING CRON 0 2 * * 0 America/New_York'  -- weekly Sunday 2 AM\n  WHEN SYSTEM$STREAM_HAS_DATA('FWA_QS.DETECTION.CASE_ACTIONS_STREAM')\nAS\n  CREATE OR REPLACE SNOWFLAKE.ML.CLASSIFICATION FWA_QS.DETECTION.FRAUD_PREDICTION_MODEL(\n      INPUT_DATA =\u003E SYSTEM$REFERENCE('VIEW', 'FWA_QS.DETECTION.TRAINING_FEATURES_V'),\n      TARGET_COLNAME =\u003E 'IS_FRAUD'\n  );\n\n-- Resume the task so it starts running on schedule\nALTER TASK FWA_QS.DETECTION.RETRAIN_ON_NEW_LABELS RESUME;\n```\n\nThis completes the cycle: claims flow in (Phase 1) → get detected and scored (Phase 2) → investigators analyze evidence (Phase 3) → they decide and act, and those decisions improve the next round of detection (Phase 4 → back to Phase 2).\n\n\u003C!-- ------------------------ --\u003E\n## Clean Up\n\nDuration: 2\n\nTo remove all objects created by this guide and stop the scheduled retrain task:\n\n```sql\n-- Suspend the scheduled task first\nALTER TASK IF EXISTS FWA_QS.DETECTION.RETRAIN_ON_NEW_LABELS SUSPEND;\n\n-- Drop the database (removes all tables, views, dynamic tables, stages,\n-- ML models, search services, agent, stream, task, and Streamlit app)\nDROP DATABASE IF EXISTS FWA_QS;\n\n-- Drop the warehouse\nDROP WAREHOUSE IF EXISTS FWA_WH;\n\n-- Drop the custom roles\nDROP ROLE IF EXISTS FWA_ADMIN;\nDROP ROLE IF EXISTS FWA_INVESTIGATOR;\n\n-- Drop the Git API integration (account-level, so DROP DATABASE does not remove it)\nDROP INTEGRATION IF EXISTS FWA_GIT_API_INTEGRATION;\n```\n\n\u003C!-- ------------------------ --\u003E\n## Conclusion & Resources\n\nDuration: 2\n\nCongratulations! You have built a complete Fraud, Waste, and Abuse detection platform on Snowflake — from data ingestion through ML scoring, LLM classification, graph-based ring detection, document/audio analysis, a natural-language investigation agent, and an investigator UI with case management.\n\n### What You Learned\n- How Dynamic Tables replace batch ETL with continuously refreshing provider profiles\n- How Cortex AI (AI_CLASSIFY, AI_COMPLETE) classifies fraud with plain-English explanations\n- How Snowflake ML trains anomaly detection and classification models in pure SQL\n- How SQL graph analysis detects fraud rings without an external graph database\n- How Cortex AI functions parse documents and transcribe audio for evidence\n- How Cortex Agents orchestrate structured and unstructured queries in plain English\n- How Streamlit in Snowflake delivers an investigator application\n- How RBAC, masking policies, and case management close the decide-and-act loop\n\n### Summary\n\n| Capability | Snowflake Feature | Step |\n|---|---|---|\n| Data foundation | Tables, Stages | 2-3 |\n| Real-time profiles | Dynamic Tables | 4 |\n| Fraud classification | Cortex AI (AI_CLASSIFY, AI_COMPLETE) | 5 |\n| Anomaly detection | Snowflake ML Anomaly Detection | 6 |\n| Predictive scoring | Snowflake ML Classification | 6 |\n| Fraud ring mapping | SQL graph analysis | 7 |\n| Document analysis | Cortex AI (AI_PARSE_DOCUMENT, AI_COMPLETE) | 8 |\n| Audio analysis | Cortex AI (AI_TRANSCRIBE, AI_SUMMARIZE) | 8 |\n| Natural-language investigation | Cortex Agent + Cortex Search + Cortex Analyst | 9 |\n| Investigator UI | Streamlit in Snowflake | 10 |\n| Data protection | Roles, Masking Policies | 11 |\n| Case management | Tables, Streams, Tasks | 12 |\n\n### Related Resources\n- [Dynamic Tables](https://docs.snowflake.com/en/user-guide/dynamic-tables-about)\n- [Cortex AI LLM Functions](https://docs.snowflake.com/en/user-guide/snowflake-cortex/llm-functions)\n- [Snowflake ML](https://docs.snowflake.com/en/developer-guide/snowflake-ml/overview)\n- [Cortex Search](https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-search/cortex-search-overview)\n- [Cortex Agents](https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-agents)\n- [Streamlit in Snowflake](https://docs.snowflake.com/en/developer-guide/streamlit/about-streamlit)\n","multiValue":false,":type":"text/x-markdown"},"quickstartArticleLogoImage":{"dataType":"string","title":"Quickstart Article Logo Image","multiValue":false,":type":"text/plain"}},"elementsOrder":["quickstartArticleBody","quickstartArticleLogoImage"],":type":"snowflake-site/components/contentfragment",":items":{},":itemsOrder":[],"isDeveloperGuidesPage":false,"model":"snowflake-site/models/quickstart-article"},"flexible_column_cont":{"id":"flexible-column-container-8e78d54887","type":"2-column-75-25","alignColumns":"top","containerMaxWidth":"extra-large","topPadding":"none","bottomPadding":"none","spaceBetween":"none","reverseOnMobile":false,"carouselOnMobile":false,"backgroundImageOption":"none","flexible_column_content_container_1":{"layout":"SIMPLE","id":"container-137653fbd0",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"quickstart_last_modi":{"id":"quickstart-last-modified-e41aec02e5","icon":{"id":"icon","icon":"calendar",":type":"snowflake-site/components/icon","appliedCssClassNames":"snowflake-icon-blue"},"lastModifiedDatePrefix":"Updated","lastModifiedDate":"2026-10-20",":type":"snowflake-site/components/quickstart/quickstart-last-modified","appliedCssClassNames":"snowflake-responsive-component-top-padding-small"},"text":{"id":"text-490c5aa0b3","additionalClasses":"qs-disclaimer-text","text":"\u003Cp\u003E\u003Cspan style=\"color: #666;\"\u003EThis content is provided as is, and is not maintained on an ongoing basis. It may be out of date with current Snowflake instances\u003C/span\u003E\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"snowflake-responsive-component-top-padding-small"}},":itemsOrder":["quickstart_last_modi","text"]},"flexible_column_content_container_2":{"layout":"SIMPLE","id":"container-ed8ef76f06",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{},":itemsOrder":[]},":type":"snowflake-site/components/flexible-column-container","isBlogPage":false,"isActiveTOC":false}},":itemsOrder":["contentfragment","flexible_column_cont"]},"flexible_column_content_container_2":{"layout":"SIMPLE","id":"container-2cea98b917",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"quickstart_table_of_":{"layout":"SIMPLE","id":"container-b4bd63d2b7","isDeveloperGuidesPage":false,":type":"snowflake-site/components/quickstart/quickstart-table-of-content/quickstart-table-of-content-container",":items":{"quickstart_table_of_":{"id":"quickstart-table-of-content-849afe30bd","headings":["\u003Ch2\u003EOverview\u003C/h2\u003E","\u003Ch2\u003ESetup and Data Foundation\u003C/h2\u003E","\u003Ch2\u003ELoad Sample Data\u003C/h2\u003E","\u003Ch2\u003EProvider Behavior Profiles\u003C/h2\u003E","\u003Ch2\u003EFraud Classification\u003C/h2\u003E","\u003Ch2\u003EAnomaly Detection & Scoring\u003C/h2\u003E","\u003Ch2\u003EFraud Ring Detection\u003C/h2\u003E","\u003Ch2\u003EDocument & Audio Analysis\u003C/h2\u003E","\u003Ch2\u003EInvestigation Agent\u003C/h2\u003E","\u003Ch2\u003EStreamlit Application\u003C/h2\u003E","\u003Ch2\u003ESecurity & Access Control\u003C/h2\u003E","\u003Ch2\u003EOperations & Case Management\u003C/h2\u003E","\u003Ch2\u003EClean Up\u003C/h2\u003E","\u003Ch2\u003EConclusion & Resources\u003C/h2\u003E"],"fragmentPath":"/content/dam/snowflake-site/en/content-fragments/quickstarts/build-fwa-detection-platform-cortex-ai",":type":"snowflake-site/components/quickstart/quickstart-table-of-content"},"quickstart_button":{"id":"quickstart-button-9ec0649784","fragmentPath":"/content/dam/snowflake-site/en/content-fragments/quickstarts/build-fwa-detection-platform-cortex-ai",":type":"snowflake-site/components/quickstart/quickstart-button","appliedCssClassNames":"snowflake-responsive-component-top-padding-none"}},":itemsOrder":["quickstart_table_of_","quickstart_button"]}},":itemsOrder":["quickstart_table_of_"]},":type":"snowflake-site/components/flexible-column-container","isBlogPage":false,"isActiveTOC":false},"markup_editor":{"id":"markup-editor-ad0f710d97","title":"Page CSS","cssUrl":"/content/snowflake-site/global/en/developers/guides/build-fwa-detection-platform-cortex-ai/_jcr_content/root/responsivegrid/markup_editor.eb24a609da50a43b.css",":type":"snowflake-site/components/markup-editor","isGSAPEnabled":false}},":itemsOrder":["quickstart_hero","flexible_column_cont","markup_editor"],":type":"wcm/foundation/components/responsivegrid"},"modal_container":{"layout":"SIMPLE","id":"container-3e6f187016",":type":"snowflake-site/components/modal/modal-container",":items":{},":itemsOrder":[]},"experiencefragment-footer":{"id":"experiencefragment-3afad546c6","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/footer/master/jcr:content","configured":true,"classNames":"aem-xf",":type":"snowflake-site/components/experiencefragment",":items":{"root":{"additionalClasses":"sf-footer","layout":"SIMPLE","id":"container-aafa57a106",":type":"snowflake-site/components/container",":items":{"container_copy":{"additionalClasses":"sf-footer__inner","layout":"RESPONSIVE_GRID","columnCount":12,"columnClassNames":{"flexible_column_cont":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-a70d9b4a4d",":type":"snowflake-site/components/container",":items":{"flexible_column_cont":{"id":"flexible-column-container-14e42dd2a5","type":"1-column","alignColumns":"top","containerMaxWidth":"extra-large","topPadding":"medium","bottomPadding":"extra-small","spaceBetween":"small","reverseOnMobile":false,"carouselOnMobile":false,"propertiesCSSClasses":"sf-footer-grid","backgroundImageOption":"none","flexible_column_content_container_1":{"layout":"SIMPLE","id":"container-1a2a859bee",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"container":{"additionalClasses":"sf-footer-grid__inner","layout":"RESPONSIVE_GRID","columnCount":12,"columnClassNames":{"container":"aem-GridColumn aem-GridColumn--default--12","container_1622723482":"aem-GridColumn aem-GridColumn--default--12","container_copy_copy_":"aem-GridColumn aem-GridColumn--default--12","container_copy_copy":"aem-GridColumn aem-GridColumn--default--12","container_copy":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-d6e1a4e6f5",":type":"snowflake-site/components/container",":items":{"container_1622723482":{"additionalClasses":"sf-footer__column","layout":"RESPONSIVE_GRID","columnCount":12,"columnClassNames":{"container":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-f9e23f5f78",":type":"snowflake-site/components/container",":items":{"container":{"additionalClasses":"sf-footer__newsletter-group","layout":"RESPONSIVE_GRID","columnCount":12,"columnClassNames":{"text":"aem-GridColumn aem-GridColumn--default--12","marketo_v2":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-48636f70bf",":type":"snowflake-site/components/container",":items":{"text":{"id":"text-096bc77540","additionalClasses":"sf-footer__newsletter-title","text":"\u003Cp\u003E\u003Cb\u003ESubscribe to our monthly newsletter\u003C/b\u003E\u003C/p\u003E\r\n\u003Cp\u003EStay up to date on Snowflake’s latest products, expert insights and resources—right in your inbox!\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-size-regular text-color-text-04"},"marketo_v2":{"id":"marketo-v2-aa20883f66","marketoForm":{"formId":"45871","hidden":null,"edit":false,"successUrl":null,"script":null,"values":null},"serverInstance":"252-RFO-227.mktoweb.com","munchkinId":"252-RFO-227","marketoConfigured":true,"formConfigured":true,"partnerCampaignPage":false,":type":"snowflake-site/components/form/marketo-v2"}},":itemsOrder":["text","marketo_v2"],"appliedCssClassNames":"snowflake-responsive-container-inner-padding-small"}},":itemsOrder":["container"],"appliedCssClassNames":"snowflake-responsive-container-inner-padding-small"},"container":{"layout":"RESPONSIVE_GRID","columnCount":12,"columnClassNames":{"text_copy":"aem-GridColumn aem-GridColumn--default--12","text":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-314c883c4d",":type":"snowflake-site/components/container",":items":{"text":{"id":"text-c81f763fa7","additionalClasses":"sf-footer__link-group","text":"\u003Cp class=\"sf-footer__column-title\"\u003EProduct\u003C/p\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/product/platform/\"\u003EPlatform\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"/en/product/snowflake-cowork/\"\u003ESnowflake CoWork\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/product/data-engineering/\"\u003EData Engineering\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/product/analytics/\"\u003EAnalytics\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/product/ai/\"\u003EAI\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/product/applications-and-collaboration/\"\u003EApplications &amp; Collaboration\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/pricing-options/\"\u003EPricing\u003C/a\u003E\u003C/li\u003E\r\n\u003C/ul\u003E\r\n","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-size-small text-color-text-04"},"text_copy":{"id":"text-5852e80e16","additionalClasses":"sf-footer__link-group","text":"\u003Cp class=\"sf-footer__column-title\"\u003ESupport\u003C/p\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/support/\"\u003ESupport\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/legal/addenda/priority-support-services-description/\"\u003EPriority Support\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://status.snowflake.com/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003EStatus\u003C/a\u003E\u003C/li\u003E\r\n\u003C/ul\u003E\r\n","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-size-small text-color-text-04"}},":itemsOrder":["text","text_copy"],"appliedCssClassNames":"snowflake-responsive-container-inner-padding-medium"},"container_copy_copy":{"layout":"RESPONSIVE_GRID","columnCount":12,"columnClassNames":{"text":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-68204ff66b",":type":"snowflake-site/components/container",":items":{"text":{"id":"text-4e3ab104b2","additionalClasses":"sf-footer__link-group","text":"\u003Cp class=\"sf-footer__column-title\"\u003E\u003Ca href=\"/en/solutions/industries/\"\u003EIndustries\u003C/a\u003E\u003C/p\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\"/en/solutions/industries/advertising-media-entertainment/\"\u003EAdvertising, Media &amp; Entertainment\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"/en/solutions/industries/financial-services/\"\u003EFinancial Services\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"/en/solutions/industries/healthcare-and-life-sciences/\"\u003EHealthcare &amp; Life Sciences\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"/en/solutions/industries/manufacturing/\"\u003EManufacturing\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"/en/solutions/industries/public-sector/\"\u003EPublic Sector\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"/en/solutions/industries/retail-consumer-goods/\"\u003ERetail &amp; Consumer Goods\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"/en/solutions/industries/telecom/\"\u003ETelecom\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/solutions/industries/technology/\"\u003ETechnology\u003C/a\u003E\u003C/li\u003E\r\n\u003C/ul\u003E\r\n","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-size-small text-color-text-04"}},":itemsOrder":["text"],"appliedCssClassNames":"snowflake-responsive-container-inner-padding-small"},"container_copy":{"layout":"RESPONSIVE_GRID","columnCount":12,"columnClassNames":{"text":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-f8500071a8",":type":"snowflake-site/components/container",":items":{"text":{"id":"text-3a45a6c7f0","additionalClasses":"sf-footer__link-group","text":"\u003Cp class=\"sf-footer__column-title\"\u003ECompany\u003C/p\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/company/overview/about-snowflake/\"\u003EAbout Snowflake\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/company/overview/leadership-and-board/\"\u003ELeadership &amp; Board\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://careers.snowflake.com/us/en\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ECareers\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://investors.snowflake.com/overview/default.aspx\" target=\"_blank\" rel=\"noopener noreferrer\"\u003EInvestor Relations\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://trust.snowflake.com/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003ETrust Center\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/brand-guidelines/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003EBrand Guidelines\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/contact/\"\u003EContact\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/news/\"\u003ENewsroom\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/company/overview/esg/\"\u003EEnvironmental, Social &amp; Governance\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/company/overview/snowflake-ventures/\"\u003ESnowflake Ventures\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/company/overview/end-data-disparity/\"\u003EEnd Data Disparity\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"/en/summit/\"\u003ESnowflake Summit 26\u003C/a\u003E\u003C/li\u003E\r\n\u003C/ul\u003E\r\n","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-size-small text-color-text-04"}},":itemsOrder":["text"],"appliedCssClassNames":"snowflake-responsive-container-inner-padding-small"},"container_copy_copy_":{"layout":"RESPONSIVE_GRID","columnCount":12,"columnClassNames":{"text":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-4aadd898ce",":type":"snowflake-site/components/container",":items":{"text":{"id":"text-3a3b413bb7","additionalClasses":"sf-footer__link-group","text":"\u003Cp class=\"sf-footer__column-title\"\u003ELearn\u003C/p\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://snowflake.com/en/resources/\"\u003EResource Library\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"/en/webinars/demo/\"\u003ELive Demos\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/fundamentals/\"\u003EFundamentals\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/resources/learn/training/\"\u003ETraining\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/resources/learn/certifications/\"\u003ECertifications\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://learn.snowflake.com/en/\"\u003ESnowflake University\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/developers/guides\"\u003EDeveloper Guides\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca rel=\"noopener noreferrer\" target=\"_blank\" href=\"https://docs.snowflake.com/\"\u003EDocumentation\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"/en/data-governance/\"\u003EData Governance\u003C/a\u003E\u003C/li\u003E\r\n\u003C/ul\u003E\r\n","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-size-small text-color-text-04"}},":itemsOrder":["text"],"appliedCssClassNames":"snowflake-responsive-container-inner-padding-small"}},":itemsOrder":["container_1622723482","container","container_copy_copy","container_copy","container_copy_copy_"],"appliedCssClassNames":"snowflake-responsive-container-inner-padding-small"}},":itemsOrder":["container"]},":type":"snowflake-site/components/flexible-column-container","isBlogPage":false,"isActiveTOC":false}},":itemsOrder":["flexible_column_cont"],"appliedCssClassNames":"snowflake-container snowflake-responsive-container-inner-padding-small"},"container_573483281_":{"additionalClasses":"sf-footer__bottom","layout":"RESPONSIVE_GRID","columnCount":12,"columnClassNames":{"container_112062425":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-4984ab39df",":type":"snowflake-site/components/container",":items":{"container_112062425":{"layout":"RESPONSIVE_GRID","columnCount":12,"columnClassNames":{"flexible_column_cont":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-eb943b0860",":type":"snowflake-site/components/container",":items":{"flexible_column_cont":{"id":"flexible-column-container-467a7337f5","type":"1-column","alignColumns":"top","containerMaxWidth":"extra-large","topPadding":"none","bottomPadding":"none","spaceBetween":"small","reverseOnMobile":false,"carouselOnMobile":false,"backgroundImageOption":"none","flexible_column_content_container_1":{"layout":"SIMPLE","id":"container-0a1cb0ad08",":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container",":items":{"container":{"additionalClasses":"sf-footer__legal-container","layout":"RESPONSIVE_GRID","columnCount":12,"columnClassNames":{"container":"aem-GridColumn aem-GridColumn--default--12","text_copy_copy_16360":"aem-GridColumn aem-GridColumn--default--12","markup_editor":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-ea22e91cc5",":type":"snowflake-site/components/container",":items":{"container":{"layout":"RESPONSIVE_GRID","columnCount":12,"columnClassNames":{"image":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","id":"container-90150de872",":type":"snowflake-site/components/container",":items":{"image":{"id":"image-07a6a8013f","additionalClasses":"sf-footer__logo","height":"64","alt":"Snowflake logo","imageLink":{"valid":true,"url":"/en/"},"lazyEnabled":true,"src":"https://www.snowflake.com/content/experience-fragments/snowflake-site/language-masters/en/site/footer/master/_jcr_content/root/container_573483281_/container_112062425/flexible_column_cont/flexible_column_content_container_1/container/container/image.coreimg.svg/1747882370694/nav-icon-snowflake-bug.svg","isLcpImage":false,"width":"64",":type":"snowflake-site/components/image"}},":itemsOrder":["image"],"appliedCssClassNames":"snowflake-responsive-container-inner-padding-extra-small"},"text_copy_copy_16360":{"id":"text-3693d3a332","additionalClasses":"sf-footer__legal-links","text":"\u003Cul\u003E\r\n\u003Cli\u003E© 2026 Snowflake Inc. All Rights Reserved\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/legal/privacy/privacy-policy/\"\u003EPrivacy Policy\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://snowflake.com/en/legal/snowflake-site-terms/\"\u003ESite Terms\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://info.snowflake.com/Preference-center.html\"\u003ECommunication Preferences\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Cbutton id=\"ot-sdk-btn\" class=\"ot-sdk-show-settings\"\u003ECookie Settings\u003C/button\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/legal/privacy/privacy-policy/#12\"\u003EDo Not Share My Personal Information\u003C/a\u003E\u003C/li\u003E\r\n\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/legal/\"\u003ELegal\u003C/a\u003E\u003C/li\u003E\r\n\u003C/ul\u003E\r\n","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"text-size-small text-color-text-04"},"markup_editor":{"id":"markup-editor-1affafaad8","title":" ","htmlContent":"\u003Cdiv class=\"sf-footer__social\"\u003E\r\n\u003Cdiv data-testid=\"snowflake-footer-twitter\" class=\"snowflake-button-icon snowflake-button-white snowflake-footer-social-item\"\u003E\u003Cdiv class=\"snowflake-button-icon \"\u003E\u003Ca href=\"https://x.com/Snowflake\" data-testid=\"button-external\" aria-label=\"X (Twitter)\" role=\"button\" class=\"snowflake-button-container\" title=\"X (Twitter)\" tabindex=\"0\" target=\"_blank\" rel=\"noreferrer\"\u003E\u003Cdiv data-testid=\"button-icon-wrapper\"\u003E\u003Csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 59 53\" class=\"button-icon\"\u003E\u003Cpath fill=\"currentColor\" d=\"M46.614 0h9.044L35.8 22.49 59 53H40.795L26.54 34.46 10.223 53H1.18l21.036-24.055L0 0h18.657l12.878 16.937zM43.45 47.72h5.013L16.023 5.085h-5.387z\"\u003E\u003C/path\u003E\u003C/svg\u003E\u003C/div\u003E\u003C/a\u003E\u003Cdiv\u003E\u003C/div\u003E\u003C/div\u003E\u003C/div\u003E\u003Cdiv data-testid=\"snowflake-footer-linkedin\" class=\"snowflake-button-icon snowflake-button-white snowflake-footer-social-item\"\u003E\u003Cdiv class=\"snowflake-button-icon \"\u003E\u003Ca href=\"https://www.linkedin.com/company/3653845\" data-testid=\"button-external\" aria-label=\"LinkedIn\" role=\"button\" class=\"snowflake-button-container\" title=\"LinkedIn\" tabindex=\"0\" target=\"_blank\" rel=\"noreferrer\"\u003E\u003Cdiv data-testid=\"button-icon-wrapper\"\u003E\u003Csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentColor\" viewBox=\"0 0 24 24\" class=\"button-icon\"\u003E\u003Cpath d=\"M22.223 0H1.772C.792 0 0 .773 0 1.73v20.536C0 23.222.792 24 1.772 24h20.451c.98 0 1.777-.778 1.777-1.73V1.73C24 .773 23.203 0 22.223 0ZM7.12 20.452H3.558V8.995H7.12v11.457ZM5.34 7.434a2.064 2.064 0 1 1 0-4.125 2.063 2.063 0 0 1 0 4.125Zm15.112 13.018h-3.558v-5.57c0-1.326-.024-3.037-1.852-3.037-1.851 0-2.133 1.449-2.133 2.944v5.663H9.356V8.995h3.413v1.566h.047c.473-.9 1.636-1.852 3.365-1.852 3.605 0 4.27 2.372 4.27 5.457v6.286Z\"\u003E\u003C/path\u003E\u003C/svg\u003E\u003C/div\u003E\u003C/a\u003E\u003Cdiv\u003E\u003C/div\u003E\u003C/div\u003E\u003C/div\u003E\u003Cdiv data-testid=\"snowflake-footer-facebook\" class=\"snowflake-button-icon snowflake-button-white snowflake-footer-social-item\"\u003E\u003Cdiv class=\"snowflake-button-icon \"\u003E\u003Ca href=\"https://www.facebook.com/snowflakedb/\" data-testid=\"button-external\" aria-label=\"Facebook\" role=\"button\" class=\"snowflake-button-container\" title=\"Facebook\" tabindex=\"0\" target=\"_blank\" rel=\"noreferrer\"\u003E\u003Cdiv data-testid=\"button-icon-wrapper\"\u003E\u003Csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentColor\" viewBox=\"0 0 24 24\" class=\"button-icon\"\u003E\u003Cpath d=\"M24 12c0-6.627-5.373-12-12-12S0 5.373 0 12c0 5.99 4.388 10.954 10.125 11.854V15.47H7.078V12h3.047V9.356c0-3.007 1.792-4.668 4.533-4.668 1.312 0 2.686.234 2.686.234v2.953H15.83c-1.491 0-1.956.925-1.956 1.875V12h3.328l-.532 3.469h-2.796v8.385C19.612 22.954 24 17.99 24 12Z\"\u003E\u003C/path\u003E\u003C/svg\u003E\u003C/div\u003E\u003C/a\u003E\u003Cdiv\u003E\u003C/div\u003E\u003C/div\u003E\u003C/div\u003E\u003Cdiv data-testid=\"snowflake-footer-youtube\" class=\"snowflake-button-icon snowflake-button-white snowflake-footer-social-item\"\u003E\u003Cdiv class=\"snowflake-button-icon \"\u003E\u003Ca href=\"https://www.youtube.com/user/snowflakecomputing\" data-testid=\"button-external\" aria-label=\"YouTube\" role=\"button\" class=\"snowflake-button-container\" title=\"YouTube\" tabindex=\"0\" target=\"_blank\" rel=\"noreferrer\"\u003E\u003Cdiv data-testid=\"button-icon-wrapper\"\u003E\u003Csvg xmlns=\"http://www.w3.org/2000/svg\" fill=\"currentColor\" viewBox=\"0 0 24 24\" class=\"button-icon\"\u003E\u003Cpath d=\"M23.76 7.2s-.233-1.655-.955-2.381c-.914-.956-1.936-.961-2.405-1.017-3.356-.244-8.395-.244-8.395-.244h-.01s-5.039 0-8.395.244c-.469.056-1.49.06-2.405 1.017C.473 5.545.244 7.2.244 7.2S0 9.145 0 11.086v1.819c0 1.94.24 3.886.24 3.886s.233 1.654.95 2.38c.915.957 2.115.924 2.65 1.027 1.92.183 8.16.24 8.16.24s5.044-.01 8.4-.249c.469-.056 1.49-.06 2.405-1.017.722-.727.956-2.381.956-2.381S24 14.85 24 12.905v-1.819c0-1.94-.24-3.886-.24-3.886ZM9.52 15.113V8.367l6.483 3.385-6.483 3.36Z\"\u003E\u003C/path\u003E\u003C/svg\u003E\u003C/div\u003E\u003C/a\u003E\u003Cdiv\u003E\u003C/div\u003E\u003C/div\u003E\u003C/div\u003E\r\n\u003C/div\u003E",":type":"snowflake-site/components/markup-editor","isGSAPEnabled":false}},":itemsOrder":["container","text_copy_copy_16360","markup_editor"],"appliedCssClassNames":"snowflake-responsive-container-inner-padding-none"}},":itemsOrder":["container"]},":type":"snowflake-site/components/flexible-column-container","isBlogPage":false,"isActiveTOC":false}},":itemsOrder":["flexible_column_cont"],"appliedCssClassNames":"snowflake-container snowflake-responsive-container-inner-padding-small"}},":itemsOrder":["container_112062425"],"appliedCssClassNames":"snowflake-responsive-container-inner-padding-none"},"markup_editor_copy":{"id":"markup-editor-8bef93efc3","title":"New css","cssContent":".snowflake-flexible-column-container-items:has(.snowflake-experience-fragment:empty){display:none !important}.snowflake-image-container img{background-color:transparent}div.snowflake-person-chip-avatar{width:80px !important}#snowflake-blog-template-main-container .snowflake-quote-item-card{margin-top:40px}#snowflake-blog-template-main-container .aem-GridColumn:has(.vertical-video){background-color:#000;border-radius:16px;overflow:hidden}#snowflake-blog-template-main-container .is-vertical img{max-width:400px;margin-left:auto;margin-right:auto}#snowflake-blog-template-main-container .vertical-video{max-width:240px;margin-left:auto;margin-right:auto}@media screen and (min-width:1367px){.dynamic .heading-1-v2 .snowflake-title-v2-line{font-size:72px !important;line-height:60px !important}}.snowflake-flexible-column-container-items-alignment-match-height .download-card,.snowflake-flexible-column-container-items-alignment-match-height .download-card\u003E.container{height:100%}.download-card div.code-toolbar\u003E.toolbar .copy-to-clipboard-button{background-color:white;border:1px solid #a9e1f6;margin-right:4px;top:6px;border-radius:16px;height:26px;width:40px}.download-card .snowflake-code-snippet\u003Ediv.code-toolbar\u003E.toolbar\u003E.toolbar-item\u003Ebutton:before{content:'';background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='9' width='13' height='13' rx='2' ry='2' style='stroke:%23249EDC;'%3E%3C/rect%3E%3Cpath d='M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1' style='stroke:%23249EDC;'%3E%3C/path%3E%3C/svg%3E\");background-size:auto 65%;background-position:center;background-repeat:no-repeat;top:0;left:0;width:100%;height:100%}.download-card .snowflake-code-snippet\u003Ediv.code-toolbar\u003E.toolbar\u003E.toolbar-item\u003Ebutton:hover:before{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='9' width='13' height='13' rx='2' ry='2' style='stroke:%23fff;'%3E%3C/rect%3E%3Cpath d='M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1' style='stroke:%23fff;'%3E%3C/path%3E%3C/svg%3E\")}.download-card\u003Ediv{background-color:#fff;border:1px solid #ccc;border-radius:8px;padding:24px}.download-chip__headline{border-bottom:1px solid #ccc;padding-bottom:16px;margin-bottom:16px}.download-chip{padding:8px 12px !important;border-radius:4px;transition:300ms ease background-color}.download-chip .black-blue-text-color .snowflake-title-v2-line{color:#000 !important;padding-right:24px;font-family:'Lato',sans-serif;font-size:14px !important;font-weight:500 !important}.download-chip .black-blue-text-color .snowflake-title-v2-line:not(:first-child){opacity:.6;font-style:italic !important}.download-chip .snowflake-content-chip-button{display:none}.download-chip.is-external-link{background-size:16px 16px;background-image:url(\"data:image/svg+xml,%3Csvg width='15' height='15' viewBox='0 0 15 15' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.06055 13.0607L11.8605 2.26067M13.0605 10.6607V1.06067H3.46055' stroke='%23249EDC' stroke-width='2.12132' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A\")}.download-chip{background-image:url(\"data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_883_7979)'%3E%3Cpath d='M3.375 16.875H14.625' stroke='%23249EDC' stroke-width='1.40625' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M9 1.125V11.25' stroke='%23249EDC' stroke-width='1.40625' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M4.5 7.875L9 12.375L13.5 7.875' stroke='%23249EDC' stroke-width='1.40625' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_883_7979'%3E%3Crect width='18' height='18' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A\");background-size:24px auto;background-repeat:no-repeat;background-position:calc(100% - 12px) center}.download-chip__headline{display:flex;gap:16px;flex-direction:row !important;flex-wrap:nowrap}.download-chip__headline::before{content:'';display:inline-block;width:24px;height:24px;background-position:center;background-image:url(\"data:image/svg+xml,%3Csvg width='21' height='21' viewBox='0 0 21 21' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M7.50005 9.89999C8.13657 9.89999 8.74702 9.64713 9.19711 9.19704C9.64719 8.74696 9.90005 8.13651 9.90005 7.49999V2.69999C9.90005 2.06347 9.64719 1.45302 9.19711 1.00293C8.74702 .552844 8.13657 .299988 7.50005 .299988H2.70005C2.06353 .299988 1.45308 .552844 1.00299 1.00293C.552905 1.45302 .300049 2.06347 .300049 2.69999V7.49999C.300049 8.13651 .552905 8.74696 1.00299 9.19704C1.45308 9.64713 2.06353 9.89999 2.70005 9.89999H7.50005ZM7.50005 7.49999H2.70005V2.69999H7.50005V7.49999Z' fill='%23249EDC' stroke='white' stroke-width='.6'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M7.50005 20.3C8.13657 20.3 8.74702 20.0472 9.19711 19.5971C9.64719 19.147 9.90005 18.5365 9.90005 17.9V13.1C9.90005 12.4635 9.64719 11.853 9.19711 11.403C8.74702 10.9529 8.13657 10.7 7.50005 10.7H2.70005C2.06353 10.7 1.45308 10.9529 1.00299 11.403C.552905 11.853 .300049 12.4635 .300049 13.1V17.9C.300049 18.5365 .552905 19.147 1.00299 19.5971C1.45308 20.0472 2.06353 20.3 2.70005 20.3H7.50005ZM7.50005 17.9H2.70005V13.1H7.50005V17.9Z' fill='%23249EDC' stroke='white' stroke-width='.6'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M17.9001 9.89999C18.5366 9.89999 19.147 9.64713 19.5971 9.19704C20.0472 8.74696 20.3001 8.13651 20.3001 7.49999V2.69999C20.3001 2.06347 20.0472 1.45302 19.5971 1.00293C19.147 .552844 18.5366 .299988 17.9001 .299988H13.1001C12.4636 .299988 11.8531 .552844 11.403 1.00293C10.9529 1.45302 10.7001 2.06347 10.7001 2.69999V7.49999C10.7001 8.13651 10.9529 8.74696 11.403 9.19704C11.8531 9.64713 12.4636 9.89999 13.1001 9.89999H17.9001ZM17.9001 7.49999H13.1001V2.69999H17.9001V7.49999Z' fill='%23249EDC' stroke='white' stroke-width='.6'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M17.9001 20.3C18.5366 20.3 19.147 20.0472 19.5971 19.5971C20.0472 19.147 20.3001 18.5365 20.3001 17.9V13.1C20.3001 12.4635 20.0472 11.853 19.5971 11.403C19.147 10.9529 18.5366 10.7 17.9001 10.7H13.1001C12.4636 10.7 11.8531 10.9529 11.403 11.403C10.9529 11.853 10.7001 12.4635 10.7001 13.1V17.9C10.7001 18.5365 10.9529 19.147 11.403 19.5971C11.8531 20.0472 12.4636 20.3 13.1001 20.3H17.9001ZM17.9001 17.9H13.1001V13.1H17.9001V17.9Z' fill='%23249EDC' stroke='white' stroke-width='.6'/%3E%3C/svg%3E%0A\");background-size:contain;background-repeat:no-repeat}.download-chip__headline.is-cli::before{background-image:url(\"data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 17L10 11L4 5' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M12 19H20' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A\")}.download-card pre[class*=language-]{padding:8px 12px;background-color:var(--ui-background-05);overflow:hidden}.download-chip__headline.is-windows,.download-chip__headline.is-mac{gap:12px}.download-chip__headline.is-windows::before{width:16px;height:20px;background-image:url(\"data:image/svg+xml,%3Csvg width='4875' height='4875' viewBox='0 0 4875 4875' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_122_201)'%3E%3Cpath d='M0 0H2311V2310H0V0ZM2564 0H4875V2310H2564V0ZM0 2564H2311V4875H0V2564ZM2564 2564H4875V4875H2564' fill='%23000'/%3E%3C/g%3E%3C/svg%3E\")}.download-chip__headline.is-mac::before{width:16px;height:20px;background-image:url(\"data:image/svg+xml,%3Csvg version='1.1' id='Layer_1' xmlns:x='ns_extend;' xmlns:i='ns_ai;' xmlns:graph='ns_graphs;' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0' y='0' viewBox='0 0 41.5 51' style='enable-background:new 0 0 41.5 51;' xml:space='preserve'%3E%3Cmetadata%3E%3Csfw xmlns='ns_sfw;'%3E%3Cslices%3E%3C/slices%3E%3CsliceSourceBounds bottomLeftOrigin='true' height='51' width='41.5' x='166.1' y='-208.1'%3E%3C/sliceSourceBounds%3E%3C/sfw%3E%3C/metadata%3E%3Cg%3E%3Cpath d='M40.2,17.4c-3.4,2.1-5.5,5.7-5.5,9.7c0,4.5,2.7,8.6,6.8,10.3c-.8,2.6-2,5-3.5,7.2c-2.2,3.1-4.5,6.3-7.9,6.3s-4.4-2-8.4-2 c-3.9,0-5.3,2.1-8.5,2.1s-5.4-2.9-7.9-6.5C2,39.5,.1,33.7,0,27.6c0-9.9,6.4-15.2,12.8-15.2c3.4,0,6.2,2.2,8.3,2.2 c2,0,5.2-2.3,9-2.3C34.1,12.2,37.9,14.1,40.2,17.4z M28.3,8.1C30,6.1,30.9,3.6,31,1c0-.3,0-.7-.1-1c-2.9,.3-5.6,1.7-7.5,3.9 c-1.7,1.9-2.7,4.3-2.8,6.9c0,.3,0,.6,.1,.9c.2,0,.5,.1,.7,.1C24.1,11.6,26.6,10.2,28.3,8.1z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E\")}.download-chip__headline.is-desktop::before{background-image:url(\"data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg opacity='.8'%3E%3Cpath d='M1.5 21H22.5V18H1.5V21Z' fill='%23000' stroke='white' stroke-width='.75'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M19.5 15C20.2956 15 21.0587 14.6839 21.6213 14.1213C22.1839 13.5587 22.5 12.7956 22.5 12V6C22.5 5.20435 22.1839 4.44129 21.6213 3.87868C21.0587 3.31607 20.2956 3 19.5 3H4.5C3.70435 3 2.94129 3.31607 2.37868 3.87868C1.81607 4.44129 1.5 5.20435 1.5 6V12C1.5 12.7956 1.81607 13.5587 2.37868 14.1213C2.94129 14.6839 3.70435 15 4.5 15H19.5ZM19.5 12H4.5V6H19.5V12Z' fill='%23000' stroke='white' stroke-width='.75'/%3E%3C/g%3E%3C/svg%3E%0A\")}.download-card .snowflake-code-snippet,.download-card .snowflake-code-snippet code,.download-card .snowflake-code-snippet pre{font-size:14px;color:#000;text-shadow:none !important}.download-chip:hover{background-color:var(--ui-background-05) !important;transition:300ms ease background-color}body:has(.snowflake-skip-to-content[style]) #subNav,.pushdown-banner-dismissed #subNav{top:var(--scroll-padding-top) !important;transition:300ms ease top}body:has(.snowflake-skip-to-content[style*=\"58\"]) #subNav{top:34px !important}body:has(.snowflake-skip-to-content[style*=\"82\"]) #subNav{top:58px !important}body:has(.snowflake-skip-to-content[style*=\"130\"]) #subNav{top:106px !important}body:has(.snowflake-skip-to-content[style*=\"138\"]) #subNav{top:114px !important}body:has(.snowflake-skip-to-content[style*=\"146\"]) #subNav{top:122px !important}.is-hidden .snowflake-person-chip-avatar{display:none}.is-small .snowflake-person-chip-avatar{width:56px;height:56px}.ai-summary ul{margin:16px 0 0 0 !important;padding:0 !important;list-style-type:none}.ai-summary li{margin:0;padding:0 0 0 32px;position:relative}.ai-summary li::before{content:\"\";display:block;border-radius:100%;background:#29b5e8;width:18px;height:18px;position:absolute;top:4px;left:0;border:5px solid #e5f2f7;box-sizing:border-box}.ai-summary li:not(:last-child){margin-bottom:1rem}.snowflake-content-chip-image__image{aspect-ratio:5 / 3 !important}.content-chip-new .snowflake-content-chip-image__image{height:100% !important;aspect-ratio:unset !important}.snapshot-card .snowflake-text p:not(:first-child){margin-top:var(--spacing-01)}.snapshot-card\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:nth-child(2) p:has(b){font-family:'Texta',sans-serif;margin-top:24px}.snapshot-card\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:nth-child(2) p b{font-weight:700 !important}.snapshot-card\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:nth-child(2){border-bottom:1px solid #ccc;padding-bottom:24px}.snapshot-card\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:nth-child(3) p:first-child:has(b){font-family:'Texta',sans-serif;font-size:20px !important;margin-bottom:1rem !important}.snapshot-card\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:nth-child(3) li{display:inline-block}.snapshot-card\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:nth-child(3) li a{display:inline-block;text-decoration:none;padding:4px 16px !important;border:1px solid #ccc;border-radius:24px;color:#666 !important}.snapshot-card\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:nth-child(3) ul{list-style-type:none;display:flex;padding:0 !important;margin:0 !important;gap:12px}.snapshot-card\u003E.container\u003E.cmp-container\u003E.aem-container img{width:90%;max-width:240px;margin:0 auto}.snapshot-card\u003E.container\u003E.cmp-container\u003E.aem-container{padding:40px;max-width:450px;margin:0 0 0 auto;background-color:#fff;box-shadow:0 2px 6px 0 rgba(152,162,179,.25),0 10px 20px 0 rgba(152,162,179,.10);border-radius:8px;border-top:4px solid var(--ui-01)}.ai-summary{background-color:#f3fbfe;border-left:2px solid var(--ui-01);padding:40px}.ai-summary\u003Espan p:last-child:has(i){color:#666;font-size:14px !important}.ai-summary\u003Espan p:last-child:has(i) a{color:#666 !important;text-decoration:underline !important}.ai-summary\u003Espan p:last-child:has(i) a:hover{color:var(--ui-01) !Important}.ai-summary\u003Espan p:first-child:has(b)::after{content:'';display:inline-block;width:20px;height:20px;background-image:url(\"data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M9.3158 3.15226C8.6475 6.2258 6.22698 8.64545 3.15232 9.31587C2.94923 9.36072 2.94923 9.63928 3.15232 9.68413C6.22698 10.3522 8.6475 12.7742 9.3158 15.8477C9.36067 16.0508 9.63933 16.0508 9.6842 15.8477C10.3525 12.7742 12.773 10.3545 15.8477 9.68413C16.0508 9.63928 16.0508 9.36072 15.8477 9.31587C12.773 8.64781 10.3525 6.2258 9.6842 3.15226C9.63933 2.94925 9.36067 2.94925 9.3158 3.15226Z' fill='%23249EDC'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M17.3725 11.5461C16.9098 13.6739 15.2341 15.3491 13.1054 15.8132C12.9649 15.8443 12.9649 16.0371 13.1054 16.0681C15.2341 16.5307 16.9098 18.2074 17.3725 20.3353C17.4035 20.4758 17.5965 20.4758 17.6275 20.3353C18.0902 18.2074 19.7659 16.5323 21.8946 16.0681C22.0352 16.0371 22.0352 15.8443 21.8946 15.8132C19.7659 15.3507 18.0902 13.6739 17.6275 11.5461C17.5965 11.4055 17.4035 11.4055 17.3725 11.5461Z' fill='%23249EDC'/%3E%3C/svg%3E%0A\");background-repeat:no-repeat;background-size:contain;background-position:center;vertical-align:middle;margin-left:8px}.ai-summary\u003Espan p:first-child:has(b){color:var(--ui-01) !important;text-transform:uppercase}.border-top{border-top:1px solid rgba(0,0,0,.2)}.border-top\u003Espan{display:block;padding-top:32px}body .snowflake-card-v2-advanced-image__image{aspect-ratio:16 / 9 !important}.content-chip-new .snowflake-content-chip-image__image{border-radius:0;object-fit:cover;height:100%}.sf-footer #ot-sdk-btn.ot-sdk-show-settings,.sf-footer #ot-sdk-btn.optanon-show-settings{color:rgba(255,255,255,.7) !important;text-underline-offset:4px;border-top:none;border-left:none;border-right:none;border-bottom:1px dotted transparent;background-color:transparent !important;background-image:none !important;transition:300ms ease text-decoration-color;padding:0 !important;font-size:12px;font-family:'Lato',sans-serif}.sf-footer #ot-sdk-btn.ot-sdk-show-settings:hover,.sf-footer #ot-sdk-btn.optanon-show-settings:hover{color:rgba(255,255,255,1) !important;border-bottom:1px dotted var(--ui-01);transition:300ms ease text-decoration-color}.sf-footer__legal-container\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:last-child{flex-shrink:0}.sf-footer__disclaimers{background-color:#042130}.sf-footer__disclaimers .snowflake-simple-stat-disclaimer p a{color:inherit;text-decoration:none !important}.sf-footer__disclaimers .snowflake-simple-stat-disclaimer p sup{margin-right:2px}.sf-footer__disclaimers .snowflake-simple-stat-disclaimer p{text-indent:-5px;padding-left:5px}.sf-footer__disclaimers-inner{border-top:1px solid rgba(255,255,255,.25);padding:40px 0}.sf-footer__disclaimers .snowflake-simple-stat{align-items:flex-start;text-align:left;color:rgba(255,255,255,.7);margin-bottom:10px}.sf-footer__social{display:flex;justify-content:center;gap:12px}.sf-footer .snowflake-footer-social-item{margin:0 !important}.sf-footer .snowflake-footer-social-item a{line-height:0;background-color:rgba(3,24,35,.8);display:inline-block;width:48px !important;height:48px;border-radius:8px;display:inline-flex;justify-content:center;align-items:center;transition:300ms ease background-color}.sf-footer .snowflake-footer-social-item a:hover{background-color:var(--ui-01) !important;transition:300ms ease background-color}.sf-footer__bottom{padding-bottom:40px}.sf-footer .snowflake-marketo-form .mktoFormRow .mktoFieldWrap .mktoError .mktoErrorMsg{max-width:100%;color:#fff}.sf-footer .mktoForm .mktoError .mktoErrorMsg .mktoErrorDetail{display:inline-block}.sf-footer .mktoFormRow:has(.mktoHtmlText:empty){display:none}.sf-footer .mktoFormRow .mktoHtmlText span{color:#fff !important}.sf-footer{background-color:#042130}.sf-footer .optanon-toggle-display:hover{text-decoration-color:var(--ui-01) !important;cursor:pointer !important;text-underline-offset:4px;text-decoration-style:dotted !important;text-decoration-color:var(--ui-01);color:#fff !important;transition:300ms ease text-decoration-color;text-decoration:underline;opacity:1}.sf-footer__logo{width:40px}.sf-footer-grid__inner\u003E.container\u003E.cmp-container\u003E.aem-container{row-gap:32px}.sf-footer__legal-container\u003E.container\u003E.cmp-container\u003E.aem-container{display:flex;justify-content:space-between;align-items:center;text-align:center;row-gap:16px}.sf-footer__legal-container\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:nth-child(2){text-align:center;flex-grow:1}.sf-footer__legal-links li button,.sf-footer__legal-links li a,.sf-footer__legal-links li{margin:0;color:rgba(255,255,255,.7) !important;font-weight:500}.sf-footer__legal-links li a:hover{color:rgba(255,255,255,1) !important}.sf-footer div.sf-footer__copyright p,.sf-footer div.sf-footer__legal-links li,.sf-footer div.sf-footer__legal-links a,.sf-footer div.sf-footer__legal-links p{font-size:12px !important}.sf-footer__legal-links ul{list-style-type:none;margin:0;padding:0;display:flex;gap:20px;row-gap:4px;justify-content:center;flex-wrap:wrap;text-align:center}.sf-footer__legal-links li:last-child{width:100%}.sf-footer .mktoFormRow:has(.mktoPlaceholder),.sf-footer .mktoFormRow:has(input[type=\"hidden\"]){display:none !important}.sf-footer .mktoFormCol{margin-bottom:0 !important}.sf-footer label[for=\"adhoc1\"]{width:auto !important;flex-grow:1;margin-left:16px}.sf-footer .mktoFieldWrap:has(label[for=\"adhoc1\"]){display:flex;flex-direction:row-reverse;margin-top:22px}.sf-footer .snowflake-marketo-form .mktoFormRow .mktoFieldWrap .mktoCheckboxList input[type=checkbox]{background-color:transparent !important;border:1px solid rgba(255,255,255,.4) !important;border-radius:4px !important}.sf-footer .snowflake-marketo-form .mktoFormRow .mktoFieldWrap .mktoEmailField,.sf-footer .snowflake-marketo-form .mktoFormRow .mktoFieldWrap .mktoTelField,.sf-footer .snowflake-marketo-form .mktoFormRow .mktoFieldWrap .mktoTextField,.sf-footer .snowflake-marketo-form .mktoFormRow .mktoFieldWrap select{background-color:transparent !important;color:#fff !important;height:auto !important;border:1px solid rgba(255,255,255,.4) !important;border-radius:4px !important;padding:12px 18px !important}.sf-footer .snowflake-marketo-form .mktoFormRow .mktoFieldWrap .mktoEmailField:focus,.sf-footer .snowflake-marketo-form .mktoFormRow .mktoFieldWrap .mktoTelField:focus,.sf-footer .snowflake-marketo-form .mktoFormRow .mktoFieldWrap .mktoTextField:focus,.sf-footer .snowflake-marketo-form .mktoFormRow .mktoFieldWrap select:focus{border-color:var(--ui-01) !important}.sf-footer .mktoForm *{padding:0 !important}.sf-footer .mktoForm,.sf-footer .snowflake-marketo-form-container{padding:0 !important;background:transparent;margin-bottom:0;box-shadow:none}.sf-footer .mktoHtmlText.mktoHasWidth{width:100% !important;margin:24px 0}.sf-footer .mktoFormRow{flex-direction:column}.sf-footer .mktoForm .mktoButtonWrap{margin:0 !important}.sf-footer select{background-image:url(\"data:image/svg+xml,%3Csvg width='14' height='8' viewBox='0 0 14 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M.981445 1.43496L6.90897 7.32496L12.9314 1.33496' stroke='white' stroke-width='1.33333' stroke-miterlimit='10' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A\") !important}.sf-footer .snowflake-marketo-form .mktoButtonWrap.mktoNative{justify-content:flex-start}.sf-footer *::placeholder{color:#fff !important;opacity:.8}.sf-footer .mktoForm .mktoButtonWrap.mktoSimple .mktoButton{background-color:var(--ui-01) !important;color:#fff !important;width:100% !important;padding:12px 16px !important;border:1px solid var(--ui-01) !important;background-image:none !important;border-radius:48px;text-transform:uppercase;font-weight:800 !important;font-family:'Texta',sans-serif !important;font-size:16px !important;line-height:1.2}.sf-footer .snowflake-marketo-form .mktoFormRow .mktoFieldWrap .mktoHtmlText\u003Espan,.sf-footer .snowflake-marketo-form .mktoFormRow .mktoFieldWrap .mktoLabel\u003Espan,.sf-footer .snowflake-marketo-form .mktoFormRow .mktoFieldWrap label.mktoLabel{color:#fff !important}.sf-footer__newsletter-title p:not(:first-child){margin-top:8px !important}.sf-footer__newsletter-title p b{font-weight:800 !important;font-family:'Texta',sans-serif !important;font-size:22px !important;line-height:1.2}.sf-footer__newsletter-title p:last-child{font-size:14px !important;opacity:.8}.sf-footer__link-group li a[target=\"_blank\"]::after{content:'';display:inline-block;width:10px;height:10px;margin-left:5px;background-image:url(\"data:image/svg+xml,%3Csvg width='11' height='11' viewBox='0 0 11 11' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.72222 1.22222C6.38471 1.22222 6.11111 .948616 6.11111 .611111C6.11111 .273607 6.38471 0 6.72222 0H10.3889C10.551 0 10.7064 .0643867 10.821 .178988C10.9356 .293596 11 .449032 11 .611111V4.27778C11 4.61529 10.7264 4.88889 10.3889 4.88889C10.0514 4.88889 9.77778 4.61529 9.77778 4.27778V2.08647L4.09879 7.76545C3.86013 8.00409 3.4732 8.00409 3.23454 7.76545C2.99589 7.52681 2.99589 7.13986 3.23454 6.90122L8.91355 1.22222H6.72222ZM0 2.44444C0 1.76943 .547207 1.22222 1.22222 1.22222H4.27778C4.61529 1.22222 4.88889 1.49583 4.88889 1.83333C4.88889 2.17084 4.61529 2.44444 4.27778 2.44444H1.22222V9.77778H8.55556V6.72222C8.55556 6.38471 8.82915 6.11111 9.16667 6.11111C9.50418 6.11111 9.77778 6.38471 9.77778 6.72222V9.77778C9.77778 10.4528 9.23059 11 8.55556 11H1.22222C.547207 11 0 10.4528 0 9.77778V2.44444Z' fill='white'/%3E%3C/svg%3E%0A\");background-size:contain;background-repeat:no-repeat;background-position:center}.sf-footer__link-group ul,.sf-footer__link-group li{margin:0;padding:0;list-style-type:none}.sf-footer__link-group ul{margin-top:20px !important}.sf-footer__link-group li{margin-top:15px}.sf-footer div.sf-footer__link-group\u003Espan\u003Ep\u003Ea,.sf-footer div.sf-footer__link-group\u003Espan\u003Ep{color:var(--ui-01) !important;font-weight:800 !important;font-family:'Texta',sans-serif !important;font-size:20px !important;line-height:1.2}.sf-footer__link-group li a{opacity:.9;color:#fff !important;font-weight:500 !important;font-size:15px !important;line-height:1.3}.sf-footer__link-group li a:hover{opacity:1}.sf-footer-grid__inner\u003E.container\u003E.cmp-container\u003E.aem-container::before,.sf-footer-grid__inner\u003E.container\u003E.cmp-container\u003E.aem-container::after{display:none}.sf-footer__column{flex-grow:1}.sf-footer-grid__inner\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:not(:first-child){width:50%}@media (min-width:800px){.sf-footer__legal-links ul{justify-content:flex-start;text-align:left}.sf-footer__social{justify-content:flex-end}.sf-footer__legal-links ul{padding-left:24px}.sf-footer__legal-container\u003E.container\u003E.cmp-container\u003E.aem-container{text-align:right;flex-wrap:nowrap}.sf-footer__legal-links.align-left ul{justify-content:flex-start}.sf-footer-grid__inner\u003E.container\u003E.cmp-container\u003E.aem-container{display:flex;justify-content:space-between;flex-direction:row}.sf-footer-grid__inner\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:auto !important;max-width:200px}.sf-footer-grid__inner:not(.hidden-newsletter)\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:first-child{flex-grow:1;order:2;width:100% !important;max-width:none}.sf-footer__legal-container\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:auto}}@media screen and (min-width:1380px){.sf-footer-grid__inner\u003E.container\u003E.cmp-container\u003E.aem-container{flex-wrap:nowrap}.sf-footer-grid__inner:not(.hidden-newsletter)\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:first-child{padding-right:48px;max-width:380px;background-color:rgba(3,24,35,.4);padding:32px;margin-left:48px;border-radius:16px}.sf-footer__link-group li,.sf-footer__link-group li a{font-size:14px !important;line-height:1.3}}@media screen and (max-width:991px){.sf-footer-grid__inner\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv:first-child{order:2;margin-top:24px !important}}@media screen and (max-width:420px){.is-reduced-mobile .heading-1-v2,.is-reduced-mobile .heading-1-v2-sm{font-size:32px;line-height:28px}}.quote-content-chip{background-color:var(--ui-background-05);padding:24px;border-radius:12px;position:relative}.quote-content-chip .black-blue-text-color .snowflake-title-v2-line\u003Espan{color:rgba(0,0,0,.8) !important;font-size:15px !important;line-height:1.5 !important;font-family:'Lato',sans-serif;font-weight:400 !important}.quote-content-chip .black-blue-text-color .snowflake-title-v2-line\u003Espan:not(:first-child){max-width:calc(100% - 200px)}.quote-content-chip .black-blue-text-color .snowflake-title-v2-line\u003Espan:nth-child(2){font-family:'Texta',sans-serif;color:#000 !important;font-size:20px !important;font-weight:800 !important;margin-top:24px}.quote-content-chip .snowflake-content-chip-image{width:140px !important}@media screen and (min-width:992px){.quote-content-chip .snowflake-content-chip-image{position:absolute !important;bottom:24px;right:16px}}@media screen and (max-width:991px){.quote-content-chip .snowflake-content-chip-image{margin-bottom:40px}.quote-content-chip{flex-direction:column}}#spa-root{background-color:#fff}.lowercase .snowflake-title-v2-line{text-transform:none !important}.centered .snowflake-logo-content-container-inner{justify-content:center}div.snowflake-linklist-dropdown-menu{max-height:380px}.first-line-blue .snowflake-typographyv2 .snowflake-title-v2-line:first-child{color:var(--ui-01) !important}.is-front{position:relative;z-index:2}.use-case-body .snowflake-text h1,.use-case-body .snowflake-text h2,.use-case-body .snowflake-text h3,.use-case-body .snowflake-text h4,.use-case-body .snowflake-text h5,.use-case-body .snowflake-text h6{font-family:'Texta',sans-serif;color:#000;margin:.25rem 0 0 0}.pc-hero .button-group\u003E.container\u003E.cmp-container\u003E.aem-container{justify-content:flex-start}.sf-footer .mktoFormRow .mktoHtmlText span{font-family:'Lato',sans-serif !important}.snowflake-button-primary.snowflake-button-blue .snowflake-button-container{justify-content:center}.related-chip-25{background-color:#fff;border:1px solid rgba(204,204,204,.5);border-radius:8px;padding:20px;position:relative}.related-chip-25:hover{box-shadow:rgba(152,162,179,.1) 0 10px 20px 0}.related-chip-25:hover::after{right:24px;transition:300ms ease right}.related-chip-25::after{content:'';display:block;transition:300ms ease right;background-image:url(\"data:image/svg+xml,%3Csvg width='8' height='14' viewBox='0 0 8 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M7.66699 7C7.66699 6.6571 7.53559 6.32825 7.30169 6.08578L2.34446 .947072C1.84529 .429617 1.0164 .429617 .517219 .947072C.0427878 1.43887 .042788 2.21798 .517219 2.70978L4.65591 7L.51722 11.2902C.0427889 11.782 .0427887 12.5611 .51722 13.0529C1.0164 13.5704 1.84529 13.5704 2.34447 13.0529L7.30169 7.91421C7.53559 7.67175 7.66699 7.34289 7.66699 7Z' fill='%2329B5E8'/%3E%3C/svg%3E%0A\");width:8px;height:14px;display:block;position:absolute;right:30px;top:50%;transform:translateY(-50%);background-size:contain;background-position:center;background-repeat:no-repeat}.related-chip-25 .heading-5-v2{font-size:22px;line-height:1.1}.related-chip-25 .snowflake-content-chip-image{width:48px;flex-shrink:0}.related-chip-25 .snowflake-content-chip-image__image{aspect-ratio:1;height:auto;object-fit:contain}.related-chip-25 .snowflake-content-chip-button{display:none}.related-chip-25 .snowflake-content-chip-content-without-tag{flex-grow:1;padding-right:24px}.case-study-25.small-logo .snowflake-case-study-card-logo img{width:60px !important}.swiper-slide .case-study-25{width:95%;margin-left:auto;margin-right:auto}.case-study-25 .snowflake-case-study-card-logo img{width:140px !important;height:auto !important;transform:none !important;margin:24px 0 8px 0}.case-study-25 .snowflake-case-study-card-image__image{object-position:left center}.case-study-25 .snowflake-case-study-card-information-container{padding-right:24px}.case-study-25 ul{list-style-type:none;padding:0;margin:8px 0 0 0}.case-study-25 li{font-size:15px !important;line-height:1.3 !important;display:flex;flex-direction:column;border-left:4px solid var(--ui-01);padding-left:24px;margin-top:24px;color:#535862;gap:4px}.case-study-25 li b{display:block;font-family:'Texta',sans-serif;font-weight:900 !important;font-size:48px !important;line-height:.9 !important;color:var(--ui-01)}.case-study-25 .snowflake-case-study-card-description p{color:#535862}.case-study-25 .snowflake-case-study-card-description p:nth-child(2):not(:has(a)){color:#000;font-family:Texta;font-size:30px !important;line-height:1 !important;font-style:normal;font-weight:700;text-indent:-8px}.case-study-25.is-story .snowflake-case-study-card-description p:nth-child(2):not(:has(a)){text-indent:0}.case-study-25 .snowflake-case-study-card-key-card{background-color:transparent}.case-study-25 .snowflake-case-study-card-button{display:none}.case-study-25{border-radius:24px;overflow:hidden}@media screen and (min-width:1024px){.case-study-25 .snowflake-case-study-card-left-container{position:static;width:60%;min-height:0}.case-study-25 .snowflake-case-study-card-right-container::after{content:'';display:block;width:60%;max-width:340px;padding-bottom:50%;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 22 16' class='snowflake-pushdown-banner-placeholder-arrow'%3E%3Cpath fill='%2329B5E8' fill-rule='evenodd' d='M17.865 8.756c.088-.274.124-.555.118-.834a2.551 2.551 0 0 0-1.3-2.142L7.887.76C6.645.055 5.063.475 4.35 1.7a2.535 2.535 0 0 0 .947 3.494l4.916 2.809-4.916 2.801a2.543 2.543 0 0 0-.947 3.502c.713 1.222 2.295 1.64 3.537.934l8.796-5.024a2.541 2.541 0 0 0 1.182-1.46Z' clip-rule='evenodd'%3E%3C/path%3E%3C/svg%3E\");background-size:contain;background-repeat:no-repeat;position:absolute;top:-10%;left:-20%}.case-study-25 .snowflake-case-study-card-right-container{max-width:none;width:40%;position:absolute;top:-5%;right:-5%;z-index:0;height:110%}}@media screen and (min-width:768px){.case-study-25 li{max-width:50%}.case-study-25 ul{display:flex;gap:48px}}.snowflake-text.section-eyebrow p{margin-left:auto;margin-right:auto;margin-bottom:16px !important}.snowflake-text.section-eyebrow p,.snowflake-text.eyebrow-text p{text-transform:uppercase;font-family:'Texta',sans-serif !important;font-weight:800 !important;letter-spacing:.025em;margin-bottom:12px;line-height:1.1 !important}.snowflake-title-v2.dynamic .heading-2-v2 span.snowflake-title-v2-line{font-size:clamp(2.5rem,4.5vw,4rem) !important;line-height:.82 !important}.checklist ul{padding:0;margin:0}.checklist ul li{list-style-type:none;padding-left:32px;position:relative}.checklist ul li:not(:last-child){margin-bottom:1em}.checklist ul li::before{content:'';display:inline-block;width:20px;height:20px;background-image:url(\"data:image/svg+xml,%3Csvg width='24' height='25' viewBox='0 0 24 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect y='.985352' width='24' height='24' rx='12' fill='%23D4F0FA'/%3E%3Cpath d='M7.28613 13.2967L10.7147 16.7253L17.5718 9.86816' stroke='%2329B5E8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A\");background-size:contain;background-repeat:no-repeat;position:absolute;top:3px;left:0}.last-line-blue .snowflake-typographyv2 .snowflake-title-v2-line:last-child{color:var(--ui-01)}.snowflake-text p sup{line-height:0}.snowflake-title-v2.lowercase .heading-3-v2{font-size:28px;line-height:1;text-transform:none;font-weight:700}.snowflake-title-v2.lowercase .heading-2-v2{font-size:32px;line-height:1;text-transform:none;font-weight:700}.content-chip-new{border:1px solid rgba(204,204,204,.5);border-radius:16px;overflow:hidden}.content-chip-new .snowflake-image-container{border-radius:0;display:none}.content-chip-new .snowflake-content-chip-image{margin-right:0;max-width:180px;flex-shrink:0}.content-chip-new .snowflake-content-chip-content{padding:24px}.content-chip-new .black-blue-text-color .snowflake-title-v2-line:first-child{font-size:24px;line-height:1.1}.content-chip-new .black-blue-text-color .snowflake-title-v2-line:not(:first-child){font-family:'Lato',sans-serif;font-size:17px;color:#535862 !important;font-weight:500;line-height:1.45;margin-top:8px;display:none}div.snowflake-text a{font-weight:normal;color:var(--ui-01);text-decoration:underline;text-underline-offset:4px;text-decoration-style:dotted !important;text-decoration-color:transparent;transition:300ms ease text-decoration-color}div.snowflake-text a:hover{text-decoration-color:var(--ui-01);transition:300ms ease text-decoration-color}.footer-nav__link-group .snowflake-button-container,.subnav__item--button,.snowflake-card-v2-advanced-button .snowflake-button-container{justify-content:flex-start}.button-container\u003E.container\u003E.cmp-container\u003E.aem-container{align-items:center}.button-container\u003E.container\u003E.cmp-container\u003E.aem-container .snowflake-button-primary+.snowflake-button-link{margin-left:12px !important}.snowflake-button-regular.snowflake-button-link .snowflake-button-container{font-size:18px !important;text-align:left;justify-content:flex-start;line-height:1.4 !important}body .snowflake-card-v2-advanced{border:1px solid rgba(204,204,204,.5);border-radius:var(--spacing-02);transition:300ms ease all}body .snowflake-card-v2-advanced:hover{box-shadow:rgba(152,162,179,.1) 0 10px 20px 0;transition:300ms ease all}body .snowflake-card-v2-advanced-inner{border-bottom:none}body .snowflake-card-v2-advanced-image{line-height:0}body .snowflake-card-v2-advanced-image__image{aspect-ratio:16 / 9}body .snowflake-card-v2-advanced-content{position:relative}body .snowflake-card-v2-advanced-content::after{content:'';display:block;position:absolute;bottom:0;left:0;transition:300ms ease all;width:20%;height:4px;background-color:var(--ui-01);opacity:0}body .snowflake-card-v2-advanced:hover .snowflake-card-v2-advanced-content::after{width:100%;opacity:1;transition:300ms ease all}body .snowflake-card-v2-advanced .snowflake-button-link.snowflake-button-blue .snowflake-button-container\u003E.link-icon{transition:300ms ease transform}body .snowflake-card-v2-advanced:hover .snowflake-button-link.snowflake-button-blue .snowflake-button-container\u003E.link-icon{transform:translateX(4px);transition:300ms ease transform}.six-columns\u003E.container\u003E.cmp-container\u003E.aem-container,.three-columns\u003E.container\u003E.cmp-container\u003E.aem-container,.four-columns\u003E.container\u003E.cmp-container\u003E.aem-container,.five-columns\u003E.container\u003E.cmp-container\u003E.aem-container{display:flex;flex-wrap:wrap;gap:24px}.six-columns.align-center\u003E.container\u003E.cmp-container\u003E.aem-container,.three-columns.align-center\u003E.container\u003E.cmp-container\u003E.aem-container,.four-columns.align-center\u003E.container\u003E.cmp-container\u003E.aem-container,.five-columns.align-center\u003E.container\u003E.cmp-container\u003E.aem-container{justify-content:center}.three-columns\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:100%;margin:0 !important}.six-columns\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv,.four-columns\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv,.five-columns\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:calc(50% - 12px);margin:0 !important}@media screen and (min-width:768px){.three-columns\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:calc(50% - 12px)}.six-columns\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv,.four-columns\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv,.five-columns\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:calc(33.333% - 16px)}}@media screen and (min-width:1024px){.snowflake-title-v2.lowercase .heading-3-v2{font-size:34px}.snowflake-title-v2.lowercase.larger .heading-2-v2{font-size:44px;line-height:.95}.three-columns\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:calc(33.333% - 16px)}.four-columns\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:calc(25% - 18px)}.five-columns\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:calc(20% - 19.2px)}.six-columns\u003E.container\u003E.cmp-container\u003E.aem-container\u003Ediv{width:calc(16.6666% - 20px)}.snowflake-title-v2.lowercase .heading-3-v2{font-size:28px !important}}@media screen and (min-width:1200px){.snowflake-title-v2.lowercase .heading-2-v2{font-size:40px}.content-chip-new .snowflake-content-chip-content{padding:32px}.content-chip-new .snowflake-image-container,.content-chip-new .black-blue-text-color .snowflake-title-v2-line:not(:first-child){display:block}}.promo-banner-25{border-radius:16px;overflow:hidden}.promo-banner-25 .snowflake-premium-content-banner-image-container{position:relative;max-width:380px}.promo-banner-25 .snowflake-text{color:#535862}.promo-banner-25 .snowflake-premium-content-banner-image__image{transform:translateY(8px);transition:300ms ease transform;border-radius:0;width:85%;margin:0 auto;display:block;position:relative;z-index:1}.promo-banner-25 .snowflake-premium-content-banner-image__link:hover .snowflake-premium-content-banner-image__image{transform:translateY(0);transition:300ms ease transform}.promo-banner-25 .snowflake-premium-content-banner-image__inner{height:auto;padding-top:24px}.promo-banner-25 .snowflake-premium-content-banner-image__link{position:relative;z-index:1;height:auto}.promo-banner-25 .snowflake-premium-content-banner-image__link::after{content:'';display:block;position:absolute;clip-path:polygon(0 0,66% 0,100% 100%,0 100%);bottom:0;left:0;width:100%;height:100%;background:var(--ui-01);transition:300ms ease width}.promo-banner-25 .snowflake-premium-content-banner-image__link:hover::after{width:110%;transition:300ms ease width}.sf-footer .snowflake-marketo-form .mktoFormRow .mktoFieldWrap select{background-position:95% 50%}.sf-footer__disclaimers .text-size-small .snowflake-text p{color:#fff !important;font-size:10px !important;opacity:.8}@media screen and (min-width:768px){.sf-footer__disclaimers .text-size-small .snowflake-text p{font-size:12px !important}}@media screen and (max-width:1023px){.mobile-top-padding{padding-top:64px}}@media (max-width:799px){.sf-footer .snowflake-marketo-form .mktoButtonWrap.mktoNative .mktoButton{width:100% !important}.sf-footer__logo{text-align:center;display:block;margin:0 auto}}.customer-card .snowflake-card-v2-advanced-image{aspect-ratio:4.35 / 1}.customer-card .snowflake-card-v2-advanced-image__image{width:100%;height:100%;padding-left:8px;object-fit:contain;object-position:left center;margin:0 !important;aspect-ratio:initial}.customer-card .snowflake-card-v2-advanced-image__inner{height:110px}.customer-card .snowflake-card-v2-advanced-tag-indicator{display:none}.pc-hero .snowflake-container-arrow-small-gray-image{top:-34% !important;width:18% !important}.pc-hero .snowflake-container-arrow-small-gray-image path{fill:var(--ui-01);opacity:1}@media screen and (max-width:767px){.mobile-padding-top{padding-top:64px}.hide-mobile{display:none !important}.pc-hero{padding-top:52px}.pc-hero .snowflake-text p,.pc-hero .left-alignment .snowflake-title-v2-line,.pc-hero h1 span{text-align:center !important}}div.snowflake-pushdown-banner-button{margin-top:0}.button-group.align-center\u003E.container\u003E.cmp-container\u003E.aem-container{align-items:center;justify-content:center !important}.text-center .snowflake-breadcrumb-swiper .swiper-wrapper{justify-content:center}div.snowflake-breadcrumb a.snowflake-breadcrumb-item,.snowflake-breadcrumb div.snowflake-breadcrumb-item{text-transform:none;font-weight:500}.snowflake-breadcrumb svg{display:none !important}.snowflake-breadcrumb a:has(svg)::after{content:'/';margin:0 12px;color:#666}.hide-filters .snowflake-filterable-and-searchable-grid-top-part{display:none !important}.page-section{padding-left:24px;padding-right:24px}@media screen and (min-width:768px){.page-section{padding-left:48px;padding-right:48px}}.download-card pre[class*=language-]{overflow-x:scroll !important}",":type":"snowflake-site/components/markup-editor","isGSAPEnabled":false}},":itemsOrder":["container_copy","container_573483281_","markup_editor_copy"]}},":itemsOrder":["root"]},"markup_editor":{"id":"markup-editor-314372d928","title":"Quickstarts Overrides","cssUrl":"/conf/snowflake-site/settings/wcm/templates/quickstart-page-template/structure/_jcr_content/root/markup_editor.45e3b816710d8d5a.css",":type":"snowflake-site/components/markup-editor","isGSAPEnabled":false}},":itemsOrder":["experiencefragment-banner","experiencefragment-header","markup_editor_1950346551","responsivegrid","modal_container","experiencefragment-footer","markup_editor"],":type":"wcm/foundation/components/responsivegrid"}},":itemsOrder":["root"],":hierarchyType":"page",":path":"/content/snowflake-site/global/en/developers/guides/build-fwa-detection-platform-cortex-ai","isPasswordProtected":false,"analyticsContentTags":["snowflake-site:taxonomy/solution-center/certification/quickstart","snowflake-site:taxonomy/snowflake-feature/ml-functions","snowflake-site:taxonomy/snowflake-feature/cortex-analyst","snowflake-site:taxonomy/snowflake-feature/cortex-llm-functions","snowflake-site:taxonomy/industry/public-sector","snowflake-site:taxonomy/product/ai","snowflake-site:taxonomy/snowflake-feature/dynamic-tables","snowflake-site:taxonomy/snowflake-feature/cortex-search","snowflake-site:taxonomy/industry/healthcare-and-life-sciences"],"analyticsEnabled":true,"coveoConfig":{"pipeline":"snowflake.com","searchHub":"snowflake.com","organizationId":"snowflakecomputingproduction8neljofn","apiKey":"xx335921a6-2a0a-40f2-a167-e390b4766c3d"},"analyticsDebugMode":false,"analyticsData":{"excludeFromAnalytics":false,"subCategory":"guides","pageType":"developer","templateName":"quickstart-page-template","siteName":"snowflake","pageUrl":"/en/developers/guides/build-fwa-detection-platform-cortex-ai/","language":"en","category":"developers","pageName":"Build a Fraud, Waste, and Abuse Detection Platform with Snowflake Cortex AI","contentTags":["snowflake-site:taxonomy/solution-center/certification/quickstart","snowflake-site:taxonomy/snowflake-feature/ml-functions","snowflake-site:taxonomy/snowflake-feature/cortex-analyst","snowflake-site:taxonomy/snowflake-feature/cortex-llm-functions","snowflake-site:taxonomy/industry/public-sector","snowflake-site:taxonomy/product/ai","snowflake-site:taxonomy/snowflake-feature/dynamic-tables","snowflake-site:taxonomy/snowflake-feature/cortex-search","snowflake-site:taxonomy/industry/healthcare-and-life-sciences"]},"publicationThemeClass":"","locale":"en"}
  