Joshua Gunawan DWG JG-2026workhustlenumbers
JG-2026 · SHEET 05 OF 12 · SCALE 1:1 DWG JG-2026workhustlenumbers
← all sheets
SHEET 05 OF 12 · JG-2026 Live · tax tools held back

HustleNumbers

Thirty-eight calculators for people whose income is not a salary.

Problem

Freelancers price their work with an employee's mental model: take a number, divide by 2,080 hours, call it a rate. That silently ignores self-employment tax, unpaid admin, marketplace fees and the months with no work at all. The calculators that exist tend to return one confident figure with no visible assumptions, which is the wrong shape of answer for a decision someone has to live on.

Constraints

  • Ad-funded, so every page has to stay cheap enough to serve in volume.
  • Every result has to survive being wrong. A fee table copied from a competitor is worse than no tool, because people set real prices with it.
  • Some tools touch tax and legal ground, where a confident wrong answer is a real liability for the person reading it.
  • No framework, because a calculator does not need one.

Decisions

  1. Write it in plain ES modules and hand-written CSS with a design-token file. No framework, no bundler, no build step.

    rejected React with a bundler, to share component structure across 38 similar tools.

    Thirty-eight calculator pages are mostly forms and arithmetic. A framework would have added a build pipeline, a hydration step and per-page bundles for behaviour the platform already provides; the whole site loads in 14 requests with a 164ms time to first byte. I paid for that decision in duplicated markup, and at this size it was still the right trade — a calculator that needs a build step to render a number has been over-engineered.

  2. Put every calculator's inputs, formula, exclusions and assumptions on the page next to the number.

    rejected Show the result and keep the caveats in an FAQ or a footer disclaimer.

    The exclusions are what make a figure usable: Amazon FBA and selling-plan fees, eBay's high-value tiers, non-US Etsy VAT, the GSA per-diem year. Moving them next to the result is the difference between a planning tool and a number that quietly misleads someone into underpricing a year of work.

  3. Keep the tax calculators reachable but out of the directory, out of the sitemap and unindexed until a qualified person has checked the maths.

    rejected Publish everything that works and attach a disclaimer.

    A disclaimer does not make an unreviewed tax calculation safe to rank for, and ranking is exactly what would put it in front of people who act on it. Holding those pages back costs traffic I would otherwise get and is the only defensible position until a professional has reviewed them.

  4. Encode saved scenarios into the URL and localStorage, with no accounts anywhere.

    rejected User accounts, so scenarios could be stored server-side and synced.

    For a one-off calculation a shareable link is more useful than a login, and it keeps the site genuinely static: nothing stored, nothing to secure, nothing to delete when someone asks. It also means inputs never leave the device — the same principle as the file suite, reached from a completely different direction.

The hard part

Keeping the fee data true. Marketplace and payment rates move, and a confidently out-of-date calculator is worse than a visibly broken one, because the wrong number arrives looking authoritative. Worse, the fees interact rather than stacking cleanly: Etsy's offsite ads and share-and-save, buyer-paid tax, shipping charged versus shipping actually paid. Writing the editorial policy around primary-source checks and golden-test scenarios against known cases was more work than the arithmetic, and it is the part of this project I would most want an outside reviewer to attack.

Outcome

  • 38

    public tool pages

  • 3

    document generators

  • 14

    requests to load a tool

  • 164ms

    time to first byte

The request count and time to first byte are my measurements from the live site. I also found a genuine bug in my own work while writing this up: on the hourly-rate calculator the field labelled profit margin buffer is applied as a markup on the cost subtotal, so the stated 20% produces roughly a 16.7% margin on revenue. The arithmetic is defensible as a buffer; the label is wrong, and the label matters more than the four points, because it is the word a user carries into their own pricing. It is queued for the next pass.

Figures and revisions

FIG. 1 The HustleNumbers home page with a calculator directory grouped by category and a search field.
The directory: thirty-eight public pages, each indexable on its own, with the tax calculators deliberately held out until they are reviewed.

source: hustlenumbers.com, livechecked: 11 Oct 2026

FIG. 2 The hourly rate calculator showing inputs, an annual revenue target and a revenue breakdown.
The hourly-rate calculator. The breakdown under the result is the point: it shows where the revenue goes instead of asserting a rate.

source: hustlenumbers.com/tools/hourly-rate, livechecked: 11 Oct 2026

Every plate carries its provenance. Marking a row marks the plate it names, and the plate's number links back to its row.
platesourcechecked
FIG. 1 hustlenumbers.com, live 11 Oct 2026
FIG. 2 hustlenumbers.com/tools/hourly-rate, live 11 Oct 2026