家計簿アプリから、自分のデータを持ち出す
数年ぶんの記録を預ける前に確かめるべきこと。書き出しが往復して同じ帳簿に戻らないなら、それは形を変えた囲い込みです。文字コード、桁区切り、改行入りのメモ、返金行など、実際に起きる面倒も含めて。
家計簿は、使うほど価値が上がって、使うほど動かしにくくなる珍しい種類のデータです。三か月ぶんならいつでも捨てられます。四年ぶんになると、それはもう自分の生活史であり、同時に人質でもあります。
だから、書き出しの話をするのに最も適したタイミングは、乗り換えたくなったときではありません。最初にアプリを選ぶときです。使い始めて三年後に「書き出せません」と分かるのが、いちばん高くつく発見だからです。
「書き出せます」が何も意味していないことがある
書き出し機能があると謳っているアプリは多い。ところが中身は千差万別で、少なくとも三段階あります。
- 要約だけ — 月ごと・費目ごとの集計表。グラフを作り直すには足りますが、帳簿ではありません。一件ずつの記録が失われた時点で、それは持ち出しではなく報告書です。
- 全件だが、情報が落ちている — 一件ずつは出るものの、小分類が消える、メモが消える、誰が使ったかが消える。「食費 3,200円」だけ残って「食費・外食/夫/会社の近くの定食屋」が消えるなら、あなたが四年かけて入力した手間の大半は出てきていません。
- 全件、全項目 — 日付、時刻、収支の別、金額、大分類、小分類、メモ、誰が、どこで。これがあって初めて、他所に持って行っても同じ帳簿として再現できます。
判定の方法はひとつで、しかも簡単です。書き出したファイルを、同じアプリに取り込み直してみる。同じ帳簿が再現されるか。往復が閉じないなら、そのアプリの書き出しは、形を変えた囲い込みです。悪意があるとは限りません。往復を一度も試さなかった、というだけのことも多い。ただ、あなたにとっての結果は同じです。
預ける前に確かめる五つ
- 書き出しは無料か。自分が入力した記録を取り出すのに課金が要るなら、それは値付けではなく設計の思想です。出口に料金所を置くという判断をしたということです。
- 全件か、要約か。実際に一度出してみて、行数と記録件数が一致するか見てください。
- 何でも読める形式か。CSV、あるいは JSON。そのアプリだけが読める独自形式なら、持ち出せているのは形式上だけです。
- 誰が使ったかが入っているか。家族で共有している帳簿なら、これが落ちると人別の分析は永久に復元できません。
- アカウントとデータの削除が、アプリの中でできるか。「サポートへメールで依頼」は摩擦の設計で、しかも登録前に確かめられます。
乗り換えのときに実際に起きる面倒
ここからは、書き出しファイルを手にしたあと、実際にぶつかる技術的な話です。地味ですが、ここで詰まって諦める人が多いので書いておきます。
文字コード
日本語の書き出しは UTF-8 のことが多いものの、表計算ソフトとの相性のために Shift_JIS で出すアプリもあります。中国語圏のアプリからの書き出しは GB18030 のことがあり、これを UTF-8 として素直に読むと、費目もメモもまるごと文字化けします。取り込み側が複数の文字コードを試すようになっていないと、ここで詰まります。
桁区切りのカンマ
金額が「12,800」と桁区切り入りで書かれていると、CSV の区切り文字とぶつかります。ふつうは引用符で囲まれていますが、囲われていないファイルも実在します。取り込み側が数値の解釈で桁区切りを許容しないと、金額が 12 になったり、行そのものが壊れたりします。
メモの中の改行
これがいちばん厄介です。メモ欄に本物の改行が入っていると、そのファイルは「一行が一件」ではなくなります。ファイルを改行で分割して処理する素朴な取り込みは、この時点で全部ずれます。CSV は改行で切るものではなく、引用符の状態を追いながら解析するものだ、という当たり前のことが、実装ではしばしば省略されています。
返金と、符号の食い違い
「種別:支出、金額:−2,000」という行があります。返金です。素直に読むと、支出をマイナスで計上してしまい、合計が二重に狂います。正しくは収入側に反転させるべきで、そして何件反転したのかは利用者に伝えられるべきです。黙って直すのは、黙って壊すのと同じくらい信用できません。
二重取り込み
同じファイルを二度取り込んで、記録が倍になる。よくある事故です。防ぐには、取り込み側が一件ごとの指紋——日付、時刻、金額、収支の別、メモ——を見て、すでにあるものを弾く必要があります。
Fambook の取り込みは、これらを一つずつ処理するように書かれています。UTF-8 と GB18030 の両方を解く。どの列が何かを推測する。桁区切りを許容する。メモに入った本物の改行を含むファイルを、行分割ではなく CSV として解析する。種別と符号が食い違う行を反転させ、何件反転したかを報告する。読めない行は理由と物理行番号つきで飛ばす。そして一件ごとの指紋で重複を落とす。派手な機能ではありませんが、この一覧が、乗り換えが成立するかどうかそのものです。
データポータビリティという権利
法域によっては、自分が提供したデータの複製を、機械可読で相互運用可能な形式で受け取る権利が法律で定められています。EU の GDPR 第20条がよく知られたもので、英国や他の地域にも比較可能な規定があります。日本にお住まいの方や、そのほかの法域の方にそのまま同じ権利があるとは限りませんので、ご自身の状況については断言できません。
そのうえで、権利があるかどうかとは別に、実務上の教訓が一つあります。この権利の価値は、渡されるファイルが機械可読かどうかで、ほぼ全部決まるということです。請求に応じて三百ページの PDF が送られてきたとして、それは形式的には要件を満たしているかもしれませんが、あなたの帳簿を他所で再現する役には立ちません。
だから、法的な請求ができるかどうかより先に見るべきなのは、そのアプリが日常的に、ボタン一つで、まともな形式を出してくれるかどうかです。制度は最後の砦であって、日々の設計の代わりにはなりません。
Fambook の立場
取り込みも書き出しも無料で、これからも無料です。課金の対象にする気はありません。
理由は善意というより一貫性です。書き出しは、利用者がこのアプリを去るための手段です。去る手段に値札をつけるアプリは、去られないことを収益源にしているということで、それは製品を良くする力が働かない構造です。課金が買うのは入力を減らす機能——AI での読み取り、音声、写真、繰り返し記録、そして三人目以降の家族——であって、自分の記録への出入りではありません。
書き出しの中身は、一件につき一行で、収支の別、金額、大分類、小分類、メモ、家族メンバー、場所、日付、時刻。小分類を意図的に含めているのは、書き出して取り込み直したときに階層が一段失われないようにするためです。往復が閉じることを、機能の一部として扱っています。
いま使っているアプリで、今日やっておくこと
- 一度書き出して、中身を開いて見る。行数は記録件数と合っているか。小分類とメモは残っているか。
- そのファイルを、同じアプリに取り込み直せるか試す。試すのは移行を考えたときではなく、今日です。
- 書き出したファイルを、アプリの外の自分の管理下に置く。クラウドストレージでも外付けでも構いません。数か月に一度で十分です。
- 書き出せないと分かったら、記録が三年ぶんになる前に判断する。移るなら早いほど安く済みます。
控えを持っておくことは、アプリを信用していないという表明ではありません。小さなアプリは閉じます。アカウントは壊れます。そして自分の操作ミスもあります。書き出せる帳簿は、その全部を生き延びます。
よくある質問
書き出しが「使える」かどうかは、どう判定しますか。
書き出したファイルを同じアプリに取り込み直して、同じ帳簿が再現されるか見てください。件数、金額の合計、費目、小分類、メモ、誰が使ったか。往復が閉じないなら、その書き出しは形を変えた囲い込みです。悪意でなく、単に一度も試していないだけのことも多いのですが、結果は同じです。
CSV と JSON、どちらが良いですか。
実務では CSV で十分です。表計算ソフトでも開けますし、ほとんどの家計簿アプリが取り込めます。JSON のほうが構造を正確に運べますが、取り込める先が少ない。大事なのは形式の優劣より、そのアプリだけが読める独自形式でないことです。
取り込んだら文字化けしました。
文字コードの不一致です。書き出し側が Shift_JIS や GB18030 で、取り込み側が UTF-8 だと決め打ちしていると起きます。取り込み側が複数の文字コードを試すようになっていれば通ります。Fambook の取り込みは UTF-8 と GB18030 の両方を解きます。
同じファイルを二度取り込んでしまいました。
一件ごとの指紋で重複を弾く実装なら、二度目はそのまま無視されます。そうでないアプリだと記録が倍になり、手で消すしかありません。取り込みの前に一度書き出して控えを取っておくのは、この事故に対するいちばん安い保険です。
書き出しに課金が必要なアプリは避けるべきですか。
避ける十分な理由になると考えています。自分が入力した記録の取り出しに料金所を置くのは、値付けというより設計思想の表明です。囲い込みで収益を守る構造では、製品を良くする力が働きにくい。Fambook が取り込みと書き出しを無料にしているのは、この理由からです。
法的にデータを請求できますか。
法域によります。EU の GDPR 第20条のように、機械可読な形式で自分のデータの複製を受け取る権利が定められている地域があり、英国などにも比較可能な規定があります。お住まいの地域で同じ権利があるかどうかは、ここでは断言できません。そして実務上は、制度より先に、日常的にボタン一つでまともな形式が出るかどうかを見るべきです。
ひと月ためしてみる
Fambook は家族にひとつの共有帳簿を渡します。誰でも数秒で一件書けて、どの記録にも誰が使ったかが残り、ひと月の合計が二か所ではなく一か所にまとまります。圏外でも記録でき、あとから同期します。記録、カテゴリ、予算、統計、CSV の入出力、同期、二人での共有は無料。課金で買えるのは「入力の手間が減ること」だけです。