MLE

Field Tools

Quick References

Field work

Projects on this device

Device storage

Project

Export

Generated on this device — no signal needed.

Delete project

Removes this project, its plan sets, markups and photos from this device. This cannot be undone.

Docs

Plan sets are grouped by visit. A new folder is named for today and can be renamed.

Sheet 100%

Photos

Site photos pinned to a location on a sheet. Not built yet — this arrives with the markup and photo step, after the plan viewer.

Air state — dry bulb + one other property

Chart is drawn from the same equations as the numbers above — it is a check on reasonableness, not a reading surface.

Coil / process load
Mix two airstreams

Duct friction

Size it for me

Governing constraint is whichever gives the larger duct. 0.08–0.10 in./100 ft is a common low-pressure design band; tighten it where fan energy or sound matters.

Fittings and components

Loss coefficients are typical values for a first pass. For a design of record use the ASHRAE Duct Fitting Database for the actual geometry.

Pipe friction — water

Valves and fittings

K values are typical. Confirm against the manufacturer's published Cv for balancing valves, control valves, and strainers — those three dominate a branch and vary widely by model.

Size selection

Affinity laws

Fan horsepower

Pump horsepower

Unit conversion

Temperature

Fixture schedule

Enter quantities once — the same schedule drives the domestic water demand and the sanitary drain size below.

Irrigation, cooling make-up and similar steady flows go in the continuous field — IPC E103.3 adds those in gpm after the fixture-unit conversion, never as fixture units.

Saves a plain-text record of this fixture schedule and its calculated water demand and drain sizing — for the project file, not a substitute for the reviewing engineer's calculation package.

Water closets & urinals
Lavatories, tubs & showers
Bathroom groups

A group already covers its water closet, lavatory and tub or shower. Count the group or those fixtures, never both.

Sinks
Appliances & drains

Domestic water — IPC Appendix E

Cold + hot sums to more than the total by design: IPC Table E103.3(2) note (a) sets each branch at three-fourths of the fixture total, because the cold and hot peaks do not coincide.

Sanitary sewer — IPC Table 710.1(1)

Fixture-by-fixture breakdown
FixtureQty ColdHotTotalDFU

Quick references — firm marina/electrical cheat sheet

Each card below is one reference "file." These are for a quick field check, not a design of record — confirm against the NEC edition and any local amendments adopted by the AHJ for the project before using a number from here on a drawing or calc package.

NEC Table 220.120 — Marina shore power receptacle demand factor

Edition note. This table moved. It is Table 220.120 in the 2023 NEC, Table 555.6 in the 2020 NEC, and Table 555.12 in the 2017 NEC. The demand-factor brackets below are identical in all three — only the citation changes. Cite the designation belonging to the edition the AHJ has adopted.

Number of shore power receptaclesDemand factor
1–4100%
5–890%
9–1480%
15–3070%
31–4060%
41–5050%
51–7040%
≥7130%

1. Where a slip has two receptacles at different voltages (e.g. one 30A/125V and one 50A/125-250V), only the receptacle with the larger kVA demand is counted.

