Plain Text Accounting (PTA)
(plaintextaccounting.org)- Plain Text Accounting (PTA) adalah metode mencatat data akuntansi dalam berkas teks biasa dan memprosesnya dengan alat yang ramah baris perintah seperti Ledger, hledger, dan Beancount; situs ini adalah portal yang mengumpulkan materi terkait di satu tempat
- Aktivitas komunitas tersebar di Matrix/IRC, forum, Reddit, Lemmy, Hacker News, Mastodon, X, Bluesky dan lainnya, sehingga pertanyaan, kabar, serta percakapan per proyek dapat diikuti melalui berbagai jalur
- Materi pembelajaran disusun sebagai perbandingan aplikasi, dokumentasi resmi, dasar-dasar akuntansi, panduan pemula, cheat sheet, cookbook, FAQ, slide, dan video, sehingga orang yang baru memakai PTA pun dapat memulainya bertahap
- Ekosistem aplikasi berpusat pada Ledger, Beancount, dan hledger, dengan berbagai implementasi serta matriks fitur; tiga alat utama masing-masing berbasis C++/Python/Haskell dan memiliki riwayat rilis 2025–2026
- Impor dan konversi, plugin editor, invoice, pencarian harga, pelaporan, pencatatan waktu, UI, workflow, hingga library terhubung, sehingga data akuntansi teks biasa dapat ditempelkan ke berbagai lingkungan kerja
Konsep PTA dan peran plaintextaccounting.org
- Plain Text Accounting adalah cara melakukan pembukuan dan akuntansi dengan berkas teks biasa serta perangkat lunak efisien yang ramah baris perintah seperti Ledger, hledger, dan Beancount
- plaintextaccounting.org berperan sebagai portal menuju alat, dokumen, dan praktik komunitas PTA
- Pengguna dapat menerima pembaruan repositori situs, dan situs ini juga menyediakan laporan keuangan serta informasi dukungan
Komunitas dan kanal diskusi
- Percakapan real-time tersedia melalui
#plaintextaccountingdi Matrix, plaintextaccounting Matrix space, dan kanal IRC#plaintextaccountingdi Libera Chat - Diskusi dan kabar tersebar di berbagai kanal publik
- PTA forum
- /r/plaintextaccounting
- lemmy.world/c/plaintextaccounting
- Pencarian stories/comments terkait plain text accounting di Hacker News
#plaintextaccounting,#ledgercli,#hledger,#beancountdi Mastodon- Pencarian dan tagar di Twitter/X serta Bluesky
- Stack Exchange menyediakan tag
ledger-clidanhledgerserta tautan pencarian - Mailing list dan chat per proyek, serta
This Week In Hledger, juga ditautkan
Dokumen dan materi pembelajaran
- Materi perbandingan aplikasi mencakup daftar aplikasi PTA, matriks fitur, FAQ “aplikasi PTA mana yang harus dipilih”, dan Syntax Quick Reference
- Dokumentasi resmi aplikasi ditautkan ke Ledger, hledger, Beancount, rustledger, Ledger(Go), Tackler, dan dokumentasi pta
- Materi dasar-dasar akuntansi mencakup PTA FAQ, Accounting basics/links dari hledger, Double-Entry Counting Method dari Beancount, “Accounting for Computer Scientists”, dan lainnya
- Materi pengantar dibagi berdasarkan titik awal
- Cheat sheet, cookbook, FAQ, slide, dan materi video juga disusun dalam bagian terpisah; pada bagian video ada catatan bahwa video PTA sulit ditemukan di YouTube
Aplikasi PTA utama dan perbandingan fitur
- Saat mulai memakai PTA, pengguna dapat mencoba satu atau lebih aplikasi yang tercantum di situs, dan secara umum migrasi data antar-aplikasi dimungkinkan
- Daftar aplikasi utama saat ini merangkum berbagai proyek
- Ledger: C++, dimulai pada 2003, rilis terakhir 2025, sekitar 245 committer, sekitar 5,9k stars
- Beancount: Python, dimulai pada 2008, rilis terakhir 2026, sekitar 103 committer, sekitar 5,5k stars
- hledger: Haskell, dimulai pada 2007, rilis terakhir 2026, sekitar 194 committer, sekitar 4,4k stars
- Transity, Ledger(Go), Abandon, zhang, Tackler, rustledger, knut, acc, ledg, dan lainnya juga termasuk dalam daftar saat ini
- Proyek lama atau tidak aktif disusun terpisah, termasuk placc, budget-cli, mynt, awk-pta, pta, blossom, .Net Ledger, monescript, Penny, UMM, cl-ledger, dan lainnya
- Matriks fitur Ledger, hledger, dan Beancount diperbarui per 2024-09, dan membandingkan antarmuka pengguna, instalasi, bantuan, format input/output, perintah, konfigurasi, ekstensibilitas, nama akun, anggaran, chart, pencarian harga, query, validasi, dan lainnya
- Perbedaan utama berfokus pada aspek yang langsung berdampak saat memilih alat
- CLI ditautkan ke
ledgeruntuk Ledger,hledgeruntuk hledger, danbeanqueryuntuk Beancount - Kemudahan instalasi dan konfigurasi ditandai
yesuntuk Ledger/hledger, sementara Beancount ditandaino - hledger menyediakan format output text/html/csv/tsv/fods/beancount/sql/json
- Validasi Beancount ditandai selalu ketat, sementara Ledger dan hledger ditandai dapat dikonfigurasi
- CLI ditautkan ke
Ekosistem perangkat lunak
- Bagian AI mencakup
accountant24, agen AI multimodel lokal-first yang menggunakan hledger, serta tulisan konfigurasi yang memakai Claude Code sebagai lapisan agen di hledger dan Obsidian vault - Sebagai distribusi dan konfigurasi alternatif, situs ini merangkum Full-fledged hledger, hledger-flow, Lazy Beancount, hledger-youtube-business, rtrLEDGER, dan docker-finance
- Konversi dan impor data mendapat porsi besar; selain konversi CSV bawaan Ledger dan hledger, bagian ini mencantumkan alat impor Beancount v2,
banks2ledger,beancount-import,beancount2ledger,hledger2beancount,ledger2beancount,plaid2text, dan lainnya- Alat untuk memindahkan data dari GnuCash, Intuit/QuickBooks/QIF, KMyMoney, dan YNAB ke *ledger atau Beancount juga disusun dalam subbagian terpisah
- Alat pembuatan data digunakan untuk membuat price transaction, depresiasi, bunga, transaksi berulang, posting laba/rugi modal, dan tugas sejenis
- Plugin editor dibagi untuk Emacs, JetBrains IDE, Nano, Sublime, TextMate, Vim, dan VS Code
- Contoh:
ledger-mode,beancount-mode,hledger-mode,vim-ledger,vim-beancount,hledger-vscode,vscode-beancount
- Contoh:
- Sebagai alat pemformatan, tercantum
beancount-black,beancount-black web app, danhledger-fmt - Untuk alat invoice, diperkenalkan
kairos, alat Go yang membuat invoice dari berkas timedot hledger
UI, pelaporan, workflow, library
- Alat pencarian harga mencakup
bean-pricedari Beancount,hledger-stockquotes,ledger-get-prices,pricehist, serta alat pencarian harga saham dan kurs berbasis Yahoo Finance - Alat pelaporan berkembang ke anggaran, analisis aset, laporan selisih, internal rate of return, chart, Sankey, output PDF, perhitungan capital gain, dan lainnya
- Alat pencatatan waktu mencakup org, hook Taskwarrior, Toggl CSV, konversi timeclock, serta contoh pencatatan waktu berbasis hledger
- UI terminal seperti
hledger add,hledger-ui,hledger-iadd,bean-add,ledger xact,puffin,regdel, dan lainnya mendukung input, pencarian, dan pengeditan transaksi - GUI, web, dan UI mobile juga ditautkan sebagai alat terpisah
- Web: fava, hledger-web, Paisa, BeanHub
- Mobile: Beancount Mobile CE, beancount-mobile, NanoLedger, cashier, cone, MoLe
- GUI: fruit-credits, Ledgera, Prudent, Surebeans, dan lainnya
- Bagian workflow membahas konfigurasi untuk membuat jurnal hledger dari CSV atau melacak dan melaporkan keuangan tradisional serta kripto berbasis Docker
- Bagian library mengumpulkan komponen pengembangan untuk parsing, query, pelaporan, dan integrasi berkas PTA, seperti parser Beancount, BeanHub API, hledger-lib, hledger-web JSON API, node-hledger, pyhledger, dan lainnya
1 komentar
Pendapat di Hacker News
Sistem yang menuntut klasifikasi ketat secara langsung tidak cocok untuk sebagian orang. Di perusahaan tempat saya bekerja dulu, kami memakai pendekatan dua tahap: pertama menulis catatan singkat di iPhone Notes seperti
-50 Alice tools,+20 Bob returned loan, lalu belakangan sebuah skrip mem-parsing tanggal, kata kunci, pihak lawan, dan item analisis internal untuk mengubahnya menjadi templat pembukuan berpasanganItem yang tidak bisa dikenali skrip diklasifikasikan secara manual dan, jika perlu, ditambahkan ke daftar aturan; kami juga punya daftar pemetaan per orang agar Alice dan Bob tidak perlu menyamakan kosakata
Sulit membayangkan seseorang yang sedang mengantre, menyetir, atau mengobrol harus mengisi format seperti
Cat1:cat2:cat3setiap kali uang berpindah tangan. Pada akhirnya kemungkinan besar mereka akan kembali ke catatan pendek atau chat, atau mencoba “mengingat” dan mengisinya bukan di akhir hari, melainkan mungkin pada akhir pekanKalau memakai alat berbasis teks, Anda bisa dengan bebas membuat alur yang diinginkan, misalnya menambahkan skrip yang menerima catatan iPhone dan mengubahnya ke format ledger, jadi rasanya agak aneh kalau itu dianggap sebagai keluhan
Setiap kuartal kami mengunduh CSV dari rekening bank, kartu kredit, dan Zoho, lalu skrip Ruby melihat kolom memo dan mengonversinya menjadi file ledger. Skrip dan hasilnya perlu sedikit disesuaikan dari waktu ke waktu, tetapi lebih dari 95% sudah otomatis
Sebagai tambahan, kami juga menambahkan pemeriksaan konsistensi ke file ledger, seperti apakah saldonya cocok dengan saldo dari bank dan apakah item berada dalam periode saat ini
Sejak mulai berwiraswasta, saya sudah memakai ledger-cli hampir 20 tahun, dan meski tidak sempurna, saya sangat puas. Karena semuanya teks biasa, saya bisa memprosesnya dengan skrip, membacanya di VIM, dan mengekstrak data dengan mudah
File ledger untuk salah satu perusahaan yang saat ini saya jalankan adalah teks biasa berukuran 2 MB berisi transaksi sejak 2016. Saya tidak merasa ada banyak nilai dari pemecahan akun/kategori secara sangat rinci, tetapi untuk pelacakan keseluruhan, alat ini benar-benar tak tergantikan
Mempelajari pembukuan berpasangan yang digunakan alat seperti ledger juga menyenangkan; jika dipikir kembali, itu tidak sulit, dan terasa seperti keterampilan yang berguna seumur hidup
Untuk strategi akun/kategori, saya menyelaraskannya dengan klasifikasi pengeluaran yang diminta Canada Revenue Agency di laporan pajak. Awalnya saya membuat kategori yang terasa logis seperti biaya hosting dan biaya prototipe/manufaktur, tetapi setelah bertahun-tahun memetakan ulang ke kategori CRA, saya sadar bahwa menyelaraskannya dengan kategori pajak sejak awal membuat pelaporan akhir tahun jauh lebih sederhana
Kalau datanya SQLite, ini akan jauh lebih mudah diimplementasikan, tetapi dengan begitu keunggulan untuk mengedit langsung dengan editor teks akan hilang
Berkat LLM, jauh lebih mudah untuk menjalankan akuntansi teks biasa secara konsisten. Terutama membantu menghindari input manual saat mengimpor rekening koran bank ke hledger
Saya memakai file JSON yang memetakan transaksi bank ke akun hledger, dan jika ada transaksi tanpa pemetaan baru, skrip Python membuat prompt untuk Claude. Claude melihat daftar akun, menyarankan pemetaan untuk transaksi baru, lalu mengembalikan jurnal hledger berdasarkan itu
Setelah itu, skrip lain mencetak jurnal hledger untuk transaksi bank bulan tersebut dengan rapi, lalu saya tinggal merapikannya beberapa menit dan memfinalkannya. Petunjuk pemetaan yang dulu mungkin akan menjadi tumpukan regex dan conditional yang rapuh kini bisa ditulis dalam bahasa alami
Saya menikmati proses belajar memakai Beancount, menulis alat impor data, dan menangani akuntansi sendiri. Namun sudah hampir 1 tahun sejak terakhir kali saya mengimpor data; saya berniat melakukannya setiap bulan, tetapi meski otomatisasinya sudah cukup banyak, tetap butuh 30–60 menit sehingga terasa merepotkan
Begitu verifikasi seluler juga diperlukan, saya akhirnya menyerah
Saya juga sudah sekitar 1 tahun tidak mengimpor, dan untuk menghidupkannya lagi, satu-satunya cara yang terpikir adalah memecahnya kecil-kecil, misalnya mengunggah data sebulan demi sebulan selama beberapa hari
https://plaid.com/
Menggunakan ledger untuk pembukuan dan akuntansi pribadi serta beberapa LLC. Jika Anda terbiasa dengan terminal, mahir memakai CLI, sering menggunakan vim atau emacs, punya dasar sed/awk, dan kerap menulis skrip bash/python/perl/ruby, besar kemungkinan Anda akan jauh lebih puas beralih dengan mempelajari ledger dan pembukuan berpasangan dibanding cara yang Anda pakai sekarang
Untuk mengimpor transaksi dengan cepat, reckon berguna: https://github.com/cantino/reckon
Memecah masalah dengan
includejuga bagus.bal --dcmungkin terasa sedikit familier bagi akuntan AS, tetapi mereka sering tidak benar-benar memahami cara ledger memakai angka negatif, jadi lebih mudah menulis beberapa skrip untuk mengubahnya ke gaya DR/CR. Saya terkejut melihat betapa buruknya para akuntan yang pernah saya hadapi dalam menangani abstraksiKalau menambahkan satu tips, ikat semuanya dengan Makefile atau sesuatu yang serupa. File transaksi sering terbagi banyak per akun, dan perintah untuk menyertakan file yang tepat mudah menjadi panjang
Untuk berbagai grafik dan skrip ringkasan pun saya tidak selalu ingat sintaks yang benar, tetapi dengan make bisa dipanggil seperti
make cashflow,make balance 'A=Checking',make balance-plot 'A=retirement'Saya menulis beberapa artikel resep praktis untuk menggunakan Ledger secara efektif dalam situasi yang lebih kompleks, melampaui tutorial dasar: https://felixcrux.com/blog/ledger-practices
Saat mengimpor transaksi bank, transaksi lebih dulu dialokasikan ke akun atas nama pihak lawan, lalu sebuah skrip membuat file jurnal kedua per pihak lawan dengan
ledger print, membalik transaksi asli, kemudian menaruhnya sementara di sub-akun proyekUnknowndan kategoriUnknownSetelah itu petugas pembukuan mencocokkan transaksi dengan faktur tertentu dan mengalokasikannya ke akun
Project:Category; jika perlu, satu pembayaran dipecah ke beberapa proyek/kategori. Jika semua jurnal transaksi bank dan jurnal pihak lawan disertakan,ledger balbisa digunakan untuk memastikan proses pembukuan sudah selesaiAkuntansi teks biasa memang keren, tetapi menurut saya hambatan terbesar bagi banyak orang adalah mengunduh data bank dalam format standar
Bank tidak akan aktif mendukung lebih dari CSV atau Excel, dan platform agregasi data seperti Yodlee atau Plaid tidak ramah bagi open source atau pengguna hobi
Dulu ada perusahaan bernama Wesabe(https://en.wikipedia.org/wiki/Wesabe) yang membuat perangkat lunak untuk sinkronisasi bank di desktop. Mereka pada dasarnya tersisih oleh Mint.com, tetapi pendekatan itu masih teringat dan tampaknya juga mungkin dilakukan di open source
Saya belum mencobanya, tetapi setelah menghabiskan 4 jam selama beberapa hari membantu masalah koneksi bank sebuah perusahaan SaaS pembukuan, saya rela meluangkan waktu untuk itu
Setiap kali mencocokkan transaksi, saya harus berkelahi dengan sistem yang tidak bisa saya lihat bagian dalamnya maupun saya perbaiki sendiri. Sekarang saya mulai ragu apakah upaya yang dikeluarkan sepadan, dan jika ada alat yang layak pakai, lebih baik menangani CSV sendiri. Sebagai catatan, perusahaan itu juga tidak memberi pengembalian dana dengan alasan itu “hal yang umum”
Ada lint juga, dan jika hasilnya sesuai, skrip bisa disimpan untuk mengimpor ulang kapan saja. Untuk melacak hal seperti saham, ia juga mendukung pengunduhan harga komoditas
Chart-nya tidak cukup generik untuk selera saya sehingga datanya saya ekspor ke tempat lain, tetapi untuk entri data sangat bagus
Karena itu saya mengunduh PDF dan mengekstrak datanya, tetapi prosesnya jauh lebih menyakitkan daripada yang seharusnya. Agar PDF mudah dibaca mesin, cukup ikuti aturan sederhana supaya 3–4 field transaksi dan beberapa field laporan seperti tanggal serta saldo bisa diambil tanpa heuristik yang rapuh
PDF yang berisi branding dan enak dibaca manusia tidak bertentangan dengan PDF yang mudah dibaca mesin
Rencananya data itu akan diproses dan dimasukkan ke sistem akuntansi, tetapi tidak pernah saya jalankan; kemudian ponsel saya rusak dan aksi Tasker-nya ikut hilang. Saya tidak punya semangat untuk mengimplementasikannya lagi
Domain terkait masih ada. Artikel 2023: https://news.ycombinator.com/item?id=36022005, artikel 2021: https://news.ycombinator.com/item?id=28420797, artikel 2016: https://news.ycombinator.com/item?id=11164330
Penyebutan lain tentang konsep ini bisa dilihat lebih lanjut di https://hn.algolia.com/?q=Plain+Text+Accounting
Saya penasaran bagaimana orang lain benar-benar memakai alat akuntansi teks biasa. Apakah dipakai untuk memahami kebiasaan belanja dan mengubah perilaku, untuk melacak biaya, pendapatan, dan kekayaan bersih, atau justru karena proses yang tertata itu sendiri yang menarik?
Setiap kali melihat topik ini, saya merasakan dorongan untuk benar-benar tenggelam di dalamnya sekaligus rasa bersalah karena dulu pernah mencoba tetapi tidak konsisten. Saat ini saya belum memperbarui buku besar pribadi selama satu setengah bulan, jadi rasa bersalahnya lebih besar
Pada akhirnya, karena saya tidak yakin mengapa saya memakainya, lama-kelamaan rasanya seperti mencatat transaksi hanya demi mencatat
Biaya kerja juga mirip. Saya membayar perlengkapan atau layanan dengan kartu saya, lalu melaporkannya belakangan dan diganti dengan uang tunai atau transfer. Namun ini tidak berlaku di sebagian negara atau bisnis
Untuk pengeluaran pribadi sehari-hari, bank dan pengalaman sudah cukup memberi tahu, jadi tidak perlu sampai melakukan akuntansi. Harus ada motivasi finansial, bukan motivasi emosional. Kalau tahu bahwa jika saya berhenti melakukan akuntansi seorang teman bisa menghabiskan ratusan dolar untuk minuman atau perusahaan bisa mengambil satu kabel HDMI secara gratis, saya akan memasukkan jumlahnya tanpa ragu. Alasan akuntansi pribadi sulit berjalan adalah karena yang hilang bukan uang, melainkan analisis
Saya juga punya beberapa skrip yang mengotomatiskan proses seperti impor transaksi Wise atau pelacakan nilai tukar. Namun saya tidak punya disiplin yang cukup untuk memakainya pada pengeluaran pribadi harian atau pengelolaan anggaran
Ini sangat membantu mengurangi kebiasaan makan di luar: saya bisa melihat berapa banyak yang terbuang untuk makan di luar setiap hari, lalu menghitung hasil bunga majemuknya jika jumlah itu dimasukkan ke dana indeks. Saya juga bisa membedakan piutang pelanggan, arus kas aktual, dan arus kas berdasarkan pendapatan yang diperkirakan
Dengan membagi saldo rekening tabungan secara mental seperti “40% target investasi, 1% hadiah”, saya jadi lebih jarang melihat saldo besar lalu membelanjakannya secara impulsif. Saya juga punya program yang membuat grafik pertumbuhan aset serta kenaikan dan penurunan pengeluaran per kategori, mencatat apakah perubahan itu berdampak bersih positif bagi hidup, lalu men-dump-nya ke halaman web; saya memakainya setiap tahun saat menentukan rencana berikutnya
Saya juga punya skrip Python yang mengubah file ledger menjadi Excel untuk dikirim ke akuntan guna pelaporan pajak tahunan. File ledger untuk bisnis dipisahkan, tidak saya kelola secara manual langsung; saya mengekspor data dari perangkat lunak akuntan lalu melakukan perhitungan sendiri di rumah
Dalam bisnis, saya memakainya untuk proyeksi arus kas yang memperkirakan bagaimana pengeluaran akan meningkat seiring pertumbuhan penjualan, deteksi anomali pengeluaran per departemen, keputusan apakah menambah perekrutan atau menaikkan belanja pemasaran, serta menghitung metrik seperti ROIC
Pembukuan berpasangan membantu mengambil laporan bank, membuat ledger, lalu menemukan ketidaksesuaian akuntansi. Saya memisahkan akun berdasarkan tujuan, seperti pengeluaran diskresioner, tunjangan karyawan, dan biaya input bisnis, lalu mengatur agar dana masuk setiap minggu dari akun utama untuk memeriksa apakah ada yang tidak wajar
Dulu pernah ada akuntan yang tidak transparan dan memasukkan biaya palsu ke pembukuan agar terlihat menghemat banyak pajak, lalu saya berakhir di pengadilan dan membayar denda besar serta bunga keterlambatan. Sekarang saya tidak mempercayai akuntan dan selalu memeriksa ulang
Ada banyak skrip otomatisasi yang mengimpor Stripe, laporan bank, pembukuan akuntan, dan sebagainya, lalu saya mencocokkannya dengan Python untuk mencari ketidaksesuaian. Sebagai programmer, akuntansi teks biasa sangat cocok untuk saya, dan selama bertahun-tahun saya membangun sistem saya sendiri di atas hledger