Help

CB Overload Protection

Jump to section

Overview

The CB Overload Protection Coordination calculator verifies that a circuit breaker and cable combination satisfies the two overload protection conditions specified in AS/NZS 3000 Clause 2.5.3 (IEC 60364-4-43 Clause 433.1). This ensures that cables are protected from sustained overloads that could cause thermal damage to insulation.

The calculator provides:

  • Two-condition coordination check — verifies both Condition 2.1 and Condition 2.2
  • Circuit breaker size/setting matrix — shows all valid CB frame size and thermal setting combinations
  • Cable selection matrix — evaluates all cable sizes against the selected CB
  • MCB curve recommendation — suggests B, C, or D curve based on load type

Input Parameters

Parameter Type Default Range Description
load_current Number 45 A 0.1 – 10000 Design current (IB) — the current for which the circuit is designed
load_type Enum general resistive / general / inductive Determines recommended MCB curve type (B / C / D)
cb_frame_size Number 63 A 6 – 800 Nominal rated current of the circuit breaker frame (IN)
thermal_setting Number 1.00 0.40 – 1.00 Thermal current setting as a multiplier of the frame size. Effective IN = frame × setting
cable_size Number 16 mm² 1 – 500 Conductor cross-sectional area. Current ratings per AS/NZS 3008.1
parallel_cables Integer 1 1 – 6 Number of identical cables run in parallel per phase
derating_factor Number 0.87 0.1 – 1.0 Combined derating factor for installation conditions (grouping, temperature, etc.)

Output Results

Output Symbol Unit Description
Effective IN INeff A CB frame size × thermal setting
Cable Capacity Iz A Base rating × derating factor × parallel cables
Operating Current I2 A 1.45 × INeff — conventional operating current for CBs
Maximum I2 1.45 × Iz A Maximum allowable operating current
Condition 2.1 — PASS / FAIL IB ≤ IN ≤ Iz
Condition 2.2 — PASS / FAIL I2 ≤ 1.45 × Iz
Overall Result — PASS / FAIL Both conditions must pass
Curve Recommendation — B / C / D Recommended MCB curve based on load type

Formulas

Condition 2.1 — Current Coordination

The protective device must be rated at or above the design current, but not exceed the cable capacity:

IB ≤ IN ≤ Iz

Where:

  • IB = Design current (maximum demand of the circuit)
  • IN = Nominal current of the protective device (effective: frame × thermal setting)
  • Iz = Current-carrying capacity of the conductor (base rating × derating × parallel count)

Condition 2.2 — Operating Current Limit

The conventional operating current must not exceed 1.45 times the cable capacity:

I2 ≤ 1.45 × Iz

For circuit breakers, I2 = 1.45 × IN. Substituting:

1.45 × IN ≤ 1.45 × Iz  →  IN ≤ Iz

Note: For circuit breakers, Condition 2.2 simplifies to IN ≤ Iz, which is already part of Condition 2.1. However, both are checked independently for completeness and to support future extension to fuses (where I2 ≠ 1.45 × IN).

Worked Examples

The 8 examples below are the validation cases for this calculation. Each one was produced by the calculation engine from the inputs shown, every figure was checked against the independent reference quoted at the end of the example, and the same cases are run against every engine build (see validation scorecard, tool fe_calc_protection; worked examples for every calculation).

#CaseIB (A)In (A)Iz (A)I2 / 1.45 Iz (A)CurveResult
145 A load, 50 A breaker on 25 mm² XLPE4550.0103.5372.5 / 150.1CPASS
263 A frame turned down to 0.8 on 16 mm²4550.462.6473.1 / 90.8CPASS
363 A frame at full setting on 16 mm² fails4563.062.6491.3 / 90.8CFAIL
4Load above the breaker rating (resistive, B curve)7063.0103.5391.3 / 150.1BFAIL
5Boundary: Ib equal to In on 10 mm²5050.051.3072.5 / 74.4CPASS
6160 A frame at 0.63 on derated 35 mm²95100.8102.90146.2 / 149.2CPASS
7Heavy derating 0.6 on 35 mm² fails80100.088.20145.0 / 127.9CFAIL
8400 A breaker on 2 × 120 mm² in parallel (motor, D curve)380400.0528.00580.0 / 765.6DPASS

Example 1 — 45 A load, 50 A breaker on 25 mm² XLPE

The default 0.87 derating on a 25 mm² XLPE cable leaves ample margin above a 50 A breaker.

Given: Design current IB = 45 A (general load); 50 A circuit breaker at thermal setting 1; 1 × 25 mm² copper multicore cable, installation derating 0.87.

Device currentIn = rating × setting = 50 × 1 = 50.00 A
Cable capacityTabulated rating for 25 mm² XLPE multicore Cu in air = 119 A; Iz = 119 × 0.87 × 1 = 103.53 A
Operating currentI2 = 1.45 × In = 1.45 × 50.00 = 72.50 A (circuit-breaker conventional tripping current); limit 1.45 × Iz = 1.45 × 103.53 = 150.12 A
Ib ≤ InDevice rated for the design current: IB vs In → 45.00 vs limit 50.00 A PASS
In ≤ IzDevice no larger than the cable rating: In vs Iz → 50.00 vs limit 103.53 A PASS
I2 ≤ 1.45 IzDevice operates before 1.45 × the cable rating: I2 vs 1.45 Iz → 72.50 vs limit 150.12 A PASS
MCB curveGeneral load → type C (AS/NZS 60898.1 instantaneous band 5–10 × In = 250.0–500.0 A)
Alternativessmallest cable with Iz ≥ 50.00 A at this derating: 16 mm²; largest rating × setting with IB ≤ In ≤ 103.53 A on this cable: 100.8 A
Result3/3 checks pass → PASS; IB 45 A, In 50.0 A, Iz 103.53 A; governing: ib le in
ReferenceHand calculation (AS/NZS 3000 cl 2.5.3 / IEC 60364-4-43 cl 433.1): In = 50 × 1 = 50 A; Iz = 119 A (component table, 25 mm²) × 0.87 × 1 = 103.53 A; Ib 45 ≤ In 50; In 50 ≤ Iz 103.53; I2 = 1.45 × 50 = 72.50 A ≤ 1.45 Iz = 150.12 A; curve C (AS/NZS 60898.1 instantaneous 250–500 A); smallest table size with Iz ≥ 50 A is 16 mm² (validation case c0033-45a-50a-25mm2-passes)

Example 2 — 63 A frame turned down to 0.8 on 16 mm²

An adjustable thermal setting (63 × 0.8 = 50.4 A) brings the breaker inside a 16 mm² cable's rating.

Given: Design current IB = 45 A (general load); 63 A circuit breaker at thermal setting 0.8; 1 × 16 mm² copper multicore cable, installation derating 0.87.

Device currentIn = rating × setting = 63 × 0.8 = 50.40 A
Cable capacityTabulated rating for 16 mm² PVC multicore Cu in air = 72 A; Iz = 72 × 0.87 × 1 = 62.64 A
Operating currentI2 = 1.45 × In = 1.45 × 50.40 = 73.08 A (circuit-breaker conventional tripping current); limit 1.45 × Iz = 1.45 × 62.64 = 90.83 A
Ib ≤ InDevice rated for the design current: IB vs In → 45.00 vs limit 50.40 A PASS
In ≤ IzDevice no larger than the cable rating: In vs Iz → 50.40 vs limit 62.64 A PASS
I2 ≤ 1.45 IzDevice operates before 1.45 × the cable rating: I2 vs 1.45 Iz → 73.08 vs limit 90.83 A PASS
MCB curveGeneral load → type C (AS/NZS 60898.1 instantaneous band 5–10 × In = 252.0–504.0 A)
Alternativessmallest cable with Iz ≥ 50.40 A at this derating: 16 mm²; largest rating × setting with IB ≤ In ≤ 62.64 A on this cable: 62.5 A
Result3/3 checks pass → PASS; IB 45 A, In 50.4 A, Iz 62.64 A; governing: ib le in
ReferenceHand calculation (AS/NZS 3000 cl 2.5.3 / IEC 60364-4-43 cl 433.1): In = 63 × 0.8 = 50.4 A; Iz = 72 A (component table, 16 mm²) × 0.87 × 1 = 62.64 A; Ib 45 ≤ In 50.4; In 50.4 ≤ Iz 62.64; I2 = 1.45 × 50.4 = 73.08 A ≤ 1.45 Iz = 90.83 A; curve C (AS/NZS 60898.1 instantaneous 252–504 A); smallest table size with Iz ≥ 50.4 A is 16 mm² (validation case c0033-63a-setting-0-8-16mm2-passes)

Example 3 — 63 A frame at full setting on 16 mm² fails

The same circuit with the setting left at 1.0: In = 63 A exceeds Iz = 62.64 A, so both In ≤ Iz and I2 ≤ 1.45 Iz fail.

Given: Design current IB = 45 A (general load); 63 A circuit breaker at thermal setting 1; 1 × 16 mm² copper multicore cable, installation derating 0.87.

Device currentIn = rating × setting = 63 × 1 = 63.00 A
Cable capacityTabulated rating for 16 mm² PVC multicore Cu in air = 72 A; Iz = 72 × 0.87 × 1 = 62.64 A
Operating currentI2 = 1.45 × In = 1.45 × 63.00 = 91.35 A (circuit-breaker conventional tripping current); limit 1.45 × Iz = 1.45 × 62.64 = 90.83 A
Ib ≤ InDevice rated for the design current: IB vs In → 45.00 vs limit 63.00 A PASS
In ≤ IzDevice no larger than the cable rating: In vs Iz → 63.00 vs limit 62.64 A FAIL
I2 ≤ 1.45 IzDevice operates before 1.45 × the cable rating: I2 vs 1.45 Iz → 91.35 vs limit 90.83 A FAIL
MCB curveGeneral load → type C (AS/NZS 60898.1 instantaneous band 5–10 × In = 315.0–630.0 A)
Alternativessmallest cable with Iz ≥ 63.00 A at this derating: 25 mm²; largest rating × setting with IB ≤ In ≤ 62.64 A on this cable: 62.5 A
Result1/3 checks pass → FAIL; IB 45 A, In 63.0 A, Iz 62.64 A; governing: in le iz. Reduce circuit breaker setting or increase cable size. The circuit breaker operating current exceeds cable protection limit. Consider a larger cable or smaller breaker.
ReferenceHand calculation (AS/NZS 3000 cl 2.5.3 / IEC 60364-4-43 cl 433.1): In = 63 × 1 = 63 A; Iz = 72 A (component table, 16 mm²) × 0.87 × 1 = 62.64 A; Ib 45 ≤ In 63; In 63 > Iz 62.64; I2 = 1.45 × 63 = 91.35 A > 1.45 Iz = 90.83 A; curve C (AS/NZS 60898.1 instantaneous 315–630 A); smallest table size with Iz ≥ 63 A is 25 mm² (validation case c0033-45a-63a-16mm2-fails)

Example 4 — Load above the breaker rating (resistive, B curve)

A 70 A heating load on a 63 A breaker fails Ib ≤ In even though the 25 mm² cable is ample; B-curve band for resistive load.

Given: Design current IB = 70 A (resistive load); 63 A circuit breaker at thermal setting 1; 1 × 25 mm² copper multicore cable, installation derating 0.87.

Device currentIn = rating × setting = 63 × 1 = 63.00 A
Cable capacityTabulated rating for 25 mm² XLPE multicore Cu in air = 119 A; Iz = 119 × 0.87 × 1 = 103.53 A
Operating currentI2 = 1.45 × In = 1.45 × 63.00 = 91.35 A (circuit-breaker conventional tripping current); limit 1.45 × Iz = 1.45 × 103.53 = 150.12 A
Ib ≤ InDevice rated for the design current: IB vs In → 70.00 vs limit 63.00 A FAIL
In ≤ IzDevice no larger than the cable rating: In vs Iz → 63.00 vs limit 103.53 A PASS
I2 ≤ 1.45 IzDevice operates before 1.45 × the cable rating: I2 vs 1.45 Iz → 91.35 vs limit 150.12 A PASS
MCB curveResistive load → type B (AS/NZS 60898.1 instantaneous band 3–5 × In = 189.0–315.0 A)
Alternativeslargest rating × setting with IB ≤ In ≤ 103.53 A on this cable: 100.8 A
Result2/3 checks pass → FAIL; IB 70 A, In 63.0 A, Iz 103.53 A; governing: ib le in. Increase circuit breaker rating to cover load current.
ReferenceHand calculation (AS/NZS 3000 cl 2.5.3 / IEC 60364-4-43 cl 433.1): In = 63 × 1 = 63 A; Iz = 119 A (component table, 25 mm²) × 0.87 × 1 = 103.53 A; Ib 70 > In 63; In 63 ≤ Iz 103.53; I2 = 1.45 × 63 = 91.35 A ≤ 1.45 Iz = 150.12 A; curve B (AS/NZS 60898.1 instantaneous 189–315 A) (validation case c0033-load-exceeds-breaker-fails)

Example 5 — Boundary: Ib equal to In on 10 mm²

Ib = In = 50 A is allowed (≤), and Iz = 54 × 0.95 = 51.3 A just covers In: a pass at 100 % utilisation.

Given: Design current IB = 50 A (general load); 50 A circuit breaker at thermal setting 1; 1 × 10 mm² copper multicore cable, installation derating 0.95.

Device currentIn = rating × setting = 50 × 1 = 50.00 A
Cable capacityTabulated rating for 10 mm² PVC multicore Cu in air = 54 A; Iz = 54 × 0.95 × 1 = 51.30 A
Operating currentI2 = 1.45 × In = 1.45 × 50.00 = 72.50 A (circuit-breaker conventional tripping current); limit 1.45 × Iz = 1.45 × 51.30 = 74.38 A
Ib ≤ InDevice rated for the design current: IB vs In → 50.00 vs limit 50.00 A PASS
In ≤ IzDevice no larger than the cable rating: In vs Iz → 50.00 vs limit 51.30 A PASS
I2 ≤ 1.45 IzDevice operates before 1.45 × the cable rating: I2 vs 1.45 Iz → 72.50 vs limit 74.38 A PASS
MCB curveGeneral load → type C (AS/NZS 60898.1 instantaneous band 5–10 × In = 250.0–500.0 A)
Alternativessmallest cable with Iz ≥ 50.00 A at this derating: 10 mm²; largest rating × setting with IB ≤ In ≤ 51.30 A on this cable: 50.4 A
Result3/3 checks pass → PASS; IB 50 A, In 50.0 A, Iz 51.30 A; governing: ib le in
ReferenceHand calculation (AS/NZS 3000 cl 2.5.3 / IEC 60364-4-43 cl 433.1): In = 50 × 1 = 50 A; Iz = 54 A (component table, 10 mm²) × 0.95 × 1 = 51.30 A; Ib 50 ≤ In 50; In 50 ≤ Iz 51.30; I2 = 1.45 × 50 = 72.50 A ≤ 1.45 Iz = 74.38 A; curve C (AS/NZS 60898.1 instantaneous 250–500 A); smallest table size with Iz ≥ 50 A is 10 mm² (validation case c0033-boundary-ib-equals-in)

Example 6 — 160 A frame at 0.63 on derated 35 mm²

A 0.63 thermal setting (100.8 A) on a heavily derated (0.7) 35 mm² XLPE cable passes with 2 A to spare.

Given: Design current IB = 95 A (general load); 160 A circuit breaker at thermal setting 0.63; 1 × 35 mm² copper multicore cable, installation derating 0.7.

Device currentIn = rating × setting = 160 × 0.63 = 100.80 A
Cable capacityTabulated rating for 35 mm² XLPE multicore Cu in air = 147 A; Iz = 147 × 0.7 × 1 = 102.90 A
Operating currentI2 = 1.45 × In = 1.45 × 100.80 = 146.16 A (circuit-breaker conventional tripping current); limit 1.45 × Iz = 1.45 × 102.90 = 149.20 A
Ib ≤ InDevice rated for the design current: IB vs In → 95.00 vs limit 100.80 A PASS
In ≤ IzDevice no larger than the cable rating: In vs Iz → 100.80 vs limit 102.90 A PASS
I2 ≤ 1.45 IzDevice operates before 1.45 × the cable rating: I2 vs 1.45 Iz → 146.16 vs limit 149.20 A PASS
MCB curveGeneral load → type C (AS/NZS 60898.1 instantaneous band 5–10 × In = 504.0–1,008.0 A)
Alternativessmallest cable with Iz ≥ 100.80 A at this derating: 35 mm²; largest rating × setting with IB ≤ In ≤ 102.90 A on this cable: 100.8 A
Result3/3 checks pass → PASS; IB 95 A, In 100.8 A, Iz 102.90 A; governing: in le iz
ReferenceHand calculation (AS/NZS 3000 cl 2.5.3 / IEC 60364-4-43 cl 433.1): In = 160 × 0.63 = 100.8 A; Iz = 147 A (component table, 35 mm²) × 0.7 × 1 = 102.90 A; Ib 95 ≤ In 100.8; In 100.8 ≤ Iz 102.90; I2 = 1.45 × 100.8 = 146.16 A ≤ 1.45 Iz = 149.20 A; curve C (AS/NZS 60898.1 instantaneous 504–1008 A); smallest table size with Iz ≥ 100.8 A is 35 mm² (validation case c0033-160a-setting-0-63-35mm2)

Example 7 — Heavy derating 0.6 on 35 mm² fails

With a 0.6 grouping/ambient derating 35 mm² carries only 88.2 A under a 100 A breaker; the tool reports 50 mm² as the smallest passing cable and 87.5 A as the largest passing setting.

Given: Design current IB = 80 A (general load); 100 A circuit breaker at thermal setting 1; 1 × 35 mm² copper multicore cable, installation derating 0.6.

Device currentIn = rating × setting = 100 × 1 = 100.00 A
Cable capacityTabulated rating for 35 mm² XLPE multicore Cu in air = 147 A; Iz = 147 × 0.6 × 1 = 88.20 A
Operating currentI2 = 1.45 × In = 1.45 × 100.00 = 145.00 A (circuit-breaker conventional tripping current); limit 1.45 × Iz = 1.45 × 88.20 = 127.89 A
Ib ≤ InDevice rated for the design current: IB vs In → 80.00 vs limit 100.00 A PASS
In ≤ IzDevice no larger than the cable rating: In vs Iz → 100.00 vs limit 88.20 A FAIL
I2 ≤ 1.45 IzDevice operates before 1.45 × the cable rating: I2 vs 1.45 Iz → 145.00 vs limit 127.89 A FAIL
MCB curveGeneral load → type C (AS/NZS 60898.1 instantaneous band 5–10 × In = 500.0–1,000.0 A)
Alternativessmallest cable with Iz ≥ 100.00 A at this derating: 50 mm²; largest rating × setting with IB ≤ In ≤ 88.20 A on this cable: 87.5 A
Result1/3 checks pass → FAIL; IB 80 A, In 100.0 A, Iz 88.20 A; governing: in le iz. Reduce circuit breaker setting or increase cable size. The circuit breaker operating current exceeds cable protection limit. Consider a larger cable or smaller breaker.
ReferenceHand calculation (AS/NZS 3000 cl 2.5.3 / IEC 60364-4-43 cl 433.1): In = 100 × 1 = 100 A; Iz = 147 A (component table, 35 mm²) × 0.6 × 1 = 88.20 A; Ib 80 ≤ In 100; In 100 > Iz 88.20; I2 = 1.45 × 100 = 145.00 A > 1.45 Iz = 127.89 A; curve C (AS/NZS 60898.1 instantaneous 500–1000 A); smallest table size with Iz ≥ 100 A is 50 mm²; largest frame × setting with 80 ≤ In ≤ 88.2 A is 125 × 0.7 = 87.5 A (validation case c0033-heavy-derating-fails-50mm2-needed)

Example 8 — 400 A breaker on 2 × 120 mm² in parallel (motor, D curve)

Two parallel 120 mm² XLPE cables at 0.8 derating give Iz = 528 A for a 380 A motor load on a 400 A breaker; D curve for inrush.

Given: Design current IB = 380 A (inductive load); 400 A circuit breaker at thermal setting 1; 2 × 120 mm² copper multicore cables in parallel, installation derating 0.8.

Device currentIn = rating × setting = 400 × 1 = 400.00 A
Cable capacityTabulated rating for 120 mm² XLPE multicore Cu in air = 330 A; Iz = 330 × 0.8 × 2 = 528.00 A
Operating currentI2 = 1.45 × In = 1.45 × 400.00 = 580.00 A (circuit-breaker conventional tripping current); limit 1.45 × Iz = 1.45 × 528.00 = 765.60 A
Ib ≤ InDevice rated for the design current: IB vs In → 380.00 vs limit 400.00 A PASS
In ≤ IzDevice no larger than the cable rating: In vs Iz → 400.00 vs limit 528.00 A PASS
I2 ≤ 1.45 IzDevice operates before 1.45 × the cable rating: I2 vs 1.45 Iz → 580.00 vs limit 765.60 A PASS
MCB curveInductive load → type D (AS/NZS 60898.1 instantaneous band 10–20 × In = 4,000.0–8,000.0 A)
Alternativessmallest cable with Iz ≥ 400.00 A at this derating: 95 mm²; largest rating × setting with IB ≤ In ≤ 528.00 A on this cable: 504.0 A
Result3/3 checks pass → PASS; IB 380 A, In 400.0 A, Iz 528.00 A; governing: ib le in
ReferenceHand calculation (AS/NZS 3000 cl 2.5.3 / IEC 60364-4-43 cl 433.1): In = 400 × 1 = 400 A; Iz = 330 A (component table, 120 mm²) × 0.8 × 2 = 528.00 A; Ib 380 ≤ In 400; In 400 ≤ Iz 528.00; I2 = 1.45 × 400 = 580.00 A ≤ 1.45 Iz = 765.60 A; curve D (AS/NZS 60898.1 instantaneous 4000–8000 A); smallest table size with Iz ≥ 400 A is 95 mm² (validation case c0033-parallel-2x120mm2-400a)

Standards & References

  • AS/NZS 3000:2018 — Electrical installations (Wiring Rules). Clause 2.5.3 sets the coordination conditions between conductors and overload protective devices.
  • AS/NZS 3008.1:2017 — Electrical installations – Selection of cables. Source of the current-carrying capacities (Iz).
  • IEC 60364-4-43 — Protection against overcurrent. International equivalent of the AS/NZS coordination requirements.
  • AS/NZS 60898.1 — Circuit breakers for overcurrent protection. Defines B, C, and D curve characteristics.

Tips & Limitations

  • The derating factor should account for all installation derating: ambient temperature, grouping, burial depth, soil resistivity, etc. Use the Motor/Load Cable Sizing calculator for precise derating calculations.
  • Cable ratings are for 3-phase multicore copper conductors in air. PVC insulation is used for sizes up to 16mm²; XLPE for 25mm² and above.
  • The I2 = 1.45 × IN relationship applies specifically to circuit breakers. For HRC fuses, I2 varies — this calculator does not cover fuse coordination.
  • Parallel cables multiply the total cable capacity. Ensure all parallel cables are identical (same size, type, length, and installation method).
  • The CB matrix highlights all valid frame/setting combinations for the selected cable — useful for exploring alternatives without re-running the calculation.

Developer Guide — Architecture

This calculator follows the standard calcs component pattern:

components/c0033_cb_overload_protection/
├── __init__.py              # Docstring
├── apps.py                  # Django AppConfig
├── calculations.py          # Pure Python — all math, no Django
├── component.py             # Schema, Calculator class, builders, registration
├── equations.py             # LaTeX equation templates
└── templates/.../sidebar_form.html  # Vue 3 sidebar form

Data flow: Sidebar form → CBOverloadProtectionCalculator.calculate() → calculate_cb_overload_protection() (pure Python) → results dict → equation_builder() / summary_cards_builder() → UI rendering

Developer Guide — Code Paths

Purpose File Key Function / Class
Core evaluation calculations.py evaluate_coordination(ib, in_effective, iz)
CB matrix calculations.py build_cb_matrix(ib, iz)
Cable matrix calculations.py build_cable_matrix(ib, in_effective, derating, parallel)
Main entry calculations.py calculate_cb_overload_protection(data)
Validation component.py CBOverloadProtectionCalculator.validate_parameters()
Registration component.py register_component(registry)
Excel export excel_generator.py create_c0033_excel_report(calculation)

Developer Guide — Testing

# Run all tests for this component
pytest calcs/test_c0033_cb_overload_protection.py -v

Test coverage includes:

  • TestEvaluateCoordination — safe/unsafe combinations, boundary cases
  • TestGetCableRating — valid/invalid size lookups
  • TestGetCurveRecommendation — B/C/D curve mapping
  • TestBuildCBMatrix — matrix structure, known safe/unsafe entries
  • TestBuildCableMatrix — all sizes, parallel cable multiplier
  • TestCalculateCBOverloadProtection — full integration, pass/fail, recommendations
  • TestCalculatorClass — validation, round-trip through calculator