3 điểm bởi GN⁺ 2024-09-17 | 1 bình luận | Chia sẻ qua WhatsApp
  • Plain Text Accounting (PTA) là cách ghi dữ liệu kế toán trong các tệp văn bản thuần và xử lý bằng các công cụ thân thiện với dòng lệnh như Ledger, hledger, Beancount; trang này là một cổng tập hợp các tài liệu liên quan tại một nơi
  • Hoạt động cộng đồng được chia ra trên Matrix/IRC, diễn đàn, Reddit, Lemmy, Hacker News, Mastodon, X, Bluesky v.v., nên có thể theo dõi câu hỏi, tin tức và thảo luận theo từng dự án qua nhiều kênh
  • Tài liệu học tập được sắp xếp thành so sánh ứng dụng, tài liệu chính thức, kiến thức kế toán cơ bản, tài liệu nhập môn, cheat sheet, cookbook, FAQ, slide và video, giúp cả người mới dùng PTA cũng có thể tiếp cận theo từng bước
  • Hệ sinh thái ứng dụng cung cấp nhiều triển khai và ma trận tính năng xoay quanh Ledger, Beancount, hledger; 3 công cụ tiêu biểu lần lượt dựa trên C++/Python/Haskell và có lịch sử phát hành trong giai đoạn 2025~2026
  • Từ nhập liệu/chuyển đổi, plugin cho trình soạn thảo, hóa đơn, tra cứu giá, báo cáo, ghi thời gian, UI, workflow đến thư viện, mọi thứ đều được kết nối để gắn dữ liệu kế toán văn bản thuần vào nhiều môi trường làm việc khác nhau

Khái niệm PTA và vai trò của plaintextaccounting.org

  • Plain Text Accounting là phương pháp thực hiện ghi sổ và kế toán bằng các tệp văn bản thuần cùng phần mềm hiệu quả, thân thiện với dòng lệnh như Ledger, hledger, Beancount
  • plaintextaccounting.org đóng vai trò là cổng dẫn tới công cụ, tài liệu, và các thực hành thực tế của cộng đồng PTA
  • Có thể theo dõi cập nhật kho lưu trữ của trang, đồng thời trang cũng cung cấp báo cáo tài chính và hướng dẫn tài trợ

Cộng đồng và các kênh thảo luận

  • Trò chuyện thời gian thực diễn ra qua Matrix #plaintextaccounting, plaintextaccounting Matrix space, và kênh IRC #plaintextaccounting trên Libera Chat
  • Thảo luận và tin tức được phân tán trên nhiều kênh công khai
  • Trên Stack Exchange có cung cấp các thẻ ledger-clihledger cùng liên kết tìm kiếm
  • Mailing list và chat theo từng dự án, cũng như This Week In Hledger, cũng được liên kết sẵn

Tài liệu và học liệu

  • Tài liệu so sánh ứng dụng bao gồm danh sách ứng dụng PTA, ma trận tính năng, FAQ “nên chọn ứng dụng PTA nào”, và Syntax Quick Reference
  • Tài liệu chính thức của ứng dụng liên kết tới Ledger, hledger, Beancount, rustledger, Ledger(Go), Tackler, và tài liệu pta
  • Tài liệu kiến thức kế toán cơ bản bao gồm PTA FAQ, Accounting basics/links của hledger, Double-Entry Counting Method của Beancount, “Accounting for Computer Scientists” v.v.
  • Tài liệu nhập môn được chia theo từng điểm bắt đầu
  • Cheat sheet, cookbook, FAQ, slide và video cũng được sắp xếp thành các mục riêng; trong mục video có ghi chú rằng khá khó tìm video PTA trên YouTube

