{"source":"Tradesppl","description":"Machine-readable access to Tradesppl free tools for the skilled trades: reference datasets (JSON) and calculator endpoints (GET with query params → JSON results with worked steps, warnings and citations).","license":"CC BY 4.0","licenseUrl":"https://creativecommons.org/licenses/by/4.0/","attribution":"Free to use with attribution to Tradesppl (https://tradesppl.com). Calculator results are estimates — the human page for each tool shows the formula, assumptions and cited sources.","usage":{"cors":"Access-Control-Allow-Origin: * on every response","errors":"Calculators return HTTP 400 with { error, issues?, expected } listing every accepted parameter when input is invalid or a required per-mode field is missing; unknown slugs return 404 with the available list.","responseShape":"{ source, tool, url, license, attribution, lastUpdated, inputs, data: { results: [{ key, label, value, unit, display, headline }], steps, warnings, citations } }"},"datasets":[{"id":"code-lookup","description":"Code adoption directory — 6 disciplines × 64 US/Canadian jurisdictions (371 records). Edition in force, effective date, adopting authority, amendments, official access URL.","url":"https://tradesppl.com/tools/data/code-lookup.json","filters":[{"pattern":"https://tradesppl.com/tools/data/code-lookup/{discipline}.json","description":"discipline ∈ electrical | building | plumbing | mechanical | gas | fire"},{"pattern":"https://tradesppl.com/tools/data/code-lookup/{discipline}/{jurisdiction}.json","description":"jurisdiction = slug (texas, british-columbia) or spine key (US-TX, CA-BC)"}],"page":"https://tradesppl.com/tools/code-lookup","lastUpdated":"2026-06-28"},{"id":"certifications","description":"Trade certification & licensing requirements by jurisdiction — Canadian Red Seal apprenticeship hours/levels/exams and US state licensing tiers.","url":"https://tradesppl.com/tools/data/certifications.json","filters":[{"pattern":"https://tradesppl.com/tools/data/certifications/{jurisdiction}.json","description":"jurisdiction = 2-letter sub-national code in lowercase (on, bc, tx). NOTE: \"ca\" is California, not Canada. Spine keys (CA-ON, US-CA) also accepted."},{"pattern":"https://tradesppl.com/tools/data/certifications/{jurisdiction}/{trade}.json","description":"trade = trade key, e.g. construction-electrician, plumber"}],"page":"https://tradesppl.com/tools/certification-tracker","lastUpdated":"2026-06-28"},{"id":"trade-schools","description":"Trade schools, colleges and registered apprenticeship programs in Canada and the US with trades offered, program type, delivery and official site.","url":"https://tradesppl.com/tools/data/trade-schools.json","filters":[{"pattern":"https://tradesppl.com/tools/data/trade-schools/{region}.json","description":"region = country (ca, us), spine key (CA-ON, US-TX) or jurisdiction slug (ontario, texas)"}],"page":"https://tradesppl.com/tools/trade-schools","lastUpdated":"2026-06-28"},{"id":"tax-brackets","description":"Income-tax brackets and payroll contribution constants behind the take-home pay calculator (amounts in cents).","url":"https://tradesppl.com/tools/data/tax-brackets.json","filters":[],"page":"https://tradesppl.com/tools/pay-calculator/take-home-pay","lastUpdated":"2026-07-02"},{"id":"wage-ranges","description":"Published low/median/high hourly wage ranges by trade.","url":"https://tradesppl.com/tools/data/wage-ranges.json","filters":[],"page":"https://tradesppl.com/tools/pay-calculator/wage-benchmark","lastUpdated":"2026-06-28"},{"id":"hiring-index","description":"Tradesppl Hiring Index — monthly first-party labor-market data (postings, advertised pay, top regions, certifications) computed from our own job listings.","url":"https://tradesppl.com/hiring-index/data/editions.json","filters":[{"pattern":"https://tradesppl.com/hiring-index/data/latest.json","description":"Latest edition (also /hiring-index/data/{YYYY-MM}.json)"}],"page":"https://tradesppl.com/hiring-index"}],"calculators":[{"slug":"concrete-calculator","description":"Concrete volume, bag count, weight and cost for slabs, footings, columns, walls, stairs and curbs.","url":"https://tradesppl.com/tools/calc/concrete-calculator","method":"GET","example":"https://tradesppl.com/tools/calc/concrete-calculator?shape=slab&lengthFt=10&widthFt=10&thicknessIn=4","page":"https://tradesppl.com/tools/concrete-calculator","params":[{"name":"shape","type":"enum","required":true,"values":["slab","circular-slab","column","wall","stairs","sloped-slab","hollow-tube","curb"],"description":"Pour shape. Required dimensions per shape — slab: lengthFt,widthFt,thicknessIn; circular-slab: diameterFt,thicknessIn; column: diameterIn,heightFt; wall: lengthFt,heightFt,thicknessIn[,bottomThicknessIn]; stairs: widthFt,riseIn,runIn,numberOfSteps[,platformDepthFt]; sloped-slab: lengthFt,widthFt,minThicknessIn,maxThicknessIn; hollow-tube: outerDiameterIn,innerDiameterIn,heightFt; curb: curbDepthIn,curbHeightIn,flagThicknessIn,gutterWidthIn,lengthFt"},{"name":"lengthFt","type":"number","required":false,"unit":"ft","description":"Length"},{"name":"widthFt","type":"number","required":false,"unit":"ft","description":"Width"},{"name":"heightFt","type":"number","required":false,"unit":"ft","description":"Height"},{"name":"thicknessIn","type":"number","required":false,"unit":"in","description":"Thickness"},{"name":"bottomThicknessIn","type":"number","required":false,"unit":"in","description":"Tapered wall bottom thickness"},{"name":"diameterFt","type":"number","required":false,"unit":"ft","description":"Diameter (circular slab)"},{"name":"diameterIn","type":"number","required":false,"unit":"in","description":"Diameter (column)"},{"name":"outerDiameterIn","type":"number","required":false,"unit":"in","description":"Outer diameter (hollow tube)"},{"name":"innerDiameterIn","type":"number","required":false,"unit":"in","description":"Inner diameter (hollow tube)"},{"name":"riseIn","type":"number","required":false,"unit":"in","description":"Stair rise"},{"name":"runIn","type":"number","required":false,"unit":"in","description":"Stair run"},{"name":"numberOfSteps","type":"integer","required":false,"description":"Stair count"},{"name":"platformDepthFt","type":"number","required":false,"unit":"ft","description":"Top landing depth (stairs)"},{"name":"minThicknessIn","type":"number","required":false,"unit":"in","description":"Sloped slab thin edge"},{"name":"maxThicknessIn","type":"number","required":false,"unit":"in","description":"Sloped slab thick edge"},{"name":"curbDepthIn","type":"number","required":false,"unit":"in","description":"Curb depth"},{"name":"curbHeightIn","type":"number","required":false,"unit":"in","description":"Curb height"},{"name":"flagThicknessIn","type":"number","required":false,"unit":"in","description":"Gutter flag thickness"},{"name":"gutterWidthIn","type":"number","required":false,"unit":"in","description":"Gutter width"},{"name":"quantity","type":"integer","required":false,"default":1,"description":"How many identical pieces/pours"},{"name":"wastePercent","type":"number","required":false,"unit":"%","default":10,"description":"Whole-percent waste allowance, 0–20"},{"name":"bagKey","type":"enum","required":false,"default":"80lb","values":["40lb","50lb","60lb","80lb","25kg","30kg"],"description":"Pre-mix bag size to count"},{"name":"pricePerBag","type":"number","required":false,"description":"Optional price per bag"},{"name":"pricePerYd3","type":"number","required":false,"description":"Optional ready-mix price per cubic yard"},{"name":"currency","type":"string","required":false,"default":"CAD","description":"ISO currency code for cost formatting"},{"name":"system","type":"enum","required":false,"default":"imperial","values":["imperial","metric"],"description":"Display system for secondary outputs"}]},{"slug":"drywall-calculator","description":"Drywall sheets, joint compound, tape, screws and corner bead for a room, walls or ceiling.","url":"https://tradesppl.com/tools/calc/drywall-calculator","method":"GET","example":"https://tradesppl.com/tools/calc/drywall-calculator?surface=room&lengthFt=12&widthFt=10&ceilingHeightFt=8&openings=3x6.67x1,3x4x2","page":"https://tradesppl.com/tools/drywall-calculator","params":[{"name":"surface","type":"enum","required":true,"values":["room","walls","ceiling"],"description":"room: lengthFt,widthFt,ceilingHeightFt (walls + ceiling); walls: perimeterFt,ceilingHeightFt; ceiling: lengthFt,widthFt"},{"name":"lengthFt","type":"number","required":false,"unit":"ft","description":"Room/ceiling length"},{"name":"widthFt","type":"number","required":false,"unit":"ft","description":"Room/ceiling width"},{"name":"ceilingHeightFt","type":"number","required":false,"unit":"ft","description":"Finished ceiling height"},{"name":"perimeterFt","type":"number","required":false,"unit":"ft","description":"Total wall perimeter (walls mode)"},{"name":"openings","type":"string","required":false,"description":"Doors/windows to subtract as \"WIDTHxHEIGHT[xCOUNT]\" in feet, comma-separated, e.g. 3x6.67x2,3x4x3"},{"name":"sheetKey","type":"enum","required":false,"default":"4x8","values":["4x8","4x9","4x10","4x12"],"description":"Sheet size"},{"name":"mudKey","type":"enum","required":false,"default":"all-purpose","values":["all-purpose","lightweight"],"description":"Joint compound product"},{"name":"wastePercent","type":"number","required":false,"unit":"%","default":10,"description":"Whole-percent waste allowance, 0–20"},{"name":"subtractSmallOpenings","type":"boolean","required":false,"default":false,"description":"Subtract every opening (default only subtracts openings larger than ~1/3 sheet)"},{"name":"outsideCornerFt","type":"number","required":false,"unit":"ft","default":0,"description":"Outside corner length needing bead"},{"name":"pricePerSheet","type":"number","required":false,"description":"Optional price per sheet"},{"name":"pricePerMudBox","type":"number","required":false,"description":"Optional price per compound box"},{"name":"currency","type":"string","required":false,"default":"CAD","description":"ISO currency code for cost formatting"},{"name":"system","type":"enum","required":false,"default":"imperial","values":["imperial","metric"],"description":"Display system for secondary outputs"}]},{"slug":"paint-calculator","description":"Paint and primer gallons/cans for walls and ceilings from room dimensions or known areas.","url":"https://tradesppl.com/tools/calc/paint-calculator","method":"GET","example":"https://tradesppl.com/tools/calc/paint-calculator?mode=room&lengthFt=12&widthFt=10&heightFt=8&coats=2","page":"https://tradesppl.com/tools/paint-calculator","params":[{"name":"mode","type":"enum","required":true,"values":["room","area"],"description":"room: lengthFt,widthFt,heightFt; area: wallAreaFt2[,ceilingAreaFt2]"},{"name":"lengthFt","type":"number","required":false,"unit":"ft","description":"Room length"},{"name":"widthFt","type":"number","required":false,"unit":"ft","description":"Room width"},{"name":"heightFt","type":"number","required":false,"unit":"ft","description":"Ceiling height"},{"name":"wallAreaFt2","type":"number","required":false,"unit":"ft²","description":"Total wall area (area mode)"},{"name":"ceilingAreaFt2","type":"number","required":false,"unit":"ft²","description":"Ceiling area (area mode)"},{"name":"paintWalls","type":"boolean","required":false,"default":true,"description":"Include walls"},{"name":"paintCeiling","type":"boolean","required":false,"default":false,"description":"Include ceiling"},{"name":"openings","type":"string","required":false,"description":"Openings to subtract as \"AREA_FT2[xCOUNT]\", comma-separated, e.g. 21x2,15x3"},{"name":"coats","type":"integer","required":false,"default":2,"description":"Finish coats, 1–10"},{"name":"coverageRate","type":"number","required":false,"unit":"ft²/gal","default":350,"description":"Paint coverage"},{"name":"includePrimer","type":"boolean","required":false,"default":false,"description":"Add a primer pass"},{"name":"primerCoverage","type":"number","required":false,"unit":"ft²/gal","default":250,"description":"Primer coverage"},{"name":"newDrywall","type":"boolean","required":false,"default":false,"description":"Unprimed new drywall (raises coat-one consumption)"},{"name":"pricePerGallon","type":"number","required":false,"description":"Optional paint price per gallon"},{"name":"pricePerPrimerGallon","type":"number","required":false,"description":"Optional primer price per gallon"},{"name":"currency","type":"string","required":false,"default":"CAD","description":"ISO currency code for cost formatting"},{"name":"system","type":"enum","required":false,"default":"imperial","values":["imperial","metric"],"description":"Display system for secondary outputs"}]},{"slug":"lumber-calculator","description":"Board feet, stud walls, joists, deck boards and fence materials.","url":"https://tradesppl.com/tools/calc/lumber-calculator","method":"GET","example":"https://tradesppl.com/tools/calc/lumber-calculator?mode=stud&wallLengthFt=20&spacingIn=16&corners=2","page":"https://tradesppl.com/tools/lumber-calculator","params":[{"name":"mode","type":"enum","required":true,"values":["board-feet","stud","joist","deck","fence"],"description":"board-feet: thicknessIn,widthIn,lengthFt[,quantity]; stud: wallLengthFt,spacingIn[,corners,tIntersections,plates]; joist: spanLengthFt,spacingIn; deck: deckWidthFt,deckLengthFt,boardWidthIn,boardLengthFt[,gapIn]; fence: fenceLengthFt,picketWidthIn[,postSpacingFt,railsPerSection,gapIn]"},{"name":"thicknessIn","type":"number","required":false,"unit":"in","description":"Nominal thickness"},{"name":"widthIn","type":"number","required":false,"unit":"in","description":"Nominal width"},{"name":"lengthFt","type":"number","required":false,"unit":"ft","description":"Piece length"},{"name":"quantity","type":"integer","required":false,"default":1,"description":"How many identical pieces/pours"},{"name":"wallLengthFt","type":"number","required":false,"unit":"ft","description":"Wall length (stud)"},{"name":"spacingIn","type":"number","required":false,"unit":"in","description":"On-center spacing (12/16/19.2/24)"},{"name":"corners","type":"integer","required":false,"description":"Wall corners (extra studs)"},{"name":"tIntersections","type":"integer","required":false,"description":"T-intersections (extra studs)"},{"name":"plates","type":"integer","required":false,"description":"Plate count (1 bottom + 2 top is typical)"},{"name":"spanLengthFt","type":"number","required":false,"unit":"ft","description":"Joist run length"},{"name":"deckWidthFt","type":"number","required":false,"unit":"ft","description":"Deck width (across boards)"},{"name":"deckLengthFt","type":"number","required":false,"unit":"ft","description":"Deck length (along boards)"},{"name":"boardWidthIn","type":"number","required":false,"unit":"in","description":"Deck board actual width"},{"name":"boardLengthFt","type":"number","required":false,"unit":"ft","description":"Deck board length"},{"name":"gapIn","type":"number","required":false,"unit":"in","description":"Gap between boards/pickets"},{"name":"fenceLengthFt","type":"number","required":false,"unit":"ft","description":"Fence run"},{"name":"postSpacingFt","type":"number","required":false,"unit":"ft","description":"Post spacing"},{"name":"railsPerSection","type":"integer","required":false,"description":"Rails per section"},{"name":"picketWidthIn","type":"number","required":false,"unit":"in","description":"Picket width"},{"name":"wastePercent","type":"number","required":false,"unit":"%","default":10,"description":"Whole-percent waste allowance, 0–30"},{"name":"useActualDimensions","type":"boolean","required":false,"default":false,"description":"Board feet on dressed (actual) sizes"},{"name":"pricePerBoardFoot","type":"number","required":false,"description":"Optional price per board foot"},{"name":"pricePerPiece","type":"number","required":false,"description":"Optional price per piece"},{"name":"pricePerLinearFt","type":"number","required":false,"description":"Optional price per linear foot"},{"name":"currency","type":"string","required":false,"default":"CAD","description":"ISO currency code for cost formatting"}]},{"slug":"flooring-calculator","description":"Boxes or tiles needed (with pattern waste), plus grout, thin-set and underlayment for one floor region.","url":"https://tradesppl.com/tools/calc/flooring-calculator","method":"GET","example":"https://tradesppl.com/tools/calc/flooring-calculator?region=rectangle&lengthFt=12&widthFt=10&tileLengthIn=12&tileWidthIn=24&pattern=straight","page":"https://tradesppl.com/tools/flooring-calculator","params":[{"name":"region","type":"enum","required":false,"default":"rectangle","values":["rectangle","l-shape","area"],"description":"rectangle: lengthFt,widthFt; l-shape: aLengthFt,aWidthFt,bLengthFt,bWidthFt; area: areaFt2"},{"name":"lengthFt","type":"number","required":false,"unit":"ft","description":"Length"},{"name":"widthFt","type":"number","required":false,"unit":"ft","description":"Width"},{"name":"aLengthFt","type":"number","required":false,"unit":"ft","description":"L-shape leg A length"},{"name":"aWidthFt","type":"number","required":false,"unit":"ft","description":"L-shape leg A width"},{"name":"bLengthFt","type":"number","required":false,"unit":"ft","description":"L-shape leg B length"},{"name":"bWidthFt","type":"number","required":false,"unit":"ft","description":"L-shape leg B width"},{"name":"areaFt2","type":"number","required":false,"unit":"ft²","description":"Known floor area"},{"name":"coveragePerBoxFt2","type":"number","required":false,"unit":"ft²","description":"Coverage per box (box-based materials). Provide this OR tileLengthIn+tileWidthIn"},{"name":"tileLengthIn","type":"number","required":false,"unit":"in","description":"Tile length (per-tile counting)"},{"name":"tileWidthIn","type":"number","required":false,"unit":"in","description":"Tile width (per-tile counting)"},{"name":"material","type":"enum","required":false,"values":["tile","hardwood","laminate","vinyl-plank","carpet"],"description":"Flooring material"},{"name":"pattern","type":"enum","required":false,"default":"straight","values":["straight","diagonal","herringbone","brick"],"description":"Layout pattern (drives default waste)"},{"name":"wastePercent","type":"number","required":false,"unit":"%","default":10,"description":"Whole-percent waste allowance, 0–30"},{"name":"groutLineIn","type":"number","required":false,"unit":"in","description":"Grout joint width (tile) — enables the grout estimate"},{"name":"tileDepthIn","type":"number","required":false,"unit":"in","description":"Tile thickness (tile) — enables the grout estimate"},{"name":"groutKey","type":"enum","required":false,"default":"sanded","values":["sanded","unsanded"],"description":"Grout product"},{"name":"includeUnderlayment","type":"boolean","required":false,"default":false,"description":"Estimate underlayment rolls"},{"name":"underlaymentKey","type":"enum","required":false,"default":"foam","values":["foam","cork","felt"],"description":"Underlayment product"},{"name":"includeThinset","type":"boolean","required":false,"default":false,"description":"Estimate thin-set mortar (tile)"},{"name":"trowelKey","type":"enum","required":false,"default":"quarter-by-three-eighths","values":["quarter-square","quarter-by-three-eighths","half-square"],"description":"Trowel notch"},{"name":"pricePerBox","type":"number","required":false,"description":"Optional price per box"},{"name":"pricePerFt2","type":"number","required":false,"description":"Optional price per ft²"},{"name":"currency","type":"string","required":false,"default":"CAD","description":"ISO currency code for cost formatting"},{"name":"system","type":"enum","required":false,"default":"imperial","values":["imperial","metric"],"description":"Display system for secondary outputs"}]},{"slug":"square-footage-calculator","description":"Area of a rectangle, square, circle, triangle or trapezoid in ft², m², yd² and acres, with optional cost.","url":"https://tradesppl.com/tools/calc/square-footage-calculator","method":"GET","example":"https://tradesppl.com/tools/calc/square-footage-calculator?shape=rectangle&lengthFt=20&widthFt=15","page":"https://tradesppl.com/tools/square-footage-calculator","params":[{"name":"shape","type":"enum","required":true,"values":["rectangle","square","circle","triangle","trapezoid"],"description":"rectangle: lengthFt,widthFt; square: sideFt; circle: diameterFt; triangle: baseFt,heightFt; trapezoid: aFt,bFt,heightFt"},{"name":"lengthFt","type":"number","required":false,"unit":"ft","description":"Length"},{"name":"widthFt","type":"number","required":false,"unit":"ft","description":"Width"},{"name":"sideFt","type":"number","required":false,"unit":"ft","description":"Square side"},{"name":"diameterFt","type":"number","required":false,"unit":"ft","description":"Circle diameter"},{"name":"baseFt","type":"number","required":false,"unit":"ft","description":"Triangle base"},{"name":"heightFt","type":"number","required":false,"unit":"ft","description":"Triangle/trapezoid height"},{"name":"aFt","type":"number","required":false,"unit":"ft","description":"Trapezoid parallel side A"},{"name":"bFt","type":"number","required":false,"unit":"ft","description":"Trapezoid parallel side B"},{"name":"quantity","type":"integer","required":false,"default":1,"description":"How many identical pieces/pours"},{"name":"pricePerFt2","type":"number","required":false,"description":"Optional price per ft²"},{"name":"currency","type":"string","required":false,"default":"CAD","description":"ISO currency code for cost formatting"},{"name":"system","type":"enum","required":false,"default":"imperial","values":["imperial","metric"],"description":"Display system for secondary outputs"}]},{"slug":"unit-converter","description":"Convert length, area, volume, weight, temperature and pressure between imperial and metric units.","url":"https://tradesppl.com/tools/calc/unit-converter","method":"GET","example":"https://tradesppl.com/tools/calc/unit-converter?category=length&value=10&from=ft&to=m","page":"https://tradesppl.com/tools/unit-converter","params":[{"name":"category","type":"enum","required":true,"values":["length","area","volume","weight","temperature","pressure"],"description":"Unit category"},{"name":"value","type":"number","required":true,"description":"Value to convert"},{"name":"from","type":"string","required":true,"description":"Source unit key. Allowed per category: length=mm|cm|m|km|in|ft|yd|mi; area=mm2|cm2|m2|ha|in2|ft2|yd2|acre; volume=ml|l|m3|in3|ft3|yd3|gal_us|gal_uk|qt_us; weight=g|kg|tonne|oz|lb|ton_us|ton_uk; temperature=C|F|K; pressure=pa|kpa|bar|psi|atm"},{"name":"to","type":"string","required":true,"description":"Target unit key (same category as from)"}]},{"slug":"pipe-volume-calculator","description":"Water volume in a pipe run by inner diameter or nominal pipe size and schedule.","url":"https://tradesppl.com/tools/calc/pipe-volume-calculator","method":"GET","example":"https://tradesppl.com/tools/calc/pipe-volume-calculator?mode=nps&npsKey=1&schedule=sch40&lengthFt=100","page":"https://tradesppl.com/tools/pipe-volume-calculator","params":[{"name":"mode","type":"enum","required":false,"default":"manual","values":["manual","nps"],"description":"manual: innerDiameterIn; nps: npsKey + schedule"},{"name":"lengthFt","type":"number","required":true,"unit":"ft","description":"Pipe run length"},{"name":"innerDiameterIn","type":"number","required":false,"unit":"in","description":"Inner diameter (manual mode)"},{"name":"npsKey","type":"enum","required":false,"values":["0.5","0.75","1","1.25","1.5","2","2.5","3","4","6","8","10","12"],"description":"Nominal pipe size in inches (nps mode)"},{"name":"schedule","type":"enum","required":false,"default":"sch40","values":["sch40","sch80"],"description":"Pipe schedule (nps mode)"},{"name":"fillPercent","type":"number","required":false,"unit":"%","default":100,"description":"Partial fill"},{"name":"system","type":"enum","required":false,"default":"imperial","values":["imperial","metric"],"description":"Display system for secondary outputs"}]},{"slug":"slope-calculator","description":"Slope percent, angle and ratio from rise/run, or total fall for a drainage run.","url":"https://tradesppl.com/tools/calc/slope-calculator","method":"GET","example":"https://tradesppl.com/tools/calc/slope-calculator?mode=drainage&pipeLengthFt=40&fallPerFtIn=0.25","page":"https://tradesppl.com/tools/slope-calculator","params":[{"name":"mode","type":"enum","required":false,"default":"rise-run","values":["rise-run","drainage"],"description":"rise-run: riseFt,runFt; drainage: pipeLengthFt,fallPerFtIn"},{"name":"riseFt","type":"number","required":false,"unit":"ft","description":"Rise"},{"name":"runFt","type":"number","required":false,"unit":"ft","description":"Run"},{"name":"pipeLengthFt","type":"number","required":false,"unit":"ft","description":"Drain run length"},{"name":"fallPerFtIn","type":"number","required":false,"unit":"in/ft","description":"Fall per foot (e.g. 0.25 = 1/4\" per ft)"},{"name":"system","type":"enum","required":false,"default":"imperial","values":["imperial","metric"],"description":"Display system for secondary outputs"}]},{"slug":"pay-calculator","description":"Convert a wage between hourly, daily, weekly, biweekly, semimonthly, monthly and annual, with overtime.","url":"https://tradesppl.com/tools/calc/pay-calculator","method":"GET","example":"https://tradesppl.com/tools/calc/pay-calculator?mode=hourly&amount=42&hoursPerWeek=40","page":"https://tradesppl.com/tools/pay-calculator","params":[{"name":"mode","type":"enum","required":true,"values":["hourly","daily","weekly","biweekly","semimonthly","monthly","annual"],"description":"Which figure `amount` is"},{"name":"amount","type":"number","required":true,"description":"The pay amount in major units (dollars)"},{"name":"hoursPerWeek","type":"number","required":false,"unit":"h","default":40,"description":"Standard paid hours per week"},{"name":"weeksPerYear","type":"number","required":false,"default":52,"description":"Paid weeks per year"},{"name":"daysPerWeek","type":"number","required":false,"default":5,"description":"Working days per week"},{"name":"overtimeHoursPerWeek","type":"number","required":false,"unit":"h","default":0,"description":"Overtime hours per week"},{"name":"overtimeMultiplier","type":"number","required":false,"default":1.5,"description":"Overtime multiplier (1.5 = time-and-a-half)"},{"name":"currency","type":"string","required":false,"default":"CAD","description":"ISO currency code for cost formatting"}]},{"slug":"take-home-pay","description":"Estimated net (take-home) pay after income tax and payroll contributions for supported Canadian provinces and US states.","url":"https://tradesppl.com/tools/calc/take-home-pay","method":"GET","example":"https://tradesppl.com/tools/calc/take-home-pay?region=ca-on&grossAnnual=85000","page":"https://tradesppl.com/tools/pay-calculator/take-home-pay","params":[{"name":"region","type":"enum","required":true,"values":["ca-on","ca-bc","ca-qc","us-tx","us-ca"],"description":"Tax region: ca-on=Ontario, ca-bc=British Columbia, ca-qc=Quebec, us-tx=Texas, us-ca=California"},{"name":"grossAnnual","type":"number","required":true,"description":"Gross annual income in major units (dollars)"},{"name":"additionalDeductions","type":"number","required":false,"default":0,"description":"Other after-tax deductions per year"}]},{"slug":"wage-benchmark","description":"Published low/median/high hourly and annual wage range for a trade, optionally positioning your own hourly rate within it.","url":"https://tradesppl.com/tools/calc/wage-benchmark","method":"GET","example":"https://tradesppl.com/tools/calc/wage-benchmark?trade=electrician&yourHourly=38","page":"https://tradesppl.com/tools/pay-calculator/wage-benchmark","params":[{"name":"trade","type":"enum","required":true,"values":["electrician","plumber","carpenter","welder","heavy-equipment-mechanic","hvac-mechanic","labourer","ironworker"],"description":"Trade key"},{"name":"yourHourly","type":"number","required":false,"description":"Your hourly wage, to position within the range"},{"name":"currency","type":"string","required":false,"default":"CAD","description":"ISO currency code for cost formatting"}]},{"slug":"electrical-load-nec","description":"NEC 220.82 optional-method dwelling service load: calculated VA, amps and minimum service size.","url":"https://tradesppl.com/tools/calc/electrical-load-nec","method":"GET","example":"https://tradesppl.com/tools/calc/electrical-load-nec?floorAreaFt2=2400&fixedAppliancesVA=12000,5000,4500&airConditioningVA=5000","page":"https://tradesppl.com/tools/electrical-load-calculator/nec","params":[{"name":"floorAreaFt2","type":"number","required":true,"unit":"ft²","description":"Conditioned floor area"},{"name":"smallApplianceCircuits","type":"integer","required":false,"default":2,"description":"Small-appliance branch circuits (min 2)"},{"name":"laundryCircuits","type":"integer","required":false,"default":1,"description":"Laundry branch circuits"},{"name":"fixedAppliancesVA","type":"number[]","required":false,"unit":"VA","description":"Nameplate VA of appliances fastened in place, comma-separated"},{"name":"airConditioningVA","type":"number","required":false,"unit":"VA","description":"Cooling nameplate"},{"name":"spaceHeatingVA","type":"number","required":false,"unit":"VA","description":"Electric space-heating nameplate"},{"name":"heatingUnits","type":"integer","required":false,"description":"Separately controlled heating units"},{"name":"heatPump","type":"boolean","required":false,"default":false,"description":"Heating is a heat pump"},{"name":"heatPumpSupplementalVA","type":"number","required":false,"unit":"VA","description":"Supplemental heat installed with the heat pump"},{"name":"jurisdiction","type":"enum","required":false,"default":"NEC","values":["NEC"],"description":"Constants set"}]},{"slug":"electrical-load-cec","description":"CEC Rule 8-200 single-dwelling service load: calculated watts, amps and minimum service size.","url":"https://tradesppl.com/tools/calc/electrical-load-cec","method":"GET","example":"https://tradesppl.com/tools/calc/electrical-load-cec?livingAreaM2=180&rangeKW=12&waterHeaterW=4500&evseW=7200","page":"https://tradesppl.com/tools/electrical-load-calculator","params":[{"name":"livingAreaM2","type":"number","required":true,"unit":"m²","description":"Living area"},{"name":"rangeKW","type":"number","required":false,"unit":"kW","description":"Electric range nameplate (omit if none)"},{"name":"spaceHeatingW","type":"number","required":false,"unit":"W","description":"Electric space-heating connected load"},{"name":"airConditioningW","type":"number","required":false,"unit":"W","description":"Air-conditioning / heat-pump load"},{"name":"heatAcInterlocked","type":"boolean","required":false,"default":false,"description":"Heat and A/C interlocked"},{"name":"waterHeaterW","type":"number","required":false,"unit":"W","description":"Electric water-heater load"},{"name":"waterHeaterTankless","type":"boolean","required":false,"default":false,"description":"Tankless / pool / spa heater (counted at 100%)"},{"name":"evseW","type":"number","required":false,"unit":"W","description":"EV charger nameplate (omit if none)"},{"name":"evemsControlled","type":"boolean","required":false,"default":false,"description":"EVSE demand limited by an EVEMS"},{"name":"evemsLimitedW","type":"number","required":false,"unit":"W","description":"EVEMS-limited maximum demand"},{"name":"otherLoadsW","type":"number[]","required":false,"unit":"W","description":"Other loads of 1500 W or more, comma-separated"},{"name":"province","type":"enum","required":false,"default":"CEC","values":["CEC","BC","ON","AB"],"description":"Province/edition constants"}]}],"contact":"https://tradesppl.com/contact"}