diff --git a/.moonweb.yml b/.moonweb.yml new file mode 100644 index 0000000..113feda --- /dev/null +++ b/.moonweb.yml @@ -0,0 +1,6 @@ +title: "PeopleCostCounter" +emoji: "๐ฐ" +category: code +subcategory: "Dev Tools" +status: active +stack: [HTML, CSS, JavaScript] diff --git a/README.md b/README.md index 6a0d5f9..3cb2ac3 100644 --- a/README.md +++ b/README.md @@ -1,86 +1,133 @@ -# Meeting Cost Tracker +# ๐ฐ Meeting Cost Tracker -A small single-page tool that shows, in real time, how much a meeting is costing while it runs. +> A small single-page tool that shows, **in real time**, how much a meeting is costing while it runs. ๐ธ -It is intentionally simple: enter how many developers are present, enter the average monthly gross salary, press **Start**, and the page begins counting the cost every second. +It is intentionally simple: enter how many developers are present, enter the average monthly gross salary, press **Start**, and the page begins counting the cost every second. โฑ๏ธ  -## Quick start +--- + +## ๐ Quick start Open the tracker in your browser. The project is published via GitHub Pages โ live demo URLs: -- English UI: https://skoelle.github.io/PeopleCostCounter/meeting-tracker-en.html -- German UI: https://skoelle.github.io/PeopleCostCounter/meeting-tracker-de.html +- ๐ฌ๐ง English UI: https://skoelle.github.io/PeopleCostCounter/meeting-tracker-en.html +- ๐ฉ๐ช German UI: https://skoelle.github.io/PeopleCostCounter/meeting-tracker-de.html You can also open the local HTML files directly in a browser (no build step required). Recommended browsers: Chrome, Edge, Firefox. If you prefer a live-reload development workflow, use an editor extension such as Live Server (VS Code) or any simple static file server. -## Controls +--- -- **Start** begins the live counter at zero. -- **Reset** stops the counter and sets the accumulated cost back to zero. -- The cost per second recalculates when inputs change; the accumulated cost updates once per second while running. +## ๐ฎ Controls -## Files of interest +| Button | Action | +|-----------|--------| +| โถ๏ธ **Start** | Begins the live counter at zero. | +| ๐ **Reset** | Stops the counter and sets the accumulated cost back to zero. | -- `meeting-tracker-de.html` / `meeting-tracker-en.html` โ canonical builds (German / English) - -Experimental variants (moved to `variants/`): - -- `variants/meeting-tracker-variant1.html` -- `variants/meeting-tracker-variant2.html` -- `variants/meeting-tracker-variant3.html` - -## Browser & dependencies - -- No build tool or runtime dependencies. The pages use only vanilla HTML/CSS/JS. -- Google Fonts are used for typography (Inter / JetBrains Mono); pages work fine if fonts are blocked. - -## Example (quick test) - -- Developers: `8` -- Avg. monthly: `5000` -- Expected: annual per-dev = `60.000 โฌ`, incl. employer โ `72.000 โฌ`, total for 8 โ `576.000 โฌ`, cost/sec โ `0.0909 โฌ`, after 60s โ `5,45 โฌ`. +The cost per second recalculates when inputs change; the accumulated cost updates once per second while running. --- -## What it calculates +## ๐ Files of interest -The tracker estimates meeting cost from salary, employer overhead, team size, and elapsed time. The calculation is based on the idea that one developerโs salary can be converted into an annual employer cost, then into a working-hour and working-second cost. Similar meeting-cost tools commonly start from annual salary, convert it to an hourly rate, and multiply by meeting duration and headcount. [meetingtoll](https://www.meetingtoll.com/blog/meeting-cost-formula-per-employee) +| File | Description | +|------|-------------| +| `meeting-tracker-de.html` | ๐ฉ๐ช Canonical build โ German UI | +| `meeting-tracker-en.html` | ๐ฌ๐ง Canonical build โ English UI | -### Formula +### ๐งช Experimental variants (in `variants/`) -The app uses this formula: +- `meeting-tracker-variant1.html` +- `meeting-tracker-variant2.html` +- `meeting-tracker-variant3.html` + +--- + +## ๐ Browser & dependencies + +- โ No build tool or runtime dependencies โ only vanilla HTML/CSS/JS. +- ๐ค Google Fonts are used for typography (Inter / JetBrains Mono); pages work fine if fonts are blocked. + +--- + +## ๐งฎ Example (quick test) + +| Input | Value | +|-------|-------| +| ๐ฅ Developers | `8` | +| ๐ถ Avg. monthly salary | `5000` | + +**Expected output:** + +- ๐ Annual per-dev = `60.000 โฌ` +- ๐ข incl. employer โ `72.000 โฌ` +- ๐งพ Total for 8 โ `576.000 โฌ` +- โฑ๏ธ Cost/sec โ `0.0909 โฌ` +- ๐ฃ After 60s โ `5,45 โฌ` + +--- + +## ๐ What it calculates + +The tracker estimates meeting cost from salary, employer overhead, team size, and elapsed time. The calculation is based on the idea that one developer's salary can be converted into an annual employer cost, then into a working-hour and working-second cost. + +Similar meeting-cost tools commonly start from annual salary, convert it to an hourly rate, and multiply by meeting duration and headcount. ๐ + +> ๐ [meetingtoll.com โ Meeting cost formula per employee](https://www.meetingtoll.com/blog/meeting-cost-formula-per-employee) + +### ๐ Formula ``` -AnnualSalary = AvgMonthlySalary ร 12 -AnnualSalaryWithEmployerContribution = AnnualSalary ร 1.2 -TotalAnnualCost = AnnualSalaryWithEmployerContribution ร DevelopersPresent -CostPerSecond = TotalAnnualCost รท 220 รท 8 รท 60 รท 60 +AnnualSalary = AvgMonthlySalary ร 12 +AnnualSalaryWithEmployer = AnnualSalary ร 1.2 +TotalAnnualCost = AnnualSalaryWithEmployer ร DevelopersPresent +CostPerSecond = TotalAnnualCost รท 220 รท 8 รท 60 รท 60 ``` -The 1.2 multiplier is a simplified overhead factor for employer contributions, which is in the same rough range as public Germany payroll references that place employer burden around 20โ23% above gross salary. [boundlesshq](https://boundlesshq.com/blog/payroll-in-germany/) +The **1.2 multiplier** is a simplified overhead factor for employer contributions (~20% above gross salary). ๐ -### Why 220 days +> ๐ [boundlesshq.com โ Payroll in Germany](https://boundlesshq.com/blog/payroll-in-germany/) -The app divides by 220 working days instead of 365 calendar days. That makes the result closer to actual working time, because meetings happen during paid work, not across the full calendar year. [capme](https://www.capme.app/meeting-cost-calculator) +### ๐๏ธ Why 220 days? -Using 220 days, 8 hours per day, and 60 minutes per hour is a practical simplification that turns annual cost into a live per-second burn rate. It is not a payroll-grade accounting model, but it is a useful way to visualize meeting cost in real time. [meetingking](https://meetingking.com/meeting-cost-calculator/) +The app divides by **220 working days** instead of 365 calendar days โ making the result closer to actual working time, because meetings happen during paid work, not across the full calendar year. ๐๏ธ -## Notes +> ๐ [capme.app โ Meeting Cost Calculator](https://www.capme.app/meeting-cost-calculator) -This tool is designed to make meeting costs visible, not to produce exact payroll accounting. In real companies, the true employer cost can vary by insurance rates, caps, bonuses, and other overhead, so the 1.2 factor should be understood as a simple approximation. [payrollgermany](https://payrollgermany.de/blog/employer-contributions-to-social-security-in-germany-a-comprehensive-guide/) +Using 220 days, 8 hours per day, and 60 minutes per hour is a practical simplification that turns annual cost into a live per-second burn rate. It is not a payroll-grade accounting model, but it is a useful way to visualize meeting cost in real time. -The result is best used as a conversation starter: it helps teams notice how quickly meeting time turns into money. +> ๐ [meetingking.com โ Meeting Cost Calculator](https://meetingking.com/meeting-cost-calculator/) -## Contributing +--- -- Prefer small, focused pull requests. Create a branch named `feature/...` or `fix/...` for changes. -- If you want me to push changes, tell me whether to create a PR or commit directly to `main`. +## ๐ Notes -## License +This tool is designed to make meeting costs **visible**, not to produce exact payroll accounting. In real companies, the true employer cost can vary by insurance rates, caps, bonuses, and other overhead โ so the 1.2 factor should be understood as a simple approximation. ๐ค -Licensed under the [MIT License](LICENSE) - Copyright (c) 2026 Stefan Koelle (https://stefankoelle.de) +> ๐ [payrollgermany.de โ Employer contributions in Germany](https://payrollgermany.de/blog/employer-contributions-to-social-security-in-germany-a-comprehensive-guide/) +The result is best used as a **conversation starter**: it helps teams notice how quickly meeting time turns into money. ๐ก + +--- + +## ๐ค Contributing + +- ๐ฟ Prefer small, focused pull requests. +- ๐ท๏ธ Create a branch named `feature/...` or `fix/...` for changes. +- ๐ฉ If you want me to push changes, tell me whether to create a PR or commit directly to `main`. + +--- + +## ๐ License + +Licensed under the [MIT License](LICENSE) โ Copyright (c) 2026 Stefan Koelle (https://stefankoelle.de) + +--- + +
+ Made with โค๏ธ for better meetings +