Các ứng dụng PTA chính và so sánh tính năng

  • Khi bắt đầu với PTA, có thể thử một hoặc nhiều ứng dụng được liệt kê trên trang, và nói chung có thể di chuyển dữ liệu giữa các ứng dụng
  • Danh sách ứng dụng chính hiện tại tổng hợp nhiều dự án
    • Ledger: C++, bắt đầu từ năm 2003, phát hành gần nhất năm 2025, khoảng 245 committer, khoảng 5.9k stars
    • Beancount: Python, bắt đầu từ năm 2008, phát hành gần nhất năm 2026, khoảng 103 committer, khoảng 5.5k stars
    • hledger: Haskell, bắt đầu từ năm 2007, phát hành gần nhất năm 2026, khoảng 194 committer, khoảng 4.4k stars
    • Transity, Ledger(Go), Abandon, zhang, Tackler, rustledger, knut, acc, ledg cũng nằm trong danh sách hiện tại
  • Các dự án cũ hoặc không còn hoạt động được tách riêng như placc, budget-cli, mynt, awk-pta, pta, blossom, .Net Ledger, monescript, Penny, UMM, cl-ledger v.v.
  • Ma trận tính năng của Ledger, hledger, Beancount được cập nhật theo mốc 2024-09 và so sánh giao diện người dùng, cài đặt, trợ giúp, định dạng nhập/xuất, lệnh, cấu hình, khả năng mở rộng, tên tài khoản, ngân sách, biểu đồ, tra cứu giá, truy vấn, xác thực v.v.
  • Những khác biệt tiêu biểu tập trung vào các mục ảnh hưởng trực tiếp đến việc chọn công cụ
    • CLI liên kết tới ledger của Ledger, hledger của hledger, và beanquery của Beancount
    • Mức độ dễ cài đặt và cấu hình được đánh dấu là yes cho Ledger/hledger, và no cho Beancount
    • hledger hỗ trợ các định dạng đầu ra text/html/csv/tsv/fods/beancount/sql/json
    • Xác thực của Beancount được đánh dấu là luôn nghiêm ngặt, còn Ledger và hledger thì có thể cấu hình

Hệ sinh thái phần mềm

  • Mục AI bao gồm accountant24, một tác tử AI đa mô hình ưu tiên cục bộ dùng hledger, cùng một bài viết cấu hình sử dụng Claude Code làm lớp tác tử với hledger và Obsidian vault
  • Các bản phân phối/cấu hình thay thế gồm Full-fledged hledger, hledger-flow, Lazy Beancount, hledger-youtube-business, rtrLEDGER, docker-finance
  • Chuyển đổi/nhập dữ liệu chiếm tỷ trọng lớn; ngoài chức năng chuyển đổi CSV tích hợp của Ledger và hledger còn có công cụ import của Beancount v2, banks2ledger, beancount-import, beancount2ledger, hledger2beancount, ledger2beancount, plaid2text v.v.
    • Các công cụ chuyển từ GnuCash, Intuit/QuickBooks/QIF, KMyMoney, YNAB sang *ledger hoặc Beancount cũng được sắp xếp trong các tiểu mục riêng
  • Công cụ tạo dữ liệu được dùng để tạo giao dịch giá, khấu hao, lãi, giao dịch lặp lại, capital gains postings v.v.
  • Plugin cho trình soạn thảo được chia cho Emacs, JetBrains IDE, Nano, Sublime, TextMate, Vim, VS Code
    • Ví dụ: ledger-mode, beancount-mode, hledger-mode, vim-ledger, vim-beancount, hledger-vscode, vscode-beancount
  • Các công cụ định dạng gồm beancount-black, beancount-black web app, hledger-fmt
  • Về công cụ hóa đơn, bài giới thiệu đề cập đến kairos, một công cụ Go tạo hóa đơn từ tệp hledger timedot

