
Unimed CNU é a 5ª maior operadora de saúde do Brasil
Divulgada no mês de setembro, a edição 2026 do anuário Valor 1000, do Valor Econômico, posiciona a Unimed CNU como a 5ª maior empresa do setor no país. O marco consolida o ciclo de recuperação econômico-financeira da Cooperativa, viabilizado pelo apoio e pela confiança das Sócias, reafirmando o protagonismo do Sistema Unimed no mercado.
A publicação deste ano evidencia que o crescimento sustentável na saúde suplementar exige eficiência. Alinhada a essa premissa, a CNU implementou, há 18 meses, um programa de reestruturação focado na disciplina financeira, no fortalecimento da governança, na revisão de contratos e no combate rigoroso a fraudes e desperdícios.
Os reflexos já foram vistos em 2025, quando a Cooperativa destinou R$ 10,1 bilhões à rede assistencial, movimentando uma ampla cadeia de cuidado e gerando valor para todo o ecossistema. Em 2026, os indicadores seguem positivos e consistentes: clique aqui e leia a matéria completa sobre os resultados do primeiro semestre.
A CNU também ampliou o uso de tecnologia e inteligência artificial para otimizar a operação e aplicar melhorias diretas na experiência de atendimento aos clientes. Os investimentos contínuos estão voltados à qualificação da rede credenciada e aos canais digitais, englobando a expansão da telemedicina, do agendamento online e de programas de orientação da jornada de cuidado. Esse modelo atende à vocação da companhia para o mercado corporativo, segmento que atualmente concentra 98% da carteira de mais de 2,12 milhões de beneficiários. A solidez da atuação reflete também a confiança das empresas: entre os 28 líderes setoriais reconhecidos pelo ranking Valor 1000, 12 são clientes da CNU.
Para o presidente da Cooperativa, Luiz Otávio de Andrade, o resultado valida a estratégia adotada: "A posição no Valor 1000 demonstra a consistência da transformação. A conquista ganha ainda mais significado ao receber esse reconhecimento ao lado de 34 Unimeds, demonstrando a força do cooperativismo médico", avaliou.
O destaque no anuário evidencia ainda a capilaridade e a robustez do Sistema Unimed, responsável por cerca de um terço do mercado nacional de saúde suplementar e presente em 92% dos municípios brasileiros.
The following has evaluated to null or missing:
==> journalArticle.getDisplayDate [in template "53466405417913#7352900#7367229" at line 71, column 34]
----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign articleDate = journalArticle... [in template "53466405417913#7352900#7367229" at line 71, column 11]
----
1<style>
2 #socias-posts-relacionados-wrapper {
3 box-shadow: 0px 2px 4px 0px rgba(39, 40, 51, 0.12);
4 border-radius: 16px;
5 padding: 25px;
6 border: solid 1px rgba(107, 108, 126, 0.2);
7 background-color: rgba(255, 255, 255, 1);
8 display: flex;
9 flex-direction: column;
10 gap: 32px;
11 }
12
13 #socias-posts-relacionados-wrapper .socias-card-post-relacionados {
14 display: flex;
15 flex-direction: column;
16 gap: 16px;
17 }
18
19 #socias-posts-relacionados-wrapper .principal-title {
20 font-family: 'Unimed Sans';
21 color: #141419;
22 font-size: 1.25rem;
23 line-height: 1.75rem;
24 font-weight: 700;
25 margin: 0px;
26 }
27
28 #socias-posts-relacionados-wrapper .socias-post-relacionado-link {
29 font-size: 1rem;
30 line-height: 1.375rem;
31 font-weight: 700;
32 color: #141419;
33 font-family: 'Unimed Sans';
34 }
35
36 #socias-posts-relacionados-wrapper .socias-post-relacionado-link:hover {
37 text-decoration: underline;
38 }
39
40 #socias-posts-relacionados-wrapper .socias-date {
41 font-size: 1rem;
42 line-height: 1.375rem;
43 font-weight: 400;
44 color: #6B6C7E;
45 }
46
47 @media (max-width: 800px) {
48 #socias-posts-relacionados-wrapper {
49 margin: 32px 16px;
50 }
51 }
52</style>
53<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
54<#assign GroupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService") />
55<#assign AssetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") />
56
57<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
58<#assign HtmlUtil = staticUtil["com.liferay.portal.kernel.util.HtmlUtil"] />
59
60<div id="socias-posts-relacionados-wrapper">
61 <h3 class="principal-title">Posts relacionados</h3>
62
63 <div>
64 <#if entries?has_content>
65 <div class="socias-card-post-relacionados">
66 <#list entries as entry>
67 <#assign assetEntry = AssetEntryLocalService.getEntry(entry.getClassName(), entry.getClassPK()) />
68 <#assign assetRenderer = assetEntry.getAssetRenderer() />
69 <#assign journalArticle = assetRenderer.getAssetObject() />
70 <#assign assetCategories = assetEntry.getCategories() />
71 <#assign articleDate = journalArticle.getDisplayDate()?string("dd'/'MM'/'yyyy") />
72
73 <#-- Reading time (words per minute = 200) -->
74 <#assign rawContent = journalArticle.getContent()?if_exists!"" />
75 <#assign textContent = HtmlUtil.stripHtml(rawContent) />
76 <#assign textContent = HtmlUtil.unescape(textContent) />
77 <#assign textContent = textContent?replace("\\$\\{[^}]+\\}", "", "r") />
78 <#assign textContent = textContent?replace("\\]\\]>", "", "r") />
79 <#assign textContent = textContent?replace(" ", " ", "r") />
80 <#assign textContent = textContent?replace("\n", " ", "r") />
81 <#assign textContent = textContent?replace("\r", " ", "r") />
82 <#assign textContent = textContent?replace("\t", " ", "r") />
83 <#assign textContent = textContent?replace("\\s+", " ", "r")?trim />
84 <#assign words = (textContent?length > 0)?then(textContent?split(" ")?size, 0) />
85 <#assign wpm = 200 />
86 <#assign minutes = (words / wpm)?ceiling />
87 <#if minutes < 1><#assign minutes = 1 /></#if>
88 <#assign assetCategories = assetEntry.getCategories() />
89 <#assign articleDate = journalArticle.getCreateDate()?string("dd'/'MM'/'yyyy") />
90
91 <#-- Monta link já com o categoryId -->
92 <#if assetCategories?has_content>
93 <#assign firstCategory = assetCategories[0] />
94 <#assign articleURL = entry.getViewURL() + "&category=" + firstCategory.getCategoryId() />
95 <#else>
96 <#assign articleURL = entry.getViewURL() />
97 </#if>
98
99 <a href="${articleURL}" class="text-decoration-none">
100 <div class="d-flex mb-1">
101 <div class="mr-2">
102 <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
103 <path d="M8.75016 1.16663H3.50016C3.19074 1.16663 2.894 1.28954 2.6752 1.50833C2.45641 1.72713 2.3335 2.02387 2.3335 2.33329V11.6666C2.3335 11.976 2.45641 12.2728 2.6752 12.4916C2.894 12.7104 3.19074 12.8333 3.50016 12.8333H10.5002C10.8096 12.8333 11.1063 12.7104 11.3251 12.4916C11.5439 12.2728 11.6668 11.976 11.6668 11.6666V4.08329L8.75016 1.16663Z" stroke="#00995C" stroke-width="1.16667" stroke-linecap="round" stroke-linejoin="round"/>
104 <path d="M8.1665 1.16663V3.49996C8.1665 3.80938 8.28942 4.10612 8.50821 4.32492C8.72701 4.54371 9.02375 4.66663 9.33317 4.66663H11.6665" stroke="#00995C" stroke-width="1.16667" stroke-linecap="round" stroke-linejoin="round"/>
105 <path d="M5.83317 5.25H4.6665" stroke="#00995C" stroke-width="1.16667" stroke-linecap="round" stroke-linejoin="round"/>
106 <path d="M9.33317 7.58337H4.6665" stroke="#00995C" stroke-width="1.16667" stroke-linecap="round" stroke-linejoin="round"/>
107 <path d="M9.33317 9.91663H4.6665" stroke="#00995C" stroke-width="1.16667" stroke-linecap="round" stroke-linejoin="round"/>
108 </svg>
109 </div>
110
111 <div>
112 <p class="socias-post-relacionado-link mb-2">
113 ${entry.getHighlightedTitle()}
114 </p>
115
116 <span class="socias-date" >${minutes} min</span>
117
118 <#if entry.isCreationDateVisible()>
119 <span class="socias-date">
120 • ${articleDate}
121 </span>
122 </#if>
123 </div>
124 </div>
125 </a>
126 </#list>
127 </div>
128 </#if>
129 </div>
130</div>
