← назад в блог
daily16 августа 2026 г./4 мин чтения

Сделать медицинскую страховку понятной за пять секунд

Страховая компания уже знала, что покрывает ваша программа и сколько вы потратили, но эта информация хранилась в системе, созданной для сотрудников страховой компании. Я сделал страницу, которая превращает эти необработанные данные в два простых ответа, которые действительно нужны человеку: что покрывает моя страховка и сколько у меня осталось?

Снимок экрана — 2026-08-17 в 19.11.05.png

Если работодатель предоставляет вам медицинскую страховку, скорее всего, вы не сможете сразу ответить на два простых вопроса: что именно покрывает моя страховка и сколько из этого я уже использовал?

Большинство людей узнают это через HR — или не узнают вообще и обнаруживают уже на ресепшене клиники, что какая-то услуга не покрывается. Днём ранее я закончил часть системы, которая получает эту информацию от страховой компании. Этот пост — о том, как превратить эти данные в информацию, понятную обычному человеку.

Проблема: информация существовала, но никто её не видел

Страховая компания уже знала всё — номер вашей страховой карты, вашу программу, доступные лимиты, все посещения клиник, все выплаченные суммы. Но всё это находилось в системе, созданной для сотрудников страховой компании, а не для самого застрахованного человека.

Поэтому задача была не в том, чтобы придумать новые данные. Задача была взять стену необработанных записей и превратить её в одну страницу, которая отвечает на реальные вопросы пользователя.

Одна страница — четыре разных ситуации

Сложность была в том, что все пользователи находятся в разных ситуациях, а страница при этом никогда не должна выглядеть сломанной:

  1. Человек только подключился к программе — страховка уже действует, но истории обращений ещё нет. Пустая таблица здесь выглядит как ошибка, поэтому страница прямо сообщает, что обращений пока нет.
  2. Человек давно пользуется страховкой — сначала ему нужен оставшийся баланс, а ниже — история посещений.
  3. Человек уволился из компании — страховое покрытие закончилось. Это должно быть очевидно сразу, а не спрятано где-то мелким текстом.
  4. Когда данные страховой временно недоступны — страница всё равно показывает страховую карту и информацию о покрытии, вместо того чтобы показывать пустой экран.

Каждое значение на странице приходит из актуального ответа сервера. Ничего не захардкожено — если завтра страховая компания изменит лимит, страница автоматически покажет новое значение.

Ловушка: числа, которые нельзя складывать

Эта проблема чуть не прошла незамеченной. Данные содержат общий лимит страхового покрытия, а внутри него — несколько отдельных лимитов: стоматология, обследования, лекарства и так далее.

Первое желание — сложить все эти отдельные лимиты и показать получившуюся сумму как общий лимит. Получается большее число, но неправильное — в реальном примере вместо 25 миллионов получилось бы 30,5 миллиона. Эти лимиты не складываются друг с другом: они выделены из одного общего лимита.

Такая же ловушка была в показателе уже использованной суммы. Если страховой случай всё ещё находится в обработке, деньги по нему зарезервированы, а не потрачены. Если считать такую сумму уже потраченной, остаток пользователя окажется на 500 000 сум меньше, чем есть на самом деле.

Ошибка в денежной сумме на странице страхования — это не просто косметический баг. Люди принимают решения, основываясь на этой цифре.

Перевод слов, которых я не писал

Страница работает на трёх языках. Но есть одна проблема: названия медицинских услуг и покрытий приходят от страховой компании только на русском языке. В результате пользователь, выбравший узбекский или английский, мог увидеть переведённую страницу с целым фрагментом русского текста посередине.

Сначала я попытался сопоставлять отдельные слова внутри каждой фразы. Это распознавало едва ли четверть вариантов и превращало строки в наполовину переведённый текст — что было хуже, чем вообще оставить оригинал. Поэтому я изменил подход: распознавать каждую полную фразу и связывать её с определённым понятием, а затем показывать правильное название этого понятия на языке интерфейса. Так удалось перевести почти все варианты.

Одна фраза специально осталась без перевода — её русская формулировка действительно неоднозначна, и я предпочитаю показать оригинал, чем уверенно показать пользователю догадку о том, что именно покрывает его страховка. Вся страница также сделана так, чтобы ощущаться мгновенной: пока данные загружаются, пользователь видит мягкий серый контур реального интерфейса, поэтому элементы не мигают и не прыгают после загрузки.

Но больше всего мне нравится не техническая часть. Теперь человек может открыть страницу на телефоне и примерно за пять секунд понять, что покрывает его страховка и сколько лимита осталось — раньше для этого требовался телефонный звонок и человек на другом конце линии, который должен был всё проверить.