UI, báo cáo, workflow, thư viện

  • Các công cụ tra cứu giá bao gồm bean-price của Beancount, hledger-stockquotes, ledger-get-prices, pricehist, cùng các công cụ tra giá cổ phiếu và tỷ giá dựa trên Yahoo Finance
  • Công cụ báo cáo mở rộng sang ngân sách, phân tích tài sản, báo cáo chênh lệch, tỷ suất hoàn vốn nội bộ, biểu đồ, Sankey, xuất PDF, tính lãi vốn v.v.
  • Công cụ ghi thời gian gồm org, hook Taskwarrior, CSV Toggl, chuyển đổi timeclock, và các ví dụ ghi thời gian dựa trên hledger
  • UI terminal như hledger add, hledger-ui, hledger-iadd, bean-add, ledger xact, puffin, regdel hỗ trợ nhập, tra cứu và chỉnh sửa giao dịch
  • GUI, web, và mobile UI cũng được liên kết thành các công cụ riêng
    • Web: fava, hledger-web, Paisa, BeanHub
    • Mobile: Beancount Mobile CE, beancount-mobile, NanoLedger, cashier, cone, MoLe
    • GUI: fruit-credits, Ledgera, Prudent, Surebeans v.v.
  • Mục workflow đề cập đến các cấu hình tạo journal hledger từ CSV hoặc theo dõi và báo cáo tài chính truyền thống/crypto trên nền Docker
  • Mục thư viện tập hợp các thành phần dành cho phát triển như Beancount parser, BeanHub API, hledger-lib, hledger-web JSON API, node-hledger, pyhledger để parse, truy vấn, báo cáo và tích hợp tệp PTA

