Tính năng:: Nhập liệu được bằng file text
Tính năng:: Nhập được trên máy tính
Tính năng:: Phân loại bằng tay
Tính năng:: Tạo query phức tạp được
Tính năng:: Dùng được trên CLI
Tính năng:: Dễ dàng thiết lập việc tự động truyền dữ liệu sang các phần mềm khác
Tính năng:: Sao chép kết quả sang chương trình khác được
Tính năng:: Dữ liệu chương trình lưu dưới dạng tập tin
Tính năng:: Điều khiển dễ dàng bằng bàn phím
Tính năng:: Thêm được nhiều trường phân loại
Tính năng:: Là phần mềm tự do
Tính năng:: Miễn phí
Loại chương trình: Chương trình kế toán
Demo: Income Statement - Example Beancount file
https://beancount.github.io/docs/a_comparison_of_beancount_and_ledger_hledger.html
Vì phần chi tiêu cá nhân ko có tác dụng đối với mục đích kê khai thuế ở Mỹ, nên m nói mục đích của dev beancount có vẻ ko phải để theo dõi chi tiêu. b đọc các ví dụ minh họa cách sử dụng của beancount sẽ thấy đa phần là để theo dõi danh mục đầu tư cá nhân, ghi nhận lãi lỗ, nhằm mục đích kê khai thuế thu nhập cá nhân hàng năm của Mỹ. Không như Vietnam thì thuế thu nhập từ đầu tư cá nhân đã được thu hộ tại nguồn là các cty chứng khoán rồi Nhưng m thấy beancount vẫn làm tốt việc theo dõi chi tiêu ở mức tiểu khoản rất tốt. Nếu kiên nhẫn nhập đúng và đủ.
Beancount nhập liệu cứng nhắc hơn, chỉ được chọn 1 trong 5 loại tài khoản
Beancount transactions are required to balance, period. I make no compromise in this, there is no way out.
“If people don't want to use them [virtual accounts], that's fine. But Ledger is not an accounting tool; it's a tool that may be used to do accounting. As such, I believe virtual accounts serve a role that others with non-accounting problems may wish to fill.”
Our task in representing transactional information is the replication of operations that take place mostly in institutions. These operations always involve the rounding of numbers for units and currencies (banks do apply stochastic rounding), and the correct numbers to be used from the perspective of these institutions, and from the perspective of the government, are indeed the rounded numbers themselves.
alias
Features - hledger
-
Nhiều đồng tiền khác nhau
-
--cumulativehữu ích khi dùng dự trù ngân sách bằng phong bì -
Cần 2 dấu cách để kết thúc tên tài khoản, vì dấu cách và dấu chấm phẩy 2+ spaces to end an account name (because space and semicolon are allowed in account names. Run
hledger accounts -dto see what happened.)
use aregister for reviewing and reconciling real-world asset/liability accounts - use register for reviewing detailed revenues/expenses.
2025-09-24
expenses:primary:category 1 ; secondary:foo:bar, tertiary:baz:qux
assets
$ hledger bal -N -t --no-elide expenses
1 expenses
1 primary
1 category
$ hledger bal -N -t --no-elide expenses --pivot secondary
1 foo
1 bar
$ hledger bal -N -t --no-elide expenses --pivot tertiary
1 baz
1 qux
Nguồn::
Show the daily changes in asset and liability accounts:
$ hledger balance assets liabilities -D Balance changes in 2025-01-01..2025-01-04: || 2025-01-01 2025-01-02 2025-01-03 2025-01-04 =========================++================================================ assets:bank:checking || 200 USD 1000 USD -200 USD -250 USD assets:cash || 100 USD 0 0 0 liabilities:credit card || -400 USD 0 200 USD 0 -------------------------++------------------------------------------------ || -100 USD 1000 USD 0 -250 USD
It's important to note that despite its name, the "balance" command shows balance changes by default. But it can also show the resulting balances, if you add the -H/--historical flag. Notice the change of title:
$ hledger balance assets liabilities -DH Ending balances (historical) in 2025-01-01..2025-01-04: || 2025-01-01 2025-01-02 2025-01-03 2025-01-04 =========================++================================================ assets:bank:checking || 200 USD 1200 USD 1000 USD 750 USD assets:cash || 100 USD 100 USD 100 USD 100 USD liabilities:credit card || -400 USD -400 USD -200 USD -200 USD -------------------------++------------------------------------------------ || -100 USD 900 USD 900 USD 650 USD
I intend to try this approach:
- Defining different charts of accounts (COA) in different files,
- Using aliases in transactions,
- Joining a specific COA with the actual journal for reporting
COA 1.journal:
; Chart of accounts 1
account expense:food:fish
account asset:cash
alias fish = expense:food:fish
alias cash = asset:cash
COA 2.journal:
; Chart of accounts 2
account Chi:Đồ ăn:Cá
account Tài sản:Tiền mặt
alias fish = Chi:Đồ ăn:Cá
alias cash = Tài sản:Tiền mặt
Actual.journal:
2025-09-24
fish 1
cash -1
Reporting:
cat "COA 1.journal" Actual.journal | hledger -f- CMD
cat "COA 2.journal" Actual.journal | hledger -f- CMD
Tuyệt vời! Tôi sẽ mở rộng bài giới thiệu về hledger một cách chi tiết và chuyên sâu, tập trung vào kiến trúc, lợi ích của việc sử dụng dữ liệu văn bản thuần túy, và bối cảnh sử dụng, giúp bài viết dài gấp ba lần so với bản gốc.
hledger: Hệ Thống Kế Toán Sổ Cái Dòng Lệnh Toàn Diện và Linh Hoạt
hledger là một công cụ kế toán sổ cái ghi sổ kép (double-entry accounting system) mạnh mẽ, hoàn toàn miễn phí, mã nguồn mở, và hoạt động thông qua giao diện dòng lệnh (CLI). Ra đời từ cảm hứng của công cụ Ledger huyền thoại và được phát triển bằng ngôn ngữ lập trình Haskell, hledger mang đến sự kết hợp hoàn hảo giữa tính chính xác, nghiêm ngặt của kế toán chuyên nghiệp và sự linh hoạt, tối giản của dữ liệu văn bản thuần túy. Đây là giải pháp lý tưởng cho những cá nhân, chuyên gia, hoặc doanh nghiệp nhỏ muốn có quyền kiểm soát tuyệt đối đối với dữ liệu tài chính của mình.
💡 Triết Lý Cốt Lõi: Sổ Cái Ghi Sổ Kép và Văn Bản Thuần Túy
1. Nền tảng Ghi Sổ Kép (Double-Entry)
hledger vận hành dựa trên nguyên tắc cơ bản của kế toán: mọi giao dịch phải cân bằng. Điều này có nghĩa là mỗi giao dịch (transaction) phải ảnh hưởng đến ít nhất hai tài khoản (account) với tổng số dư bằng không.
-
Tài khoản Phân Cấp: Tài khoản được tổ chức theo cấp bậc (ví dụ:
Tài sản:Ngân hàng:Tiết kiệm,Chi phí:Di chuyển:Xăng). Cấu trúc này cho phép bạn tạo báo cáo ở nhiều cấp độ chi tiết, từ tổng quan tài sản đến chi phí cụ thể. -
Tính Cân bằng Tự động: Khi bạn chỉ định số tiền cho n−1 tài khoản trong một giao dịch, hledger sẽ tự động tính toán số tiền còn thiếu hoặc thừa cho tài khoản thứ n để đảm bảo tổng Nợ (Debit) và Có (Credit) bằng nhau.
2. Sức mạnh của Dữ liệu Văn bản Thuần Túy
Đây là điểm khác biệt lớn nhất của hledger. Thay vì sử dụng cơ sở dữ liệu (database) nhị phân phức tạp, mọi dữ liệu tài chính được lưu trữ trong một tệp văn bản (thường là .journal hoặc .dat).
| Lợi ích | Mô tả Chi tiết |
|---|---|
| Tính bền vững | Tệp văn bản không bị lỗi thời. Bạn có thể mở và đọc dữ liệu này bằng bất kỳ trình soạn thảo văn bản nào, ngay cả sau nhiều thập kỷ. |
| Kiểm soát Phiên bản (Version Control) | Dễ dàng quản lý tệp .journal bằng các công cụ như Git. Điều này cho phép bạn theo dõi mọi thay đổi đã được thực hiện, hoàn tác giao dịch sai, và xem lịch sử tài chính chi tiết, tạo ra một bản ghi kiểm toán không thể chối cãi. |
| Tích hợp và Tự động hóa | Dữ liệu dễ đọc giúp bạn dễ dàng viết script (sử dụng Python, Bash, Perl,...) để tự động hóa việc nhập dữ liệu từ tệp CSV của ngân hàng hoặc các nguồn khác vào định dạng hledger. |
| Tính bảo mật | Dữ liệu tài chính chỉ nằm trên máy tính của bạn, hoàn toàn không phụ thuộc vào máy chủ đám mây của bên thứ ba, tăng cường quyền riêng tư và bảo mật. |
💻 Khám Phá Các Chức Năng Chính qua Dòng Lệnh (CLI)
Giao diện dòng lệnh là phương tiện chính để tương tác với hledger, mang lại hiệu suất và tốc độ vượt trội.
1. Ghi Chép Giao Dịch Đa Dạng
hledger cho phép bạn ghi lại các giao dịch phức tạp, bao gồm:
-
Đa Tiền tệ: Xử lý các giao dịch bằng nhiều loại tiền tệ khác nhau (VND, USD, EUR).
-
Hàng hóa/Chứng khoán: Theo dõi tài sản không phải tiền mặt như cổ phiếu, vàng, hay tiền điện tử, và tự động tính toán giá trị thị trường hiện tại (Market Value) nếu bạn cung cấp dữ liệu giá.
-
Giao dịch Định kỳ (Periodic Transactions): Sử dụng các quy tắc (rules) để tự động tạo các giao dịch định kỳ (ví dụ: tiền thuê nhà hàng tháng, phí dịch vụ) mà không cần nhập thủ công.
2. Hệ thống Báo cáo Nhanh và Mạnh Mẽ
hledger có khả năng tạo ra các báo cáo tài chính tiêu chuẩn một cách nhanh chóng, chỉ với một lệnh duy nhất, và có thể tùy chỉnh sâu sắc bằng các cờ (flags) lọc.
| Lệnh Báo cáo | Mục đích | Ví dụ Lọc (Filtering) |
|---|---|---|
hledger balance |
Bảng Cân đối Kế toán (Balance Sheet): Tổng quan về tài sản (Assets), nợ (Liabilities), và vốn chủ sở hữu (Equity). | hledger bal Assets and Liabilities (Chỉ xem Tài sản và Nợ phải trả) |
hledger register |
Sổ cái Chi tiết (Register): Hiển thị từng giao dịch của một hoặc nhiều tài khoản, kèm theo số dư lũy kế. | hledger reg ^Chi phí --monthly (Xem tất cả chi phí theo tháng) |
hledger is |
Báo cáo Thu nhập (Income Statement - P&L): Tính toán Doanh thu trừ Chi phí để xác định Lợi nhuận/Thua lỗ. | hledger is --begin 2025/01/01 (Xem P&L từ đầu năm) |
hledger print |
Xem Nguồn: Chuẩn hóa và in lại toàn bộ tệp sổ cái của bạn. | hledger print --sort date (Sắp xếp lại giao dịch theo ngày) |
3. Quy trình Làm việc Lý tưởng
Một quy trình làm việc tiêu biểu với hledger thường bao gồm:
-
Nhập dữ liệu: Tải về tệp CSV từ ngân hàng.
-
Chuyển đổi: Sử dụng công cụ hledger-iimport (hoặc một script tùy chỉnh) để chuyển đổi CSV thành các giao dịch nháp trong tệp
.journal. -
Duyệt và Hoàn tất: Kiểm tra và gán các tài khoản còn thiếu cho các giao dịch nháp.
-
Báo cáo: Chạy các lệnh CLI như
hledger balancehoặchledger isđể phân tích tình hình tài chính.
🌐 Mở Rộng: hledger-web và Cộng đồng
Mặc dù hledger tập trung vào CLI, nó không hoàn toàn bỏ qua giao diện người dùng đồ họa (GUI):
hledger-web: Cầu nối Thân thiện
hledger-web là một ứng dụng web nhẹ được xây dựng kèm theo hledger. Nó cho phép người dùng:
-
Xem các báo cáo tài chính thông qua trình duyệt web.
-
Duyệt và tìm kiếm sổ cái một cách trực quan hơn.
-
Nhập giao dịch thủ công qua một biểu mẫu đơn giản.
hledger-web là một công cụ tiện lợi cho việc xem nhanh hàng ngày hoặc cho những người dùng không thoải mái với môi trường dòng lệnh.
Cộng đồng và Hệ sinh thái
hledger là một dự án mã nguồn mở tích cực. Nó là một phần của hệ sinh thái Plain Text Accounting (PTA) lớn hơn, chia sẻ triết lý và đôi khi cả định dạng tệp với các công cụ tương tự như Ledger và Beancount. Sự tương thích này giúp người dùng dễ dàng chuyển đổi hoặc sử dụng kết hợp các công cụ khác trong hệ sinh thái PTA.
🎯 hledger Phù Hợp Với Ai?
hledger là một lựa chọn mạnh mẽ cho:
-
Các Chuyên gia Kỹ thuật và Lập trình viên: Những người đã quen thuộc và yêu thích hiệu suất của công cụ dòng lệnh và quản lý dữ liệu bằng Git.
-
Những người tìm kiếm Sự Độc lập Dữ liệu: Các cá nhân và doanh nghiệp nhỏ muốn hoàn toàn sở hữu và kiểm soát dữ liệu tài chính của mình, không bị phụ thuộc vào các dịch vụ phần mềm trả phí hoặc dịch vụ đám mây.
-
Người yêu thích Tối giản (Minimalism): Những người muốn một giải pháp kế toán không cần cơ sở dữ liệu cồng kềnh, không cần cài đặt phức tạp, và có thể hoạt động hiệu quả trên mọi hệ điều hành (Linux, macOS, Windows).
hledger không chỉ là một chương trình; đó là một triết lý về tính minh bạch, kiểm soát, và hiệu quả trong quản lý tiền bạc cá nhân và kinh doanh. Bằng cách viết ra các giao dịch, người dùng không chỉ ghi lại mà còn thực sự hiểu và chủ động trong việc quản lý tài chính của mình.