2. A pedestal with an individual kWh submeter per slip, calculated per the criteria in the notes to this table, may have its total demand amperes multiplied by 0.9. (This app's Marina Load tool applies this.)

3. If a circuit feeds a boat hoist and shore power for the same slip, only the load with the larger kW demand is counted.

NEC Table 250.66 — Grounding electrode conductor

Sized from the largest ungrounded service-entrance conductor, or the equivalent area for parallel conductors. Service and electrode sizing only — for a branch circuit or a subpanel feeder use Table 250.122.

Largest ungrounded service-entrance conductor (AWG/kcmil) Grounding electrode conductor
CopperAl or Cu-clad Al CopperAl or Cu-clad Al

1. 250.66(A): where the GEC is the sole connection to a rod, pipe or plate electrode, it need not be larger than 6 AWG copper or 4 AWG aluminum.

2. 250.66(B): sole connection to a concrete-encased electrode need not be larger than 4 AWG copper.

3. 250.66(C): sole connection to a ground ring need not be larger than the conductor used for the ring (2 AWG minimum per 250.52(A)(4)).

4. Where there are no service-entrance conductors, size from the equivalent size of the largest service-entrance conductor that would be required for the load served.

5. 250.64(A): aluminum and copper-clad aluminum grounding conductors may not be terminated within 18 in. of the earth, nor used where in direct contact with masonry or earth or subject to corrosive conditions. On a marina that rules them out for most electrode runs — use copper.

NEC Table 250.122 — Equipment grounding conductor

Minimum size EGC for grounding raceway and equipment, by the rating or setting of the overcurrent device ahead of the equipment. Read the amps column as not exceeding — a 30 A or 40 A device falls in the 60 A row.

OCPD rating, not exceeding A CopperAl or Cu-clad Al

1. 250.122(A): the EGC is never required to be larger than the circuit conductors supplying the equipment.

2. 250.122(B) — the one that bites on dock runs. Where the ungrounded conductors are increased in size for any reason other than the ampacity correction and adjustment of 310.15(B)/(C) — voltage drop on a long pier feeder being the usual one — the EGC must be increased in the same proportion by circular-mil area. Upsizing a feeder for a long run and leaving the ground at the table size is a common plan-review comment.

3. 250.122(F): each raceway or cable of a parallel installation gets a full-size EGC, sized from the OCPD, not divided among the sets.

4. Rows above 3000 A are deliberately omitted — published transcriptions of the aluminum column disagree at 4000/5000/6000 A. Read those from the printed code.

NEC Table 310.16 — Service entrance conductor & conduit legend

Wire sized for THWN copper. Conduit sized for rigid PVC Schedule 40 — resize for a different conduit. Ampacity per NEC Table 310.16 at 75°C, ≤3 current-carrying conductors, 30°C ambient. The grounding electrode column follows Table 250.66 above.

LabelGrounding electrode Conductors/conduitRunsMin. conduit Ampacity 75°CΦVoltage range
NEC Table 310.16 & 240.4(D) — Branch circuit & feeder legend with equipment ground

Wire sized for THWN copper. Conduit sized for rigid PVC Schedule 40 — resize for a different conduit. A feeder label with * on the plans indicates a neutral is not required. Ampacity is Table 310.16 at 75°C except the small-conductor rows, where 240.4(D) governs (#12 at 20 A, #10 at 30 A). Equipment grounds follow Table 250.122.

LabelConductors per conduit RunsMin. conduitAmpacity 75°CΦ Voltage range
NEC 400.5 — Portable power cable & cord, marina/boatyard feeder legend

Wire sized using NEC 400.5(A)(1)/(A)(2), green insulated ground. All conductors copper; wet-listed, approved for marina use, suitable for continuous submersion. Conduit sized for rigid PVC Schedule 40. A feeder label with * on the plans indicates a neutral is not required.

LabelCable RunsMin. conduitAmpacity 75°CΦ Voltage range
NEC Ch. 9, Table 1 — Conduit & tubing fill
Number of conductors/cablesCross-sectional area allowed
153%
231%
Over 240%

Note 1: based on common conditions of proper cabling and alignment where pull length and bend count are within reasonable limits; certain conditions may call for a larger conduit or fewer conductors.

Note 2: pulling three conductors/cables into a raceway can jam if the raceway ID to conductor/cable OD ratio is between 2.8 and 3.2. Four or more can jam too, but the probability is very low.

Quick Calcs — Single/three-phase amperage & voltage multipliers
(kVA × 1000) ÷ Volts = Amps
(kVA × 1000) ÷ (Volts × 1.732) = Amps
208V × 1.732360.256
480V × 1.732831.36

Voltage drop

Enter any two of wire size, distance, and amps — the third is solved for. Enter all three to check the actual drop for a known run.

Marina shore power load

Demand load for a marina/dock feeder or service — NEC Table 220.120 demand factor applied to shore power receptacles, plus general-use receptacle and pedestal lighting adders. (Same table as 555.6 in the 2020 NEC and 555.12 in the 2017 NEC.)

30A/125V receptacle connected load is counted at half its nameplate rating (15A) — see Basis tab for why. Confirm this matches the feeder configuration on this project before using the result.

Capacity around this result

Total demand load (A) for nearby receptacle counts, same math as above — a zoomed-in window of the firm's Marina Load Calculator sensitivity table.

Before you use a number from this app

This is an internal engineering aid, not a design of record. Every value that leaves this app on a drawing, a calculation package, or a submittal response must be independently checked and carries the reviewing engineer's professional judgment — not this software's. Report anything that looks wrong; do not work around it.

Basis — Site Visits

What this stores, and where

Projects, plan sets and sheet indexes are held on this device only. There is no server yet, nothing is uploaded, and nothing is backed up. A project that exists only on one phone is one lost phone away from gone — keep the source plan set in the project folder as always.

Storage is IndexedDB. iOS clears an origin's storage after roughly seven days unused unless the app has been added to the home screen; the Storage button on the Projects tab reports whether the browser has granted persistent storage, and it is worth checking before relying on a downloaded set in the field.

Sheet numbers are read, not known

On import, each sheet's name is taken from the best available source, in this order:

  • PDF bookmarks — a set published from Bluebeam or Revit carries one per sheet, named deliberately. Nested bookmarks resolve to the deepest entry, so a sheet inside a discipline folder is named after the sheet, not the folder.
  • Page labels, where a set defines them as sheet numbers. Usually absent, or just 1, 2, 3 — in which case they parse to nothing and are skipped.
  • The title block text — the bottom-right 38 × 32 % of the page, largest text first. This is guesswork and is labelled as such: the block is not always in that corner, the number is not always the largest text, and CAD often emits each character as its own text run so the number never appears as an intact string.

Which source answered is shown against every sheet at import. A scanned or plotted-to-image sheet with no bookmark comes back unnamed rather than guessed at. Nothing is written to storage until the list has been confirmed.

Sheet geometry and positions

Positions on a sheet are stored as fractions of the page MediaBox in the page's unrotated orientation, together with the page rotation and the sheet revision they were placed against — never as pixels. Pixels do not survive a different device, a different zoom, or a re-plot.

Distances use the page dimensions in points rather than the normalised fractions, because x and y are fractions of different dimensions. Any measured length also requires a per-sheet scale calibration; an uncalibrated sheet reports no measurement rather than a plausible wrong one.

Revisions

Markups stay bound to the sheet revision they were made on. When a newer revision is imported they are not moved automatically — they are reported as sitting on a superseded sheet, to be carried forward deliberately.

Server location

Each project records where it lives on the office server. Any form is accepted — a mapped drive (Z:\Projects\24-118), a network path (\\10.0.0.20\Projects\24-118), or a server name. Formatting is tidied, nothing is refused.

The path is stored as text. Setting it does not make anything sync, and the app never reaches the server.

Tapping the path copies it rather than opening a file manager. It cannot open one: browsers refuse to follow a file:// link from a web page, and no API exists to open Explorer or the Files app at a location. Copy, then paste into Explorer's address bar.

The path will also be printed on the punchlist report, so a reader knows which project folder a walk belongs to, and will be offered as the save location for exports on desktop, where the browser can be granted access to a folder once.

Folders

Plan sets are grouped into folders, one per visit. A new folder is named for today's date in YYYY-MM-DD form so folders list in date order; a second folder on the same day gets (2), then (3). Renaming is free text, but two folders in a project cannot share a name — compared case-insensitively, because two folders differing only in capitals is a trap rather than a distinction.

Sheets imported before folders existed appear under Unfiled. Nothing is hidden because a feature arrived later than the data.

Each sheet in the index carries a menu to renumber it, rename it, or delete it. A hand-entered number is recorded as manual rather than as something read from the file.

What deleting removes

Deleting a project removes its records, its folders, its plan set files and its queued changes from this device, and reports how much was freed. Deleting a single sheet keeps the plan set file as long as any other sheet still uses it, and drops the file once the last one is gone.

Both are local. When sync exists, freeing space on one device will never delete a project for anyone else.

How a sheet is drawn

A sheet is drawn in two layers. The whole sheet is rendered once at screen scale and stretched while you pan or pinch, so movement never exposes blank paper; when you stop, the visible area alone is re-rendered at full zoom and faded over the top.

Only the visible region is rasterised because a browser canvas has a hard area limit — about 16 megapixels on iOS, where exceeding it produces a blank sheet and no error. A 36 × 24 sheet at 4 × zoom would be roughly 107 megapixels, so rendering the whole page at working zoom is not possible at all. Where the limit is reached the render is softened rather than dropped.

Zoom is capped at 16 × the fit-to-screen scale. What you see is the PDF as published — no vector data is re-drawn, re-scaled or re-interpreted, so anything measured off a sheet is measured off the plotted geometry.

Not yet built

Markup, photos, the punch list and the report are still to come, as is any sync between devices. Importing a set, the sheet index and viewing a sheet are the whole of it today.

Third-party components

PDF reading uses Mozilla pdf.js (Apache 2.0), vendored into the app rather than loaded from a CDN so it works with no signal. Version recorded in vendor/pdfjs/VERSION.

Calculation basis — Mechanical

Psychrometrics

ASHRAE Handbook — Fundamentals, Ch. 1, Hyland & Wexler formulation. Saturation pressure by eq. 5 (over ice, below 32 °F) and eq. 6 (over water, 32–392 °F). Humidity ratio eq. 20/21, wet bulb eq. 33/34, dew point eq. 37/38, enthalpy eq. 30, specific volume eq. 26. Barometric pressure from the standard atmosphere, eq. 3.

Wet bulb reported is the thermodynamic wet bulb, solved iteratively. It differs slightly from a sling psychrometer reading.

Coil and process loads

Computed from actual mass flow — m = cfm / v using the entering specific volume — not the 4.5 and 1.08 standard-air shortcuts. At 80 °F/67 °F entering at sea level the true factors are 4.33 and 1.06, so the textbook shortcuts overstate capacity by about 3.7%. The gap widens with altitude and with entering temperature. The app shows the effective factors so you can see how far from standard air you actually are.

Duct

ASHRAE Handbook — Fundamentals, Ch. 21. Friction factor from the Colebrook-White implicit equation solved by bisection (not an explicit approximation). Absolute roughness values from Ch. 21 Table 1. Velocity pressure Pv = ρ(V/1097)², which reduces to (V/4005)² at 0.075 lb/ft³. Rectangular duct friction uses the circular equivalent diameter De = 1.30(ab)^0.625/(a+b)^0.25 with velocity taken from the actual cross-section.

Air density is computed for dry air at the entered temperature and elevation — the ASHRAE standard-air basis, which returns 0.0749 lb/ft³ at 70 °F and sea level. Humidity moves density only a few tenths of a percent across the normal supply-air range, and assuming a humidity would be an unstated guess, so the app does not. The density actually used is always displayed.

Fitting loss coefficients are typical values only. They are adequate for sizing a run in the field. They are not adequate for a design of record — use the ASHRAE Duct Fitting Database entry for the specific geometry.

Pipe

Darcy-Weisbach with Colebrook friction factor, water properties (density, kinematic viscosity, vapor pressure) interpolated against temperature from standard steam-table values. Hazen-Williams is offered as a cross-check and is only valid for water near 60 °F in the turbulent range — it will mislead you on hot water, glycol, and low-flow branches. Inside diameters are catalog nominal values; confirm against the specified product. Valve and fitting K values are typical; confirm against published Cv for balancing, control, and strainer components.

Fans and pumps

Affinity laws with speed exponents 1/2/3. Impeller trim uses exponents 1/2/3; a geometrically similar fan wheel family uses 3/2/5. Both degrade outside roughly 80–115% of the reference point, and the app says so.

Plumbing — domestic water and sanitary drain

Basis is the 2021 International Plumbing Code, not the older editions the firm's spreadsheets cite. Water supply fixture units from Table E103.3(2); demand from Table E103.3(3); drainage fixture units from Table 709.1; building drain and sewer capacity from Table 710.1(1). Confirm against the edition the AHJ has adopted and its local amendments — plumbing is one of the most heavily amended trades.

Cold + hot exceeds the total on purpose. Table E103.3(2) note (a) sets each branch at three-fourths of the fixture total, because the cold peak and the hot peak do not happen at the same instant. Each column is summed independently and the total column is never computed as cold + hot. This differs from the firm's existing spreadsheet, which computes its total column as qty × (cold + hot) — so app totals will read lower than that sheet for any fixture with both supplies.

Demand takes the next tabulated row at or above the load rather than interpolating, which is the conservative reading and matches the spreadsheet's lookup behaviour; the interpolated figure is computed too so the two can be compared. Loads below the first row of a column use that first row and say so; loads past the last row return nothing rather than extrapolating. The flushometer-valve column is not tabulated below 5 wsfu. Hot water piping always reads the flush-tank column, per that column's own note, because it serves no flushometer valves. Continuous flows — irrigation, cooling make-up — are added in gpm after the conversion, never as fixture units.

Pipe size is the smallest nominal size whose velocity stays within the entered ceiling (default 8 ft/s), using catalog inside diameters; the velocity actually achieved is always shown. This is the field shortcut, not the IPC Appendix E segmented-loss method — it does not look at available pressure, developed length, meter and backflow losses, or elevation. For a service of record, run the pressure budget. The firm's spreadsheet pairs its Hunter's-curve lookup with a fixed Type L copper size column; results here may differ by a size where that table's implied velocity differs from the ceiling you enter.

Sanitary sizes are reported at 1/2, 1/4 and 1/8 in./ft from Table 710.1(1), including note (a): any building drain serving a water closet is at least 3 in. Sizes below 3 in. are not tabulated at 1/8 in./ft at all. The 4 in. minimum building sewer and the "not over two water closets on 3 in." limit that the firm's legacy SBCCI-based sheet carried are not in current IPC Table 710.1(1); the app flags the 4 in. question rather than enforcing it. Fixture-unit counts here size building drains, sewers, and horizontal branches of the building drain — not stacks, which use Table 710.1(2), and not vents.

Fixtures marked "assumed" are not in the cited IPC table. Hose bibbs, ice machines, bar sinks, clinical sinks and low-flow urinals carry values brought over from the firm's spreadsheets under Table E103.3(2) note (a) and Table 709.2, which permit assigning an unlisted fixture by comparison with a listed one of similar flow and frequency, or by its drain/trap size. The commonly quoted 2.5 wsfu hose bibb is a UPC Table 610.3 value, not IPC. Those rows are engineering assumptions and the reviewing engineer confirms them; the app labels every one rather than hiding it.

Calculation basis — Electrical

Electrical — voltage drop

DC conductor resistance from NEC Chapter 9, Table 8 (uncoated and coated copper, aluminum; solid conductors only through 8 AWG, matching field practice under 310.106(A)). Ampacity from NEC Table 310.16 at the selected 60/75/90 °C column, 30 °C ambient, ≤3 current-carrying conductors — no 310.15(B)/(C) correction or adjustment factors are applied; apply those separately if they govern the actual installation. Voltage drop is Vdrop = R/ft × A × ft × multiplier, multiplier 2 for single phase (current travels out on one conductor and back on the other, so the drop sees twice the one-way resistance) or √3 for three phase (the 120° phase relationship between conductors reduces this from 2 to √3) — the standard 2 × K × I × D formula, matching the firm's SuperiorVDCalc workbook. Provide any two of wire size, distance, and amps and the third is solved for; providing all three checks the actual drop for a known run.

Electrical — marina shore power load

Demand factor by total receptacle count per NEC Table 220.120 (2023 NEC). This citation was previously shown in this app as 555.12(B), which is the 2017 designation; the table became Table 555.6 in the 2020 NEC and Table 220.120 in the 2023 NEC. The bracket values are identical across all three editions, so no calculated result changed — only the reference. Cite the designation belonging to the edition the AHJ has adopted. Connected load: a 50A/125-250V receptacle counts at its full 50A nameplate rating. A 30A/125V single-pole receptacle counts at 15A, half its nameplate rating — a firm convention, confirmed for this app: the 50A receptacles are two-pole 240V loads that draw on both ungrounded conductors of the shared feeder, while a 30A/125V receptacle is single-pole and loads only one of the two conductors, so on a balanced multiwire feeder carrying both load types its contribution to either conductor is taken as half of nameplate. This assumption is specific to a shared 120/240V multiwire feeder mixing both receptacle types — confirm it still applies to the feeder configuration on the project before using the result. A metered installation (individual kWh submeter per slip, NEC 220.120 criteria) gets the 0.9 multiplier per the firm cheat sheet's note 2. General-use 20A/125V duplex receptacles are counted at 180 VA each (Table 220.14(I)) with the Table 220.44 demand factor (first 10 kVA at 100%, remainder at 50%). Pedestal lights are counted at 9 VA each ×1.25 continuous-load factor (210.19(A)/215.2). All electrical amp figures assume a 240V basis for the duplex/pedestal-light adders, matching the source workbook.

The "Capacity around this result" grid on the Marina tab is a sensitivity sweep, not a second calculation — every cell calls the same demand-load function above at a nearby qty50/qty30, the way the source workbook's "Demanded Load" sheet sweeps receptacle counts against Max Amps and conditionally formats the result. It is a window, not the full sheet: the "Range to check" field sets how many receptacles up or down from the current selection are shown on each axis (default ±2), and green/red mean the same over/under-capacity comparison against Max Amps as the pass/fail note above it, not an independent check.

Not included by design: AIC/available fault current rating and standard breaker-size selection are not implemented as calculators here — use the reference legends for conductor/conduit selection and confirm fault current and breaker selection against the project's actual utility/transformer data and the panel schedule.

Reference legends (service entrance, portable cable, and branch circuit/feeder tables) are transcribed from the firm's cheat sheet and cross-checked row by row against this app's own Table 310.16 data — see the validation suite, section 25. They are quick-reference only; the project's issued conductor/conduit schedule governs.

Electrical — grounding reference tables

NEC Table 250.122 (equipment grounding conductors) and NEC Table 250.66 (grounding electrode conductors) are transcribed reference tables, 2023 NEC, not calculators — the app does no grounding sizing of its own. Each was transcribed against two independent published sources and then cross-checked against this app's own NEC Chapter 9 Table 8 resistance data: for every row, the aluminum entry is verified to be within 25% of the copper entry's resistance per 1000 ft, which is the physical relationship both tables are built on and an independent check on the transcription rather than a restatement of it. See the validation suite, section 32.

Table 250.122 is truncated at 3000 A on purpose. Published transcriptions of the aluminum column disagree at the 4000/5000/6000 A rows (750 vs 800 kcmil, 1200 vs 1250 kcmil), and the disagreement was not resolvable without the printed code, so those rows were omitted rather than guessed. Nothing the firm designs approaches that range.

Neither table's adjustment rules are automated. In particular 250.122(B) — proportional upsizing of the EGC when the ungrounded conductors are increased for voltage drop — applies routinely to long pier feeders and must be applied by hand. The 250.66(A)/(B)/(C) caps for rod, concrete-encased and ground-ring electrodes likewise are stated as notes only.

Validation

The calculation engine ships with a test suite of 272 assertions checked against published reference values — ASHRAE psychrometric tables, the ASHRAE duct friction chart and equivalent-diameter tables, the Moody diagram, AHRI rating conditions, steam tables, copper tube and Schedule 40 friction tables, NEC Chapter 9 Table 8, Table 310.16, Table 250.122 and Table 250.66, IPC Tables E103.3(2), E103.3(3), 709.1 and 710.1(1), and NIST unit factors. Pipe results are cross-validated between Darcy-Weisbach and Hazen-Williams, which share no code; electrical reference legends are cross-validated against the app's own ampacity table; and the IPC fixture-unit transcription is cross-checked against Table E103.3(2)'s own three-fourths rule, which is an independent constraint on the numbers rather than a restatement of them.

Run it with node validation.test.mjs. Every assertion names its source. Treat a failing suite as a stop-work condition on this app, and re-run it after any change to engine.js.

Known limitations, stated plainly: no glycol or steam properties; no duct or pipe insulation heat gain; no acoustics; SMACNA pressure-class and gauge selection is not implemented; the psychrometric chart is drawn for the entered elevation only; electrical calculators assume the 2023 NEC article/table numbers cited above and do not check 310.15(B)/(C) correction/adjustment factors, conduit fill, or AIC/breaker sizing; and the plumbing tool sizes building drains and sewers only — no stacks (IPC Table 710.1(2)), no vents, no traps or trap arms, no grease or sand interceptors, no storm drainage, and no Appendix E pressure budget for the water service.

About