1 bình luận

 
GN⁺ 2024-09-17
Ý kiến trên Hacker News
  • Những hệ thống yêu cầu phân loại nghiêm ngặt ngay lập tức không phù hợp với một số người. Ở công ty tôi từng làm, chúng tôi dùng cách 2 bước: trước hết ghi nhanh vào iPhone Notes kiểu -50 Alice tools, +20 Bob returned loan, rồi sau đó một script sẽ phân tích ngày tháng, từ khóa, đối tác và các mục phân tích nội bộ để chuyển thành mẫu bút toán kép
    Những mục script không nhận ra thì phân loại thủ công, và nếu cần thì thêm vào danh sách quy tắc; đồng thời có danh sách ánh xạ riêng theo từng người để Alice và Bob không cần thống nhất cùng một hệ từ vựng
    Khó mà tưởng tượng mỗi lần tiền ra vào, một người đang xếp hàng, đang lái xe hoặc đang nói chuyện lại điền đầy đủ định dạng như Cat1:cat2:cat3. Rốt cuộc rất có thể họ sẽ quay lại ghi chú ngắn hoặc chat, hoặc không phải cuối ngày mà có lẽ đến cuối tuần mới cố “nhớ lại” để điền

    • Cách đó rốt cuộc nghe cũng giống kế toán văn bản thuần túy. Tôi cũng dùng gần như tương tự: không nhập trực tiếp vào tệp sổ cái, mà nhập vào KMyMoney rồi dùng script chuyển thành tệp ledger
      Với công cụ dựa trên văn bản, bạn có thể tự do tạo luồng làm việc mình muốn, chẳng hạn gắn một script nhận ghi chú iPhone rồi chuyển thành định dạng ledger, nên tôi thấy hơi lạ nếu coi đó là điểm bất mãn
    • Chúng tôi cũng không gõ trực tiếp tệp ledger; thay vì chuyển đổi ghi chú tự do, chúng tôi ghi tài khoản cần áp dụng vào trường ghi chú của ứng dụng ngân hàng và ứng dụng báo cáo chi phí Zoho
      Mỗi quý tải CSV từ tài khoản ngân hàng, thẻ tín dụng và Zoho, rồi script Ruby nhìn vào trường ghi chú để chuyển thành tệp ledger. Script và kết quả đầu ra vẫn cần chỉnh chút ít, nhưng hơn 95% đã được tự động hóa
      Thêm nữa, chúng tôi cũng thêm các kiểm tra tính nhất quán vào tệp ledger, như số dư có khớp với số dư nhận từ ngân hàng hay không, hay các mục có nằm trong kỳ hiện tại không
  • Tôi đã dùng ledger-cli gần 20 năm, gần như từ lúc bắt đầu tự kinh doanh, và dù không hoàn hảo nhưng rất hài lòng. Mọi thứ đều là văn bản thuần túy nên có thể xử lý bằng script, đọc trong VIM, và trích xuất dữ liệu dễ dàng
    Tệp ledger của một trong các công ty tôi đang vận hành hiện là một tệp văn bản thuần túy 2MB, chứa các giao dịch từ năm 2016 đến nay. Tôi không thấy nhiều giá trị trong việc chia tài khoản/phân loại quá chi tiết, nhưng để theo dõi tổng thể thì đó là công cụ không thể thiếu
    Việc học bút toán kép mà các công cụ như ledger sử dụng cũng thú vị; nhìn lại thì không khó, và tôi thấy đây là một kỹ năng hữu ích suốt đời

    • Tôi chưa dùng các công cụ kiểu này, nhưng bài này xuất hiện rất đúng lúc vì QuickBooks và ngân hàng đã bỏ sót vài giao dịch nên tôi đang phải dọn dẹp
      Về chiến lược tài khoản/phân loại, tôi dùng cách khớp với các nhóm chi phí mà Cơ quan Thuế vụ Canada yêu cầu trong tờ khai thuế. Ban đầu tôi tạo các phân loại hợp lý như chi phí hosting, chi phí nguyên mẫu/sản xuất, nhưng sau vài năm cứ phải ánh xạ lại sang phân loại của CRA, tôi nhận ra ngay từ đầu đặt theo phân loại thuế sẽ làm việc khai báo cuối năm đơn giản hơn nhiều
    • Khi bán nhà, công ty escrow đã gửi một séc hoàn tiền khoảng 3.000 đô la trong phần quyết toán khi đóng giao dịch, nhưng tôi chưa từng nhận được séc đó. 5 năm sau, chỉ khi bắt đầu dùng ledger-cli tôi mới biết chuyện đó
    • Thêm một phiếu cho ledger. Đây là thứ tốt nhất tôi từng dùng đến nay, và khả năng script hóa của nó thật sự rất mạnh. Từ khi bắt đầu dùng, việc xử lý thuế của tôi đã chính xác hơn trong hơn 2 năm qua
    • Nghĩ kỹ hơn thì điều tiếc nhất là hạn chế chung của văn bản thuần túy: không có tệp đính kèm. Tôi đã tự tạo một hệ thống cá nhân để tham chiếu tới tệp cụ thể, và còn làm một ứng dụng Mac để khi thả tệp vào giao dịch thì nó sao chép tệp vào thư mục chỉ định và gắn thẻ cho giao dịch
      Nếu dữ liệu là SQLite thì triển khai sẽ dễ hơn nhiều, nhưng như vậy lại mất lợi thế có thể chỉnh sửa trực tiếp bằng trình soạn thảo văn bản
  • Nhờ LLM, việc duy trì kế toán văn bản thuần túy đã dễ hơn nhiều. Đặc biệt hữu ích khi đưa sao kê ngân hàng vào hledger và tránh phải nhập thủ công
    Tôi dùng một tệp JSON để ánh xạ giao dịch ngân hàng sang tài khoản hledger; nếu có giao dịch chưa có ánh xạ mới, script Python sẽ tạo prompt cho Claude. Claude nhìn vào danh sách tài khoản, đề xuất ánh xạ cho giao dịch mới, rồi dựa trên đó trả về bút toán hledger
    Sau đó một script khác in gọn gàng các bút toán hledger của giao dịch ngân hàng trong tháng, tôi chỉ chỉnh vài phút là chốt. Cả những hướng dẫn ánh xạ mà trước đây hẳn sẽ thành một đống regex và điều kiện mong manh, giờ cũng có thể viết bằng ngôn ngữ tự nhiên

    • Bạn cho rằng LLM không mong manh à? Và gửi thông tin ngân hàng cho Anthropic cũng khá táo bạo đấy
  • Tôi thích quá trình học khi dùng Beancount, viết công cụ nhập dữ liệu, và tự tay xử lý kế toán. Nhưng lần gần nhất tôi nhập dữ liệu đã gần 1 năm trước; tôi từng định làm hằng tháng, nhưng dù đã tự động hóa khá nhiều, mỗi lần vẫn mất 30–60 phút nên khá phiền

    • Tôi ước các ngân hàng đừng tích cực cản trở việc xuất dữ liệu. Trước đây tôi từng viết script dùng OCR để đảo ngược quy trình đăng nhập và dọn các mục sai, nhưng chi phí bảo trì quá lớn
      Đến khi còn cần cả xác nhận trên di động thì tôi bỏ cuộc
    • Tôi cũng có trải nghiệm y hệt với GnuCash. Nếu làm hằng tuần thì ổn, bỏ lỡ 1–3 tuần vẫn chịu được, nhưng lâu hơn thế thì gánh nặng bắt kịp phình ra như quả cầu tuyết
      Tôi cũng đã không nhập dữ liệu khoảng 1 năm rồi, và nếu muốn khôi phục lại thì tôi chỉ nghĩ ra cách chia nhỏ, tải lên từng tháng một trong vài ngày
    • Nếu chịu được cảm giác hơi lấn cấn, Plaid đáng để xem. Hồi đó có tier thử nghiệm đủ dùng cho mục đích cá nhân, và cho phép tới 100 tài khoản được kết nối
      https://plaid.com/
    • Dùng teller.io thì thiết lập thường dễ hơn Plaid nhiều. Tôi đang dùng nó để đồng bộ sao kê ngân hàng Chase và thẻ tín dụng vào Google Sheets
  • Dùng ledger cho ghi sổ và kế toán cá nhân cũng như nhiều LLC. Nếu bạn quen dùng terminal, thành thạo CLI, thường xuyên dùng vim hoặc emacs, các kiến thức cơ bản về sed/awk, và scripting bằng bash/python/perl/ruby, thì việc học ledger cùng kế toán kép rồi chuyển sang có khả năng sẽ khiến bạn hài lòng hơn nhiều so với cách đang dùng hiện tại
    reckon rất hữu ích để nhập giao dịch nhanh: https://github.com/cantino/reckon
    Tách vấn đề bằng include cũng tốt. bal --dc có thể hơi quen thuộc với kế toán viên Mỹ, nhưng họ thường không hiểu đúng cách ledger dùng số âm, nên tôi thấy dễ hơn là viết vài script để chuyển sang kiểu DR/CR. Tôi đã ngạc nhiên khi thấy những kế toán viên mình làm việc cùng xử lý các tầng trừu tượng kém đến mức nào

    • Tôi đồng ý với hai mẹo đầu. Mẹo thứ ba có vẻ cũng hay, nhưng tôi chưa từng cần đến
      Nếu chỉ thêm một mẹo, thì đó là hãy gom mọi thứ lại bằng Makefile hoặc thứ tương tự. Khi có nhiều file giao dịch tách theo từng tài khoản, lệnh để include đúng file rất dễ trở nên dài
      Tôi cũng không thể nhớ chính xác cú pháp của đủ loại script vẽ đồ thị và tóm tắt mỗi lần dùng, nhưng với make thì có thể gọi kiểu make cashflow, make balance 'A=Checking', make balance-plot 'A=retirement'
  • Tôi đã viết nhiều bài về các công thức thực chiến để dùng Ledger hiệu quả trong những tình huống phức tạp hơn mức tutorial cơ bản: https://felixcrux.com/blog/ledger-practices

    • Với tư cách là người dùng ledger khá nhiều, tôi thấy các công thức đó rất hay. Tôi đang dùng một pattern theo dõi chi tiết khách hàng và nhà cung cấp, đồng thời phải gán các khoản chi/trả và thu/nhận vào dự án cụ thể cùng các phân loại bên trong dự án đó
      Khi nhập giao dịch ngân hàng, trước tiên tôi gán vào tài khoản mang tên đối tác; rồi script dùng ledger print để tạo một file journal thứ hai theo từng đối tác, đảo chiều giao dịch gốc, sau đó tạm đưa vào các tiểu khoản dưới dự án Unknown và phân loại Unknown
      Sau đó người phụ trách sổ sách khớp giao dịch với hóa đơn cụ thể và gán vào tài khoản Project:Category; nếu cần thì tách một khoản thanh toán đơn lẻ ra nhiều dự án/phân loại. Khi include toàn bộ journal giao dịch ngân hàng và journal theo đối tác, có thể dùng ledger bal để kiểm tra xem việc ghi sổ đã hoàn tất chưa
  • Kế toán bằng văn bản thuần rất tuyệt, nhưng tôi nghĩ rào cản lớn nhất với nhiều người là tải dữ liệu ngân hàng xuống theo định dạng chuẩn
    Các ngân hàng sẽ không tích cực hỗ trợ gì hơn CSV hay Excel, còn các nền tảng tổng hợp dữ liệu như Yodlee hay Plaid thì không thân thiện với mã nguồn mở hoặc người dùng làm vì sở thích
    Trước đây có một công ty tên Wesabe(https://en.wikipedia.org/wiki/Wesabe) từng làm phần mềm đồng bộ ngân hàng trên desktop. Họ về cơ bản đã bị Mint.com lấn át, nhưng tôi vẫn nhớ cách tiếp cận đó và thấy có vẻ vẫn khả thi trong mã nguồn mở

    • hledger có công cụ để chuyển CSV khá tùy ý thành giao dịch: https://hledger.org/1.40/hledger.html#csv
      Tôi chưa dùng thử, nhưng sau khi đã bỏ ra 4 tiếng trong vài ngày để giúp một công ty SaaS làm sổ sách xử lý vấn đề kết nối ngân hàng, tôi sẵn sàng dành thời gian cho nó
      Mỗi lần đối soát giao dịch là lại phải vật lộn với một hệ thống mà mình không thể nhìn vào bên trong cũng không thể tự sửa. Giờ tôi bắt đầu nghi ngờ liệu công sức bỏ ra có đáng không, và nếu có công cụ dùng được thì có lẽ tự xử lý CSV sẽ tốt hơn. Nhân tiện, công ty đó cũng không hoàn tiền, nói rằng đó là “chuyện bình thường”
    • Gần đây tôi phát hiện Paisa, về cơ bản là một UI khá ổn đặt trên ledger-cli. Phần import rất tiện: bạn chỉ cần tải lên file như CSV, xem bản preview, rồi viết script để biến từng dòng thành định dạng văn bản của ledger
      Có cả lint, và nếu hài lòng với kết quả thì có thể lưu script để import lại bất cứ lúc nào. Khi theo dõi những thứ như cổ phiếu, nó cũng hỗ trợ tải giá hàng hóa/tài sản
      Biểu đồ thì với gu của tôi chưa đủ tổng quát nên tôi xuất dữ liệu sang nơi khác, nhưng để nhập dữ liệu thì rất tuyệt
    • Tôi từng gặp trường hợp sao kê PDF mà ngân hàng có nghĩa vụ pháp lý phải cung cấp lại không khớp với CSV. Hơn nữa CSV hầu như không có dữ liệu số dư
      Vì vậy tôi tải PDF xuống và trích xuất dữ liệu, nhưng việc này đau đớn quá mức cần thiết. Để cung cấp PDF dễ đọc bằng máy, chỉ cần tuân theo vài quy tắc đơn giản để có thể lấy ra 3–4 trường giao dịch và vài trường sao kê như ngày tháng, số dư mà không cần các heuristic mong manh
      PDF có thương hiệu và dễ đọc với con người không hề mâu thuẫn với PDF dễ đọc bằng máy
    • Ở Anh có Open Banking, một API chuẩn để truy cập dữ liệu ngân hàng: https://www.openbanking.org.uk/
    • Ở nước tôi, mọi giao dịch đều được gửi qua SMS, nên tôi đã xây một hệ thống dùng Tasker bắt SMS và lưu vào file CSV. CSV đó được đặt trong một thư mục đồng bộ sang desktop bằng SyncThing
      Tôi từng định xử lý dữ liệu đó rồi đưa vào hệ thống kế toán, nhưng không thực hiện được; sau đó điện thoại hỏng và tôi cũng mất luôn action của Tasker. Giờ không còn động lực triển khai lại nữa
  • Domain liên quan vẫn còn nguyên. Bài năm 2023: https://news.ycombinator.com/item?id=36022005, bài năm 2021: https://news.ycombinator.com/item?id=28420797, bài năm 2016: https://news.ycombinator.com/item?id=11164330
    Có thể xem thêm các nhắc đến khác về khái niệm này tại https://hn.algolia.com/?q=Plain+Text+Accounting

  • Tôi tò mò không biết người khác thực sự dùng các công cụ kế toán bằng văn bản thuần như thế nào. Muốn biết họ dùng để nắm thói quen chi tiêu và thay đổi hành vi, để theo dõi chi phí, doanh thu, giá trị tài sản ròng, hay vì chính quy trình có trật tự đó hấp dẫn
    Mỗi lần thấy chủ đề này, tôi vừa có thôi thúc muốn đắm chìm hoàn toàn, vừa thấy tội lỗi vì những lần thử trước đây không duy trì được. Hiện giờ tôi chưa cập nhật sổ cái cá nhân được một tháng rưỡi, nên cảm giác tội lỗi lớn hơn
    Rốt cuộc vì không chắc tại sao mình dùng thứ này, nên sau một thời gian việc ghi giao dịch trở thành cảm giác ghi chỉ để ghi

    • Tôi luôn dùng cho các khoản quyết toán nhóm phát sinh tự phát. Trong những tình huống như ba người đi du lịch, chia chi phí ngay hôm đó hoặc cuối tuần đó dễ hơn nhiều; cứ để các khoản nợ chồng lên rồi khi cần thì tất toán. Những khoản chi lộn xộn kiểu này rất khó theo dõi bằng cách khác
      Chi phí công việc cũng tương tự. Tôi trả tiền thiết bị hoặc dịch vụ bằng thẻ của mình rồi báo cáo sau để được hoàn lại bằng tiền mặt hoặc chuyển khoản. Tuy vậy ở một số quốc gia hoặc doanh nghiệp thì cách này không dùng được
      Chi tiêu cá nhân hằng ngày thì ngân hàng và kinh nghiệm đã cho biết rồi, nên không cần làm đến kế toán. Phải có động lực tài chính, chứ không phải động lực cảm xúc. Nếu biết rằng bỏ kế toán thì bạn mình sẽ mất vài trăm đô la tiền rượu hoặc công ty sẽ lấy miễn phí một sợi cáp HDMI, bạn sẽ nhập số tiền không chút do dự. Lý do kế toán cá nhân khó duy trì là vì thứ mất đi không phải tiền, mà chỉ là phân tích
    • Vì là người tự kinh doanh, tôi dùng Beancount cho tài khoản kinh doanh và danh mục cổ phiếu. Tôi thích cách tiếp cận nghiêm ngặt hơn, và Fava, UI web của nó, thuận tiện cho báo cáo và trực quan hóa
      Tôi cũng có vài script tự động hóa các quy trình như nhập giao dịch Wise hay theo dõi tỷ giá. Nhưng tôi không có đủ kỷ luật để dùng nó cho chi tiêu cá nhân hằng ngày hay quản lý ngân sách
    • Tôi không dùng nó như một công cụ tạo động lực để thay đổi thói quen chi tiêu, nhưng thích duy trì ghi chép cho mọi tài khoản và tài sản. Nó giúp tôi hiểu rõ hơn toàn bộ tình hình tài chính, và tôi tạo tài khoản ảo bên trong tài khoản tiết kiệm dạng tiền mặt để chia số dư theo từng khoản cần trích trước, như bảo dưỡng ô tô hay bảo hiểm
    • Tôi dùng hledger cho nhiều mục đích. Theo dõi các khoản phải thu từ khách hàng, phân loại chi tiêu như tiền ăn, ăn ngoài, sách, đăng ký tạp chí, số dư hiện tại của các tài khoản nhiều loại tiền tệ, tiền cho người khác vay và quà tặng, cũng như các phong bì ảo để tiết kiệm cho những mục tiêu như du lịch, quà tặng, đầu tư
      Việc kiểm tra xem mỗi ngày mình đã lãng phí bao nhiêu vào ăn ngoài, rồi tính kết quả lãi kép nếu số tiền đó được đưa vào quỹ chỉ số, đã giúp tôi rất nhiều trong việc giảm thói quen ăn ngoài. Tôi cũng có thể phân biệt khoản phải thu từ khách hàng, dòng tiền thực tế và dòng tiền dựa trên thu nhập dự kiến
      Khi chia số dư tài khoản tiết kiệm trong đầu kiểu “40% mục tiêu đầu tư, 1% quà tặng”, tôi ít bị nhìn thấy số dư lớn rồi tiêu bốc đồng hơn. Tôi cũng có một chương trình tạo biểu đồ về tăng trưởng tài sản, mức tăng/giảm chi tiêu theo phân loại, ghi chú liệu thay đổi đó có tác động ròng tích cực đến cuộc sống hay không rồi dump ra trang web; tôi dùng nó hằng năm khi lập kế hoạch tiếp theo
      Tôi cũng có script Python chuyển đổi file ledger sang Excel để gửi cho kế toán làm khai thuế hằng năm. File ledger cho kinh doanh được tách riêng; tôi không tự quản lý thủ công mà xuất dữ liệu từ phần mềm của kế toán rồi tự tính ở nhà
      Trong kinh doanh, tôi dùng nó để dự báo dòng tiền nhằm dự đoán chi tiêu sẽ tăng thế nào khi doanh thu tăng, phát hiện bất thường trong chi tiêu theo bộ phận, quyết định nên tăng tuyển dụng hay tăng chi marketing, và tính các chỉ số như ROIC
      Kế toán kép giúp lấy sao kê ngân hàng để tạo ledger rồi phát hiện sai lệch kế toán. Tôi chia tài khoản theo mục đích như chi tiêu tùy ý, phúc lợi nhân viên, chi phí đầu vào cho kinh doanh, rồi để tài khoản chính chuyển tiền vào hằng tuần nhằm kiểm tra có bất thường không
      Trước đây từng có chuyện kế toán không nói rõ ràng, đưa chi phí giả vào sổ sách để trông như tiết kiệm được nhiều thuế, rồi tôi phải ra tòa và trả một khoản phạt lớn cùng phụ thu chậm nộp. Giờ tôi không tin kế toán nữa và nhất định kiểm tra lại
      Tôi có nhiều script tự động nhập dữ liệu từ Stripe, sao kê ngân hàng, sổ sách của kế toán, v.v., rồi dùng Python đối chiếu với nhau để tìm sai lệch. Với một lập trình viên như tôi, kế toán bằng văn bản thuần rất hợp, và tôi đã xây dựng hệ thống riêng của mình trên hledger trong nhiều năm