Как стать автором
Обновить

Мой подход к ведению семейного бюджета

Время на прочтение3 мин
Количество просмотров5.9K

Всем привет! Я, как и многие на этом сайте, задумывался над ведением семейного бюджета.

Проблематика

Поскольку семья у меня состоит больше чем из одного человека, проблема управляемости этой истории меня очень интересует. Для хоть сколько‑нибудь прогнозирования дат крупных покупок, требуется понимание скорости движения к цели накопления необходимой суммы, а по простому — сколько денег есть возможность откладывать ежемесячно таким образом, чтобы закрывать все потребности. Поскольку ежемесячный доход в нашей семье — это величина очень легко прогнозируемая(оклады), то для решения задачи нужно знать, сколько в среднем приходится расходов. Расходы обычно производятся в безналичном виде — либо платежи по картам, либо какие‑то операции оплаты через мобильное приложение банка. Проблема в том, что банков несколько.

Решение

Идея решения такая: парсить выписки различных банков, которыми пользуется семья, а все операции заносить в какое‑то хранилище данных. В качестве хранилища данных был выбран elastic в том числе и потому, что у него есть удобный и довольно простой в использовании интерфейс — kibana. В итоге, схема выглядит так:

Схема решения
Схема решения

Все выписки разбираются на операции. Каждая операция имеет дату и время совершения операции, сумма операции, описание, а также тип операции — оплата это или пополнение. Оплата имеет дополнительные необязательные для заполнения поля — MCC‑код и название терминала. Конечно, я попытался эти поля сделать унифицированными, но, как не удивительно, каждый из банков имеет свои особенности в формировании выписок. Об этом ниже.

Особенности парсинга выписок

СовкомБанк

Банк, который дает наиболее полную информацию об операциях в своих выписках. Интересная деталь – выписки можно сформировать как в html-формате, так и pdf. В формате pdf информация несколько урезанная, поэтому пользуюсь html-форматом. Совкомбанк дает возможность указать все без исключения поля операций.

ВТБ

Выписки представляют собой pdf-файлы. Формирует наименее дружелюбный формат для парсинга выписок. В выписке не отдается MCC-код, но отдается название терминала. Интересно, но в мобильном приложении по каждой из операций оплаты можно получить MCC-код. Задание со звездочкой – сформировать файл-маппинг из названия терминала и MCC-кода, который можно скормить парсеру выписки ВТБ для получения наиболее полного результата парсинга. Количество посещаемых мест моей семьей в целом конечно, поэтому от месяца к месяцу добавлять новые названия терминалов в файл-маппинга приходится все меньше. Утомительно, но эффективно.

АльфаБанк

Выписки представляют собой pdf-файлы. У операции отображается только дата совершения, но нет времени. По оплатам отдают MCC-код, но название терминала в каком-то интересном формате, который сложно выдрать.

Ограничения

Если происходит много оплат по СБП, то это искажает результаты трат. Если происходят переводы с одной карты на другую, то невозможно сформировать отчет по доходам.

Что получаем?

На выходе в в elastic’e лежат все операции со всех банковских карт. Elasticsearch обладает довольно внушительными возможностями для поиска как отдельных операций, так и для анализа всего массива данных по заданным параметрам. Для себя я настроил дашборд с различными графиками для быстрого доступа. Некоторые из них:

График с отображением количества платежей.
График с отображением количества платежей.

Это самое просто, что можно было сделать).

График с расходами по месяцам, с разбиением расходов по категориям.
График с расходами по месяцам, с разбиением расходов по категориям.

Помогает для визуального контроля оценки израсходованных средств.

График со среднемесячными расходами.
График со среднемесячными расходами.

Как мне кажется, один из самых интересных и полезных графиков. Использует механизм расчета скользящей средней на окне 6 месяцев. Размер окна можно выбрать любой. Такой подход позволяет сглаживать ненормальные пики по тратам, а также показывать среднюю сумму средств, необходимую для проживания семьи.

Итог

В целом, самым полезным для меня является график среднемесячных расходов. Он позволяет вести планирование на год вперед. Возможно, из такого подхода можно еще какие-то метрики получить, прошу накидывать предложения в комментариях.

Парсер выписок на PHP

Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
Всего голосов 3: ↑2 и ↓1+1
Комментарии24

Публикации

Истории

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
10 – 11 октября
HR IT & Team Lead конференция «Битва за IT-таланты»
МоскваОнлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн