The errors in a network plan usually live in the joins, not the calculations. A band chosen for its licensing that the radio design then ignores. A bandwidth the throughput figure assumed and the budget did not. A range computed from the flattering direction. So everything here derives from one project record, and the code that assembles it is deliberately thin, because every calculation underneath is already tested on its own.
The licensing half is the part no other tool has. Given a band, a location class and a deployment shape, it names the routes that RALI MS 34, MS 47, MS 50 and SM 26 actually describe, and reports the conditions from the Radiocommunications Licence Conditions (Fixed Licence) Determination 2025 and the 3.4 GHz Advisory Guidelines with the clause on each. Where no held document offers a route it says so, and it distinguishes "no document covers this band" from "the documents cover it but offer nothing for this deployment". It never offers a plausible looking route that does not exist: band 43 sits between the two point to multipoint blocks and gets no point to multipoint path, however similar it looks to band 42, which does.
The budget half computes both directions with the PRB aware uplink noise bandwidth, names the limiting one, and hands that direction's path loss to the range calculation. Range comes back as a spread across models rather than a single figure, because they disagree and hiding that converts genuine uncertainty into false confidence. Site counts use hexagonal packing at the pessimistic end of the spread.
The co-siting half answers the question that actually stops private LTE deployments: can this carrier join a tower that already carries land mobile. It classifies the governing mechanism before calculating anything, because ACLR and ACS are only defined at the first and second adjacent channel and most co-sited services are tens of megahertz away, where the absolute out-of-band limit governs instead. It charges a narrowband victim only the leakage landing in its own bandwidth. And where the register cannot supply an input the answer depends on, it refuses to assess rather than substituting a plausible default.