• Stars
    star
    309
  • Rank 135,306 (Top 3 %)
  • Language
    Haskell
  • License
    BSD 3-Clause "New...
  • Created almost 7 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Tutorial on Hledger setup with multi-year files, multi-source imports and a range of auto-generated reports

"Full-fledged Hledger" Tutorial

Full-Fledged Hledger is a tutorial on how to setup up hledger to get:

  • ledger files split by year
  • multi-source CSV imports
  • range of auto-generated reports
  • single script to update all reports when any source file changes
  • full freedom to evolve and refactor your journals as you see fit

All new users please READ THE WIKI -- at the very least read the 'Getting started' page to get going.

Usage

TL;DR: Pick one of the numbered directories:

Each numbered directory is self-contained and includes all the code and source files from preceeding directory. Choose a starting point that suits you, clone it to the place of your choosing, run export.sh, and start populating your journals.

Head on to the Wiki to read the full story of how to grow your setup step by step and decide which bits and pieces you want to adopt.

Feel free to ignore all the scripts at the top level of the repo - they are there to help maintain the project and are not part of the hledger setup.

Wiki Table of Contents for the impatient

  1. Key principles and practices
  2. Getting started
  3. Getting data in
  4. Getting full history of the account
  5. Adding more accounts
  6. Creating CSV import rules
  7. Maintaining CSV rules
  8. Investments - easy approach
  9. Mortgages
  10. Remortgage
  11. Foreign currency
  12. Sorting expenses:unknown
  13. File-specific rules
  14. Tax returns
  15. ChangeLog

What would you find here?

A set of sample journals and helper scripts that I use together with hledger for tracking personal finances and budgeting. It should be easily adaptable to other command-line accounting tools (ledger, beancount, ...).

I went through several different approaches over the course of 10 years, and this is the end result of that journey, complete with "how", "why" and lessons learned.

My story is explained on the Wiki and illustrated by the directories in the repo. You can choose the one that best suits you as a starting point or look at the diffs between different directories to mix and match features as you see fit.

CLICK HERE FOR THE WIKI

How large is my setup?

According to hledger stats, as of 2022 it contains:

  • 335 journal files (294 of them autogenerated)
  • 6800 days of data
  • 28500 transactions
  • 9700 payees/descriptions
  • 320 accounts (with max depth of 5)
  • 20 commodities

So, decently large. It takes about a minute to regerenate all journal files and reports from scratch.

Read the wiki

Did I mention that you should go and read the wiki?

Awk, and Shake, and csvtools, and shell scripts, ...?!

There is docker image that includes all the dependencies and tools. Just clone this repo, run ./docker.sh and you should be all set.

Also, check out hledger-flow - it might suit you better, as all the automation code is contained in a single binary.

More Repositories

1

pg_relusage

pg_relusage extension for PostgreSQL: discover and log the relations used in your statements
C
21
star
2

hledger-docker

Docker image for hledger, hledger-web, hledger-ui, hledger-diff, hledger-interest and hledger-iadd
Shell
20
star
3

paperless-ocrmypdf

Docker compose recipe for The Paperless Project + OCRmyPDF
Shell
17
star
4

hledger-sankey

Script + html files to plot income vs expense money flows from hledger ledger
HTML
8
star
5

hledger-roi

Hledger Return-on-investment calucator. Does time-weighted (TWR) and money-weighted (IRR) computations
Haskell
7
star
6

hagll

GLL Parsing as Haskell parsing combinators
Haskell
5
star
7

tup-ocaml

Attempt to build ocaml using Tup build system
OCaml
3
star
8

graphtype

Graphing dependencies between Haskell types
Haskell
3
star
9

jira-blockinglinks

Workflow condition that allows to block transition depending on the status of linked issues
Java
3
star
10

jira-activityfields

Custom fields with information about past and planned activities in the project
Java
2
star
11

flow2dot

Tool to generate nice sequence (flow) diagrams from textual descriptions, written in Haskell.
Haskell
1
star
12

ocaml-canvas-test

OCaml
1
star
13

icfpc2010-futamura-rejection

Futamura Rejection ICFPC-2010 code
Scala
1
star
14

icfpc2020

OCaml
1
star
15

hhgth

Hitchhikers Guide to Haskell
Haskell
1
star
16

jira-hierarchicalid

CustomField plugin that computes syntetic issue id based on issue key and issue links
Java
1
star
17

jira-versionstate

Display textual description of version state, taking into account state of affected issues
Java
1
star