diff --git a/docs/parsers/proc_loadavg.md b/docs/parsers/proc_loadavg.md
new file mode 100644
index 00000000..05168398
--- /dev/null
+++ b/docs/parsers/proc_loadavg.md
@@ -0,0 +1,88 @@
+[Home](https://kellyjonbrazil.github.io/jc/)
+
+
+# jc.parsers.proc\_loadavg
+
+jc - JSON Convert `/proc/loadavg` file parser
+
+Usage (cli):
+
+ $ cat /proc/loadavg | jc --proc
+
+or
+
+ $ jc /proc/loadavg
+
+or
+
+ $ cat /proc/loadavg | jc --proc-loadavg
+
+Usage (module):
+
+ import jc
+ result = jc.parse('proc', proc_loadavg_file)
+
+or
+
+ import jc
+ result = jc.parse('proc_loadavg', proc_loadavg_file)
+
+Schema:
+
+All values are integers.
+
+ {
+ "load_1m": float,
+ "load_5m": float,
+ "load_15m": float,
+ "running": integer,
+ "available": integer,
+ "last_pid": integer
+ }
+
+Examples:
+
+ $ cat /proc/loadavg | jc --proc -p
+ {
+ "load_1m": 0.0,
+ "load_5m": 0.01,
+ "load_15m": 0.03,
+ "running": 2,
+ "available": 111,
+ "last_pid": 2039
+ }
+
+ $ cat /proc/loadavg | jc --proc -p -r
+ {
+ "load_1m": "0.00",
+ "load_5m": "0.01",
+ "load_15m": "0.03",
+ "running": "2",
+ "available": "111",
+ "last_pid": "2039"
+ }
+
+
+
+### parse
+
+```python
+def parse(data: str, raw: bool = False, quiet: bool = False) -> Dict
+```
+
+Main text parsing function
+
+Parameters:
+
+ data: (string) text data to parse
+ raw: (boolean) unprocessed output if True
+ quiet: (boolean) suppress warning messages if True
+
+Returns:
+
+ Dictionary. Raw or processed structured data.
+
+### Parser Information
+Compatibility: linux
+
+Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com)
diff --git a/jc/lib.py b/jc/lib.py
index dac00e19..e9537127 100644
--- a/jc/lib.py
+++ b/jc/lib.py
@@ -96,6 +96,7 @@ parsers = [
'proc-interrupts',
'proc-iomem',
'proc-ioports',
+ 'proc-loadavg',
'proc-meminfo',
'proc-modules',
'ps',
diff --git a/jc/parsers/proc_loadavg.py b/jc/parsers/proc_loadavg.py
new file mode 100644
index 00000000..dc234c71
--- /dev/null
+++ b/jc/parsers/proc_loadavg.py
@@ -0,0 +1,139 @@
+"""jc - JSON Convert `/proc/loadavg` file parser
+
+Usage (cli):
+
+ $ cat /proc/loadavg | jc --proc
+
+or
+
+ $ jc /proc/loadavg
+
+or
+
+ $ cat /proc/loadavg | jc --proc-loadavg
+
+Usage (module):
+
+ import jc
+ result = jc.parse('proc', proc_loadavg_file)
+
+or
+
+ import jc
+ result = jc.parse('proc_loadavg', proc_loadavg_file)
+
+Schema:
+
+All values are integers.
+
+ {
+ "load_1m": float,
+ "load_5m": float,
+ "load_15m": float,
+ "running": integer,
+ "available": integer,
+ "last_pid": integer
+ }
+
+Examples:
+
+ $ cat /proc/loadavg | jc --proc -p
+ {
+ "load_1m": 0.0,
+ "load_5m": 0.01,
+ "load_15m": 0.03,
+ "running": 2,
+ "available": 111,
+ "last_pid": 2039
+ }
+
+ $ cat /proc/loadavg | jc --proc -p -r
+ {
+ "load_1m": "0.00",
+ "load_5m": "0.01",
+ "load_15m": "0.03",
+ "running": "2",
+ "available": "111",
+ "last_pid": "2039"
+ }
+"""
+from typing import Dict
+import jc.utils
+
+
+class info():
+ """Provides parser metadata (version, author, etc.)"""
+ version = '1.0'
+ description = '`/proc/loadavg` file parser'
+ author = 'Kelly Brazil'
+ author_email = 'kellyjonbrazil@gmail.com'
+ compatible = ['linux']
+ hidden = True
+
+
+__version__ = info.version
+
+
+def _process(proc_data: Dict) -> Dict:
+ """
+ Final processing to conform to the schema.
+
+ Parameters:
+
+ proc_data: (Dictionary) raw structured data to process
+
+ Returns:
+
+ Dictionary. Structured to conform to the schema.
+ """
+ float_list = {'load_1m', 'load_5m', 'load_15m'}
+ int_list = {'running', 'available', 'last_pid'}
+
+ for key in proc_data:
+ if key in float_list:
+ proc_data[key] = float(proc_data[key])
+
+ if key in int_list:
+ proc_data[key] = int(proc_data[key])
+
+ return proc_data
+
+
+def parse(
+ data: str,
+ raw: bool = False,
+ quiet: bool = False
+) -> Dict:
+ """
+ Main text parsing function
+
+ Parameters:
+
+ data: (string) text data to parse
+ raw: (boolean) unprocessed output if True
+ quiet: (boolean) suppress warning messages if True
+
+ Returns:
+
+ Dictionary. Raw or processed structured data.
+ """
+ jc.utils.compatibility(__name__, info.compatible, quiet)
+ jc.utils.input_type_check(data)
+
+ raw_output: Dict = {}
+
+ if jc.utils.has_data(data):
+
+ load_1m, load_5m, load_15m, runnable, last_pid = data.split()
+ running, available = runnable.split('/')
+
+ raw_output = {
+ 'load_1m': load_1m,
+ 'load_5m': load_5m,
+ 'load_15m': load_15m,
+ 'running': running,
+ 'available': available,
+ 'last_pid': last_pid
+ }
+
+ return raw_output if raw else _process(raw_output)
diff --git a/man/jc.1 b/man/jc.1
index 78bc4903..54b939e7 100644
--- a/man/jc.1
+++ b/man/jc.1
@@ -465,6 +465,11 @@ PLIST file parser
\fB--proc-ioports\fP
`/proc/ioports` file parser
+.TP
+.B
+\fB--proc-loadavg\fP
+`/proc/loadavg` file parser
+
.TP
.B
\fB--proc-meminfo\fP