fragmentary notesITエンジニアの気まぐれメモ

モバイルSuica利用履歴を家計簿に取込むにあたり

2023/05/05 13:04

Introduction

先日、自分個人用の家計簿アプリを開発・運用している旨のエントリを書きましたが、今回はこの家計簿にモバイルSuicaの利用履歴を取込む仕組みについて、自分語りするとしましょう。

キャッシュレス生活が浸透し、電車やバスの利用だけでなく日々のお買い物にもモバイルSuicaを活用するようになり、都度家計簿への手入力が負担となり始めてきました。少しでも省力化したいという思いで、できる範囲のところをシステム化してみることに。

概要フロー

今回、構築した仕組みは、モバイルSuica会員ページの「SF(電子マネー)利用履歴」から取得できる利用履歴データを取込み、あらかじめ指定した科目で家計簿へ登録するというもの。

残念なのことに、今のところモバイルSuicaには利用履歴を取得するAPIやCSVダウンロードといったものが用意されていないので、利用履歴ページからコピー&ペーストでタブ区切りテキストを作ることで家計簿システムへの取込みを実現している。

利用履歴データを取込むと、その内容から、通勤費なのか、プライベートな交通費なのか、その他の支出なのか、またはチャージ金額なのか、を判別・科目決定した上で家計簿への登録データを作成。登録データを外部からのデータインポートの口に渡し、家計簿へ登録するようにしている。

モバイルSuica側にAPIが用意されていない以上、人手操作がなくならないものの、1,2週に1回程度、モバイルSuicaの会員メニューからコピペしたものを特定の場所に貼り付けるだけ。あとは後続処理が流れるようにしているので、それほど負担はないと思っています、今のところは。

パターン照合・科目判定について

次に、科目判定ロジックについてもう少し具体的にまとめてみます。

モバイルSuicaの利用履歴レイアウトは下記のような形になっています。

モバイルSuicaレイアウト

ここに記されている「種別」「利用場所」から、各レコードがどの科目に該当するかは判定します。判定は下記のようなパターンマスタを用意し、これと照合することで実現しています。

パターンマスタ

パターンマスタの設定内容を順にみていきましょう。

優先度1、これは、1つ目の種別に「入」、1つ目の利用場所に「AAA」、2つ目の種別に「出」、2つ目の利用場所に「BBB」と設定されているレコードは、科目を「通勤費」とする、という定義になります。あらかじめ決められた駅間の移動、この場合であれば自宅と会社の最寄り駅を指定し、その区間の入出記録は通勤費として計上するようにしています。

優先度2、これは優先度1の入と出の駅を逆に定義したもの、帰りの通勤費分に該当します。

次に優先度3、これは利用場所(≒駅)の指定はないが、電車を使ったもの(種別条件が入・出となっているもの)は、「交通費」とみなしなさいよ、というパターンになります。

優先度4、こちらはバスを利用した場合に、種別に「バス等」と記録されることから、これを「交通費」とみなしなさいよ、というパターンになります。

優先度5、お店や自動販売機でものを買った際には、種別に「物販」と記録されます。具体的に何を買ったかまでは記録されませんが、運用上食費に該当することが多いため、一旦は「食費」として計上するようにしています。(細かい修正はあとから手運用で実施する前提)

優先度6、こちらはクレジットカードを利用したチャージに該当。そのため債務科目「未払金」として扱うようにしています。

これらのパターンマスタと、モバイルSuicaのレコードを、パターンの優先度順・照合条件の厳しい順に

  1. 種別条件1・利用場所条件1・種別条件2・利用場所条件2と比較・照合
  2. 種別条件1・種別条件2と比較・照合
  3. 種別条件1と比較・照合

していき、該当するパターンを探し、科目決定します。 もし該当するパターンが見つからず、科目決定できないものはエラーとし、人による判断を要求する仕様。

この手のパターン化は、学生時代の研究からいまの業務でもよくやることなので、慣れたもの(と自負しています)。

上記の流れをフロー化してみました(最近Mermaid記法を練習中につき)。

パターン照合フロー

終わりに

この仕組みを使って2,3ヶ月ほど運用回しています。いまのところ大きな問題もなく、安定稼働中。ただ手動取込みがある以上、1,2週に1度の取込みが限界、かつモバイルSuica側も夜間処理で反映をしているっぽく翌日まで利用履歴が出てこないため若干のタイムラグが発生し、家計簿収支のリアルタイム把握ができない点がちょっと微妙。。。そのあたりの事情は徐々に改善されていくのではないか、と信じて、いまできる範囲でのシステム化はできたので、とりあえず満足。

ちなみに。。。カードタイプのSuica・PASMOを使っていた時は、カードをスマートフォンのNFCリーダーで読込、そこから利用履歴を抽出・連携する仕組みにしていました。カードから故に最新の情報(ただしカードに記録される件数上限は小さいものの)を取れる & スマートフォンにカードをかざすだけなので、こっちのほうが進んでいたような、ということは忘れるようにしています。。。

eyecatch画像 : faustmp-1832によるPixabayからの画像


  • Home
  • /
  • Posts
  • /
  • モバイルSuica利用履歴を家計簿に取込むにあたり
Tech-TIPS

Comments

© 2024 shunya_wisteria