20′ Standard (20′ x 8′ x 8.5′)
40′ Standard (40′ x 8′ x 8.5′)
40′ High Cube (40′ x 8′ x 9.5′)
45′ High Cube (45′ x 8′ x 9.5′)
Select the type of shipping container.
The empty weight of the container (kg).
The weight of the goods to be loaded (kg).
Calculation Results
N/A
Max Gross Weight: N/A kg
Total Loaded Weight: N/A kg
Remaining Capacity: N/A kg
Total Loaded Weight = Container Tare Weight + Payload Weight
Remaining Capacity = Max Gross Weight – Total Loaded Weight
Max Gross Weight is pre-defined by container type.
Weight Distribution Breakdown
What is a Conex Weight Calculator?
A conex weight calculator, also known as a shipping container weight calculator, is a specialized online tool designed to help logistics professionals, freight forwarders, exporters, and anyone involved in the shipping industry accurately determine the weight of a loaded shipping container. It helps in managing payload capacities, ensuring compliance with transport regulations, and optimizing cargo operations. By inputting the container's tare weight (its empty weight) and the weight of the goods being loaded (payload), the calculator provides critical weight-related information. Understanding these weights is paramount for safe and efficient transportation, preventing overloading, and avoiding potential fines or delays. A robust conex weight calculator takes into account the specific type of container, as different sizes and types have different inherent weight limits and capacities.
Who Should Use a Conex Weight Calculator?
The primary users of a conex weight calculator include:
Freight Forwarders: To plan shipments and ensure compliance with carrier requirements.
Shipping Companies: To manage fleet weight distribution and safety.
Exporters & Importers: To accurately declare cargo weight for customs and transportation.
Warehouse & Port Operators: To manage loading and unloading processes efficiently and safely.
Logistics Managers: To optimize container utilization and operational costs.
Customs Brokers: To verify declared weights against actual calculated weights.
Common Misconceptions about Conex Weight
Several misconceptions can arise regarding conex weight:
"All containers of the same length weigh the same": This is false. While standard ISO specifications exist, variations in construction materials, age, and specific features can lead to differing tare weights for containers of the same nominal size (e.g., a 20′ Standard).
"Max Gross Weight is flexible": The Maximum Gross Weight (MGW) is a regulatory and structural limit set by container manufacturers and transport authorities. Exceeding it is illegal and dangerous.
"Payload weight is simply the sum of all items": Accurate payload calculation requires accounting for dunnage, bracing, and any internal securing materials, which also contribute to the total weight.
"Weight limits only apply at ports": Weight restrictions apply throughout the entire transportation chain, including road and rail transport, and different jurisdictions have varying regulations.
Conex Weight Calculator Formula and Mathematical Explanation
The core functionality of a conex weight calculator relies on straightforward principles of addition and subtraction, using key weight metrics for shipping containers. The primary goal is to determine the total weight of a loaded container and its remaining capacity.
Step-by-Step Derivation:
Calculate Total Loaded Weight: This is the sum of the container's own weight (tare weight) and the weight of the cargo it carries (payload weight).
Determine Remaining Capacity: This is the difference between the container's maximum permissible gross weight (Max Gross Weight or MGW) and the Total Loaded Weight.
Variable Explanations:
Container Tare Weight: The weight of the empty shipping container itself, including any standard fittings like locking mechanisms.
Payload Weight: The weight of the goods, cargo, or freight being transported *inside* the container. This does not include the container's own weight.
Total Loaded Weight: The sum of the Tare Weight and the Payload Weight. This is the actual weight of the container and its contents as it sits on the scale or is lifted.
Max Gross Weight (MGW): The maximum combined weight of the container and its payload, as specified by the manufacturer and regulatory bodies. This is a critical safety and legal limit.
Remaining Capacity: The additional weight that can be loaded into the container before reaching its Max Gross Weight limit.
Variables Table:
Conex Weight Calculator Variables
Variable
Meaning
Unit
Typical Range
Container Tare Weight
Weight of the empty container.
Kilograms (kg)
1,800 kg – 4,000 kg (varies by type & material)
Payload Weight
Weight of the cargo being shipped.
Kilograms (kg)
0 kg – 30,000+ kg (limited by MGW and container volume)
Total Loaded Weight
Sum of Tare Weight and Payload Weight.
Kilograms (kg)
Variable (Sum of Tare + Payload)
Max Gross Weight (MGW)
Maximum allowable weight for the loaded container.
Kilograms (kg)
24,000 kg – 32,500 kg (varies by container type)
Remaining Capacity
Difference between MGW and Total Loaded Weight.
Kilograms (kg)
Variable (MGW – Total Loaded Weight)
Practical Examples (Real-World Use Cases)
Example 1: Loading a 20′ Standard Container with Electronics
A company is preparing to ship sensitive electronics in a 20′ Standard container. They need to ensure they don't exceed the container's limits.
Container Type: 20′ Standard
Container Tare Weight: 2,300 kg
Payload Weight: 15,000 kg
Calculation using the Conex Weight Calculator:
Max Gross Weight (20′ Std): 30,480 kg (This is a standard spec, though the calculator uses a slightly higher typical value for safety margin, e.g., 32,000 kg if user input or default suggests) – Let's use the calculator's default logic for consistency, assuming it defaults to a common MGW for 20′ std. For this example, let's assume the calculator defaults to 30,480 kg for the 20′ STD.
Total Loaded Weight: 2,300 kg (Tare) + 15,000 kg (Payload) = 17,300 kg
Remaining Capacity: 30,480 kg (MGW) – 17,300 kg (Total) = 13,180 kg
Financial Interpretation: The total loaded weight is well within the container's maximum gross weight limit. The company has a significant remaining capacity of 13,180 kg, indicating they could potentially add more goods or use lighter packaging if aiming for efficiency. This calculation confirms the shipment is safe and compliant from a weight perspective.
Example 2: Maximizing Payload in a 40′ High Cube Container
A manufacturer wants to maximize the amount of furniture they can ship in a 40′ High Cube container to optimize shipping costs per unit.
Container Type: 40′ High Cube
Container Tare Weight: 3,800 kg
Payload Weight: 27,000 kg
Calculation using the Conex Weight Calculator:
Max Gross Weight (40′ HC): 32,500 kg (Standard Spec)
Total Loaded Weight: 3,800 kg (Tare) + 27,000 kg (Payload) = 30,800 kg
Remaining Capacity: 32,500 kg (MGW) – 30,800 kg (Total) = 1,700 kg
Financial Interpretation: The total loaded weight is 30,800 kg, which is close to the MGW of 32,500 kg. The remaining capacity is only 1,700 kg. This suggests the container is nearly at its maximum weight limit. While they haven't exceeded it, adding much more weight could be risky. They might consider slightly lighter furniture or consolidating shipments if they need to stay further below the limit for specific transport legs or regulations. This calculation helps them understand their current load density and potential for further optimization.
How to Use This Conex Weight Calculator
Using the conex weight calculator is simple and designed for quick, accurate results. Follow these steps:
Step-by-Step Instructions:
Select Container Type: Choose your specific container size and type (e.g., 20′ Standard, 40′ High Cube) from the dropdown menu. This action automatically sets the typical Maximum Gross Weight (MGW) associated with that container type.
Enter Container Tare Weight: Input the exact empty weight of your specific container in kilograms (kg). This information is usually found on the container's specifications plate (CSC plate) or can be obtained from the leasing company. If unsure, use the default value provided, but adjust it for accuracy.
Enter Payload Weight: Input the total weight of the goods you intend to load into the container, also in kilograms (kg). This is the weight of your cargo only.
Calculate Weight: Click the "Calculate Weight" button. The calculator will instantly process the inputs.
How to Read Results:
Main Highlighted Result (Total Loaded Weight): This large, prominent number shows the combined weight of your container and its cargo. It's the most critical figure for understanding the current load.
Max Gross Weight: Displays the maximum weight limit for the selected container type. Crucial for compliance.
Total Loaded Weight: Reiteration of the primary result for clarity.
Remaining Capacity: Shows how much more weight you can add before reaching the Max Gross Weight. A positive number means there's room; a negative number indicates you are overloaded.
Chart: Visually breaks down the components of the Total Loaded Weight (Tare vs. Payload) against the Max Gross Weight.
Decision-Making Guidance:
Use the results to make informed decisions:
Under Capacity: If you have significant remaining capacity, consider if you can consolidate more goods or if lighter materials could be used for future shipments to reduce costs.
Near Capacity: If the remaining capacity is low, double-check your payload weight. Avoid adding more unless you are certain it won't exceed the MGW. Be mindful of transport regulations for the specific routes.
Over Capacity: If the calculation shows you are over the Max Gross Weight (indicated by a negative Remaining Capacity or by Total Loaded Weight exceeding MGW), you MUST reduce the payload weight. Overloading is illegal, unsafe, and can lead to severe penalties, delays, and damage.
Key Factors That Affect Conex Weight Results
Several factors influence the calculated conex weight and the overall shipping process. Understanding these helps in accurate planning and compliance:
Container Type and Size: As seen in the calculator, different container types (Standard, High Cube) and sizes (20′, 40′, 45′) have distinct internal volumes and structural limits, directly impacting their Tare Weight and Max Gross Weight (MGW). A 40′ HC typically has a higher MGW than a 20′ Standard.
Container Tare Weight Variation: While ISO standards provide guidelines, the actual tare weight of an individual container can vary slightly due to manufacturing differences, age, wear and tear, and the materials used. Always try to use the specific tare weight of the container being used.
Payload Density: The nature of the goods dictates how much weight can fit within the container's volume. Dense materials (like metals or machinery) might reach the weight limit before the container is visually full, while lighter, bulkier goods (like furniture or textiles) might fill the space but not reach the weight limit. This affects how efficiently you can utilize the conex weight calculator's output for planning.
Regulatory Weight Limits: Beyond the container's MGW, various transport modes (road, rail, sea) and specific countries or regions impose their own maximum weight limits for vehicles and combinations. These legal limits may be lower than the container's MGW and must be adhered to throughout the supply chain.
Dunnage and Securing Materials: Pallets, bracing, straps, inflatable dunnage, and other materials used to secure cargo add to the overall weight. These must be accounted for within the payload weight calculation to ensure accuracy.
Environmental Factors (Extreme): While typically negligible, extreme temperature fluctuations could theoretically cause minor expansion/contraction in some materials, subtly affecting weight readings if measured under vastly different conditions. More practically, moisture absorption by certain goods (like textiles or wood products) can significantly increase their weight over time.
Fuel Surcharges and Freight Rates: Although not directly part of the weight calculation, heavier shipments often incur higher freight costs. Understanding the weight helps in estimating these costs accurately. Shipping companies may also have fuel surcharges tied to overall tonnage.
Documentation Accuracy: Incorrectly declared weights on shipping manifests or customs declarations can lead to delays, fines, and safety risks. Using a precise conex weight calculator ensures accurate documentation.
Frequently Asked Questions (FAQ)
What is the difference between Tare Weight and Payload Weight?
Tare weight is the weight of the empty container itself. Payload weight is the weight of the cargo loaded inside the container. The sum of these two gives the Total Loaded Weight.
What is Max Gross Weight (MGW)?
Max Gross Weight (MGW) is the absolute maximum weight allowed for a fully loaded container, including both the container's own weight and the cargo's weight. It's a critical safety and regulatory limit.
Can I put more weight in a 40′ container than a 20′ container?
Generally, yes. While a 40′ container has more volume, its Max Gross Weight is often similar to or slightly higher than a 20′ container. However, the 40′ container can carry significantly more cargo by volume, making it more cost-effective for lighter, bulkier goods. The 20′ container is often preferred for heavier, denser cargo where the weight limit is reached before the volume limit.
Where can I find the Tare Weight of my container?
The tare weight is usually listed on the container's specification plate, often called the Container Safety Convention (CSC) plate, located on the container door. You can also get this information from the container leasing company or shipping line.
What happens if I exceed the Max Gross Weight?
Exceeding the Max Gross Weight is dangerous and illegal. It can lead to severe penalties, fines, accidents, damage to the container and its contents, and damage to handling equipment and infrastructure. Carriers will refuse overweight containers.
Does the calculator account for the weight of pallets?
The calculator requires you to input the total Payload Weight. This means you should include the weight of pallets, dunnage, and any other securing materials within that figure for an accurate calculation.
How does volume affect weight calculations?
Volume and weight are distinct but related. A container can reach its weight limit (MGW) before it is full of volume, especially with dense cargo. Conversely, it can be filled volumetrically but not reach the weight limit with lighter goods. The calculator focuses on weight limits.
Are the results from this calculator legally binding?
This calculator provides estimates based on typical specifications and user inputs. While it aims for accuracy, official weight verifications should be done using calibrated scales. Always adhere to the specific documentation and regulations provided by shipping lines and authorities.
What does "payload" mean in the context of a conex box?
Payload refers to the maximum weight of cargo that a shipping container is permitted to carry. It is calculated by subtracting the container's tare weight from its maximum gross weight (MGW).
Related Tools and Internal Resources
Conex Weight CalculatorInstantly calculate shipping container payload capacity and total loaded weight.
Container Dimensions GuideExplore detailed dimensions, cubic capacity, and typical payloads for various container types.
Shipping Cost EstimatorGet an estimated cost for your international or domestic freight shipments based on various factors.
Import/Export ChecklistA comprehensive checklist to ensure you have all necessary documents and steps covered for international trade.
Incoterms ExplainedUnderstand the different Incoterms and their implications on cost, risk, and responsibilities in international trade.
Customs Duty CalculatorEstimate the potential customs duties and taxes applicable to your imported goods.
var containerSpecs = {
"20std": { name: "20′ Standard", mgw: 30480 },
"40std": { name: "40′ Standard", mgw: 30480 },
"40hc": { name: "40′ High Cube", mgw: 32500 },
"45hc": { name: "45′ High Cube", mgw: 34000 }
};
var currentContainerType = "20std";
function updateContainerSpecs() {
var selectElement = document.getElementById("containerType");
currentContainerType = selectElement.value;
var specs = containerSpecs[currentContainerType];
document.querySelector('#containerType + .helper-text').textContent = "Selected: " + specs.name;
calculateConexWeight();
}
function validateInput(inputId, errorId, minValue = null, maxValue = null) {
var inputElement = document.getElementById(inputId);
var errorElement = document.getElementById(errorId);
var value = parseFloat(inputElement.value);
errorElement.textContent = ""; // Clear previous error
if (inputElement.value === "") {
errorElement.textContent = "This field cannot be empty.";
return false;
}
if (isNaN(value)) {
errorElement.textContent = "Please enter a valid number.";
return false;
}
if (value < 0) {
errorElement.textContent = "Value cannot be negative.";
return false;
}
if (minValue !== null && value maxValue) {
errorElement.textContent = "Value cannot exceed " + maxValue + " kg.";
return false;
}
return true;
}
function calculateConexWeight() {
var tareWeightInput = document.getElementById("tareWeight");
var payloadWeightInput = document.getElementById("payloadWeight");
var tareWeightError = document.getElementById("tareWeightError");
var payloadWeightError = document.getElementById("payloadWeightError");
var isValidTare = validateInput("tareWeight", "tareWeightError", 0);
var isValidPayload = validateInput("payloadWeight", "payloadWeightError", 0);
if (!isValidTare || !isValidPayload) {
// If validation fails, clear results or show N/A
document.getElementById("mainResult").textContent = "N/A";
document.getElementById("maxGrossWeight").innerHTML = 'Max Gross Weight: N/A kg';
document.getElementById("totalWeight").innerHTML = 'Total Loaded Weight: N/A kg';
document.getElementById("remainingCapacity").innerHTML = 'Remaining Capacity: N/A kg';
updateChart([], []);
return;
}
var tareWeight = parseFloat(tareWeightInput.value);
var payloadWeight = parseFloat(payloadWeightInput.value);
var containerType = document.getElementById("containerType").value;
var mgw = containerSpecs[containerType].mgw;
var totalLoadedWeight = tareWeight + payloadWeight;
var remainingCapacity = mgw – totalLoadedWeight;
// Display results
document.getElementById("mainResult").textContent = totalLoadedWeight.toLocaleString() + " kg";
document.getElementById("maxGrossWeight").innerHTML = 'Max Gross Weight: ' + mgw.toLocaleString() + ' kg';
document.getElementById("totalWeight").innerHTML = 'Total Loaded Weight: ' + totalLoadedWeight.toLocaleString() + ' kg';
document.getElementById("remainingCapacity").innerHTML = 'Remaining Capacity: ' + (remainingCapacity < 0 ? "OVERLOADED" : remainingCapacity.toLocaleString() + " kg") + '';
// Update chart
updateChart(tareWeight, payloadWeight, mgw);
}
function resetCalculator() {
document.getElementById("containerType").value = "20std";
document.getElementById("tareWeight").value = "2200"; // Default Tare for 20std
document.getElementById("payloadWeight").value = "28000"; // Default Payload for 20std
document.getElementById("tareWeightError").textContent = "";
document.getElementById("payloadWeightError").textContent = "";
updateContainerSpecs(); // Update helper text and potentially recalculate if needed
calculateConexWeight(); // Recalculate with reset values
}
function copyResults() {
var mainResult = document.getElementById("mainResult").textContent;
var maxGross = document.getElementById("maxGrossWeight").textContent;
var totalWeight = document.getElementById("totalWeight").textContent;
var remainingCapacity = document.getElementById("remainingCapacity").textContent;
var assumptions = "Assumptions:\n";
var selectedContainer = document.getElementById("containerType");
assumptions += "- Container Type: " + selectedContainer.options[selectedContainer.selectedIndex].text + " (" + selectedContainer.value + ")\n";
assumptions += "- Container Tare Weight: " + document.getElementById("tareWeight").value + " kg\n";
assumptions += "- Payload Weight: " + document.getElementById("payloadWeight").value + " kg\n";
var resultText = "— Conex Weight Calculation Results —\n\n";
resultText += "Main Result (Total Loaded Weight): " + mainResult + "\n";
resultText += maxGross + "\n";
resultText += totalWeight + "\n";
resultText += remainingCapacity + "\n\n";
resultText += "—————————————-\n";
resultText += assumptions;
navigator.clipboard.writeText(resultText).then(function() {
// Optional: Show a temporary success message
var copyButton = document.querySelector('button.primary[onclick="copyResults()"]');
var originalText = copyButton.textContent;
copyButton.textContent = "Copied!";
setTimeout(function() {
copyButton.textContent = originalText;
}, 2000);
}).catch(function(err) {
console.error('Failed to copy text: ', err);
// Optional: Show an error message
});
}
// Charting Logic
var weightChart;
var chartContext = document.getElementById("weightChart").getContext("2d");
function updateChart(tareWeight, payloadWeight, mgw) {
var labels = ['Container Tare Weight', 'Payload Weight', 'Remaining Capacity'];
var dataValues = [];
var dataColors = ['#004a99', '#6c757d', '#d3d3d3']; // Blue, Gray, Light Gray
if (tareWeight === undefined || payloadWeight === undefined || mgw === undefined) {
dataValues = [0, 0, 0];
} else {
var totalLoadedWeight = tareWeight + payloadWeight;
var remainingCapacity = mgw – totalLoadedWeight;
dataValues = [
tareWeight,
payloadWeight,
remainingCapacity < 0 ? 0 : remainingCapacity // Show 0 remaining if overloaded for chart
];
// If overloaded, adjust colors or indicate visually
if (remainingCapacity < 0) {
dataColors = ['#004a99', '#ff0000', '#d3d3d3']; // Tare (Blue), Payload (Red), Remaining (Gray)
} else {
dataColors = ['#004a99', '#6c757d', '#d3d3d3'];
}
}
if (weightChart) {
weightChart.destroy();
}
weightChart = new Chart(chartContext, {
type: 'bar',
data: {
labels: labels,
datasets: [{
label: 'Weight (kg)',
data: dataValues,
backgroundColor: dataColors,
borderColor: '#ffffff',
borderWidth: 1
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
scales: {
y: {
beginAtZero: true,
title: {
display: true,
text: 'Weight (kg)'
}
}
},
plugins: {
legend: {
display: false // Hide legend as labels are on the bars
},
tooltip: {
callbacks: {
label: function(context) {
var label = context.dataset.label || '';
if (label) {
label += ': ';
}
if (context.parsed.y !== null) {
label += context.parsed.y.toLocaleString() + ' kg';
}
return label;
}
}
}
}
}
});
}
// Initialize calculator on page load
document.addEventListener("DOMContentLoaded", function() {
updateContainerSpecs(); // Set initial helper text
calculateConexWeight(); // Perform initial calculation
// Add event listeners for FAQ toggles
var faqQuestions = document.querySelectorAll('.faq-question');
faqQuestions.forEach(function(question) {
question.addEventListener('click', function() {
var faqItem = this.closest('.faq-item');
faqItem.classList.toggle('open');
});
});
});
// Need Chart.js library for this to work.
// As per instructions, no external libraries.
// We will simulate a chart with SVG or basic canvas if Chart.js is not allowed.
// **** IMPORTANT: The above `new Chart(…)` will FAIL without Chart.js library. ****
// **** Since external libraries are forbidden, a pure JS canvas or SVG approach is required. ****
// **** For this demo, I'll leave the Chart.js structure but REMARK it. ****
// **** A proper implementation would require manual canvas drawing or SVG generation. ****
// —- START Manual Canvas Drawing (Alternative if Chart.js is forbidden) —-
// This is a simplified example. A full charting solution is complex.
function drawManualChart(tareWeight, payloadWeight, mgw) {
var canvas = document.getElementById("weightChart");
var ctx = canvas.getContext("2d");
ctx.clearRect(0, 0, canvas.width, canvas.height); // Clear previous drawings
if (tareWeight === undefined || payloadWeight === undefined || mgw === undefined) return;
var totalLoadedWeight = tareWeight + payloadWeight;
var remainingCapacity = mgw – totalLoadedWeight;
var chartHeight = canvas.height – 40; // Padding for labels
var chartWidth = canvas.width – 80; // Padding for labels
// Find max value for scaling
var maxValue = Math.max(mgw, totalLoadedWeight);
if (maxValue === 0) maxValue = 1; // Avoid division by zero
var scaleY = chartHeight / maxValue;
// Draw Axes
ctx.beginPath();
ctx.moveTo(40, chartHeight + 20); // X-axis start
ctx.lineTo(chartWidth + 40, chartHeight + 20); // X-axis end
ctx.lineTo(chartWidth + 40, 20); // Y-axis end
ctx.strokeStyle = '#ccc';
ctx.lineWidth = 1;
ctx.stroke();
// Draw Bars
var barWidth = chartWidth / 3 * 0.8;
var gap = chartWidth / 3 * 0.2;
// Tare Weight Bar
var tareHeight = tareWeight * scaleY;
ctx.fillStyle = '#004a99'; // Blue
ctx.fillRect(40 + gap, chartHeight + 20 – tareHeight, barWidth, tareHeight);
ctx.fillStyle = '#333';
ctx.textAlign = 'center';
ctx.font = '12px Segoe UI';
ctx.fillText(tareWeight.toLocaleString() + ' kg', 40 + gap + barWidth / 2, chartHeight + 20 – tareHeight – 5);
ctx.fillText('Tare', 40 + gap + barWidth / 2, chartHeight + 35);
// Payload Weight Bar
var payloadHeight = payloadWeight * scaleY;
ctx.fillStyle = remainingCapacity = 0) {
var remainingHeight = remainingCapacity * scaleY;
ctx.fillStyle = '#d3d3d3'; // Light Gray
ctx.fillRect(40 + gap * 3 + barWidth * 2, chartHeight + 20 – remainingHeight, barWidth, remainingHeight);
ctx.fillStyle = '#333';
ctx.fillText(remainingCapacity.toLocaleString() + ' kg', 40 + gap * 3 + barWidth * 2 + barWidth / 2, chartHeight + 20 – remainingHeight – 5);
ctx.fillText('Remaining', 40 + gap * 3 + barWidth * 2 + barWidth / 2, chartHeight + 35);
}
// Draw MGW Line
var mgwLineY = chartHeight + 20 – (mgw * scaleY);
ctx.beginPath();
ctx.moveTo(40, mgwLineY);
ctx.lineTo(chartWidth + 40, mgwLineY);
ctx.strokeStyle = 'rgba(0, 74, 153, 0.7)';
ctx.lineWidth = 2;
ctx.setLineDash([5, 5]);
ctx.stroke();
ctx.setLineDash([]); // Reset line dash
ctx.fillStyle = 'rgba(0, 74, 153, 0.7)';
ctx.textAlign = 'left';
ctx.fillText('Max Gross Weight (' + mgw.toLocaleString() + ' kg)', 45, mgwLineY – 5);
}
// Replace Chart.js updateChart call with manual chart drawing
function updateChart(tareWeight, payloadWeight, mgw) {
var canvas = document.getElementById("weightChart");
// Ensure canvas has dimensions, default if not set
if (!canvas.width) canvas.width = 600;
if (!canvas.height) canvas.height = 300;
drawManualChart(tareWeight, payloadWeight, mgw);
}
// —- END Manual Canvas Drawing —-