# Job Cost Estimator CLI

A free, open-source command-line tool that helps Australian tradies (electricians, plumbers, HVAC technicians) quickly estimate job costs for common tasks.

**No accounts required. Runs locally. No internet needed.**

## Quick Start

```bash
# Clone or download this file
git clone https://github.com/yourusername/job-cost-estimator
cd job-cost-estimator

# Make it executable (optional)
chmod +x job_cost_estimator.py

# Run an estimate
python3 job_cost_estimator.py --trade electrical --room-size 20 --materials copper --labour-hours 4
```

## Usage Examples

### Electrical Job
```bash
python3 job_cost_estimator.py --trade electrical --room-size 20 --materials copper --labour-hours 4
```

Output:
```
==================================================
JOB COST ESTIMATE
==================================================
Trade: ELECTRICAL
Date: 2026-09-12 14:30

JOB DETAILS
--------------------------------------------------
Room Size: 20 sqm
Materials: copper
Estimated Labour: 4 hours

COST BREAKDOWN
--------------------------------------------------
Materials ($85.00/unit x 20 units): $1700.00
Labour ($85.00/hr x 4 hr): $340.00
Call-out Fee: $75.00

SUBTOTAL: $2115.00
GST (10%): $211.50
--------------------------------------------------
TOTAL: $2326.50
==================================================
```

### Plumbing Job
```bash
python3 job_cost_estimator.py --trade plumbing --room-size 15 --materials pvc --labour-hours 2
```

### HVAC Job
```bash
python3 job_cost_estimator.py --trade hvac --room-size 50 --materials ducted --labour-hours 8
```

### JSON Output (for scripting)
```bash
python3 job_cost_estimator.py --trade electrical --room-size 20 --materials copper --labour-hours 4 --format json
```

### JSON Output Fields

| Field | Type | Description |
|-------|------|-------------|
| `trade` | string | Trade type, lower-cased |
| `room_size_sqm` | number | Room/job size in square metres |
| `materials` | string | Material type, lower-cased |
| `labour_hours` | number | Estimated labour hours |
| `material_cost_aud` | number | Material rate per unit (AUD) |
| `labour_cost_aud` | number | Labour rate per hour (AUD) |
| `call_out_fee_aud` | number | Call-out fee (AUD) |
| `subtotal_aud` | number | Materials + labour + call-out, before GST (AUD) |
| `gst_aud` | number | GST at 10% of the subtotal (AUD) |
| `total_aud` | number | Subtotal plus GST (AUD) |
| `timestamp` | string | Local time of the estimate, `YYYY-MM-DD HH:MM` |

## Command Line Arguments

| Argument | Short | Required | Description |
|----------|-------|----------|-------------|
| `--trade` | `-t` | Yes | Trade type: `electrical`, `plumbing`, or `hvac` |
| `--room-size` | `-r` | Yes | Room/job size in square metres |
| `--materials` | `-m` | Yes | Material type (varies by trade) |
| `--labour-hours` | `-l` | Yes | Estimated labour hours |
| `--format` | `-f` | No | Output format: `text` (default) or `json` |

## Available Materials by Trade

### Electrical
- `copper` - $85.00/metre
- `aluminium` - $45.00/metre
- `pvc` - $12.00/metre
- `conduit` - $8.00/metre
- `cabling` - $3.50/metre
- `switches` - $25.00/unit
- `sockets` - $20.00/unit
- `lighting` - $45.00/unit

### Plumbing
- `copper` - $75.00/metre
- `pvc` - $15.00/metre
- `pex` - $25.00/metre
- `fittings` - $12.00/unit
- `valves` - $35.00/unit
- `fixtures` - $85.00/unit

### HVAC
- `ducted` - $120.00/metre
- `split` - $850.00/unit
- `ducting` - $35.00/metre
- `insulation` - $18.00/sqm
- `thermostat` - $150.00/unit

## Pricing Notes

- Labour rates (AUD/hour): Electrical $85, Plumbing $80, HVAC $90
- Call-out fee: $75.00 (all trades)
- GST: 10% (included in total)
- All prices are estimates based on typical Australian market rates

**Important:** This tool provides estimates only. Final costs may vary based on site conditions, material availability, and actual labour required. Always verify with current supplier quotes.

## Installation

### Requirements
- Python 3.8 or higher
- No external dependencies (runs with standard library only)

### Setup
1. Download `job_cost_estimator.py` to your computer
2. Make it executable (optional): `chmod +x job_cost_estimator.py`
3. Run it: `python3 job_cost_estimator.py --help`

### Installation Options

**Option 1: Direct download**
```bash
curl -O https://raw.githubusercontent.com/yourusername/job-cost-estimator/main/job_cost_estimator.py
chmod +x job_cost_estimator.py
```

**Option 2: Clone the repository**
```bash
git clone https://github.com/yourusername/job-cost-estimator
cd job-cost-estimator
```

**Option 3: Copy the script**
Simply copy the `job_cost_estimator.py` file to your projects folder.

## Why This Tool?

- **Free forever** - No subscriptions, no hidden fees
- **Privacy first** - Runs locally, no data sent anywhere
- **Fast** - Get estimates in seconds, not hours
- **Professional** - Generate clean output for client quotes
- **No learning curve** - Simple command-line interface

## Contributing

This is a community tool. If you find bugs or have suggestions:
1. Open an issue on GitHub
2. Submit a pull request with your changes

## License

MIT License - Free to use, modify, and distribute.

## Support

Found a bug or have a feature request? Open an issue on GitHub.

---

**Made for Australian tradies, by someone who knows job estimates shouldn't take all day.**
