MORE LEADS.

LESS HASSLE.

MORE LEADS.

LESS HASSLE.

MORE LEADS.

LESS HASSLE.

More Visibility
More Booked Jobs
MORE Revenue

More Leads. Less Hassle. In Just 21 Days

Meta Title H2 Failed

First Paragraph Failed

Meta Title H2 Failed

First Paragraph Failed
We believe in helping business owners to thrive
Whatever your Trade, Tradie Up has your Back!
0 's +
0 's +
0 's +
0 's +
0 's +
0 's +
Lance Tanuvasa and Tim Button - Co-Founders at Tradie up - Lead Generation for Tradies

Supercharge Your Tradie Business!

APPLY TO SEE IF WE'RE A GOOD FIT FOR YOU...

No Lock-In Contracts

Fixed Pricing

Australian Owned

Proven Results

One Tradie Per Location

ROI Commitment

More Leads. Less Hassle. In Just 21 Days

The No BS Tradie Marketing Guide

Here's What You'll Learn:

FAQ's

Got questions? Reach out to us on 0415 319 775 and Tradie Up will be happy to help you.
Ready To Get Started?

Reach out for a non-obligation strategy to grow your business

You’ll find out exactly where your marketing stands and where you stack up on Google, AI Search and Social Media

In depth data analysis of your industry in your location and competitor and consumer analysis and insights

A FREE step by step strategy and implementation plan to meet your business goal and a fixed price to make it fast and simple

MORE LEADS.

LESS HASSLE.

let calcData = {}; function prepareCalculation() { let jobPrice = parseFloat(document.getElementById('jobPrice').value) || 0; let labourHours = parseFloat(document.getElementById('labourHours').value) || 0; let hourRate = parseFloat(document.getElementById('hourRate').value) || 0; let materials = parseFloat(document.getElementById('materials').value) || 0; let travelTime = parseFloat(document.getElementById('travelTime').value) || 0; let fuel = parseFloat(document.getElementById('fuel').value) || 0; let labourCost = labourHours * hourRate; let travelCost = travelTime * hourRate; let totalCost = labourCost + travelCost + materials + fuel; let netProfit = jobPrice - totalCost; let margin = jobPrice > 0 ? (netProfit / jobPrice) * 100 : 0; let verdict = ""; if (margin >= 40) verdict = "High Profit Job"; else if (margin >= 20) verdict = "Average Profit"; else if (margin > 0) verdict = "Low Profit"; else verdict = "Loss Making Job"; calcData = { jobPrice, labourHours, hourRate, materials, travelTime, fuel, totalCost, netProfit, margin, verdict }; document.getElementById('emailGate').style.display = 'block'; } function submitAndShow() { let email = document.getElementById('email').value; if (!email) { alert("Please enter your email"); return; } calcData.email = email; calcData.timestamp = new Date().toISOString(); const webhookURL = "https://script.google.com/macros/s/AKfycbxiQHAqlInujNxttTLbQE6cZ-udSupNzQbtXFiPQ9jCoxQo1YeFRlFieec_EFThS8Oa/exec"; fetch(webhookURL, { method: "POST", body: JSON.stringify(calcData), headers: { "Content-Type": "application/json" } }) .then(res => res.text()) .then(data => { console.log("SUCCESS:", data); }) .catch(err => { console.error("ERROR:", err); }); document.getElementById('emailGate').style.display = 'none'; document.getElementById('results').style.display = 'block'; document.getElementById('totalCost').innerText = "$" + calcData.totalCost.toFixed(2); document.getElementById('netProfit').innerText = "$" + calcData.netProfit.toFixed(2); document.getElementById('margin').innerText = calcData.margin.toFixed(1) + "%"; document.getElementById('verdict').innerText = calcData.verdict; } document.addEventListener("DOMContentLoaded", function() { const calcBtn = document.getElementById("calcBtn"); if (calcBtn) calcBtn.addEventListener("click", prepareCalculation); const submitBtn = document.querySelector(".tu-gate button"); if (submitBtn) submitBtn.addEventListener("click", submitAndShow); });