Support
Create and edit a run
New run starts empty. Add station accepts a distance along the run, existing elevation, design elevation and a note. Saved stations are sorted by increasing distance; duplicate stations are refused. Profile compares the two lines. Tap near a plotted station, use Previous station / Next station, or select a schedule row. Edit station changes its values. Stake card opens a large single-station view with Previous and Next controls. The optional West swale to inlet example is fictional and fully editable.
Read the calculations
Cut/fill equals design minus existing: positive is fill, negative is cut. For each segment, design fall equals earlier design minus later design; slope percent equals that fall divided by station distance, times 100. The entered minimum is your planning target, not an engineering recommendation. Reverse, Flat and Below target are flagged. Meets entered target only describes the entered numbers; it does not establish drainage performance. Profile axes show station and elevation units, with an automatic vertical scale factor. The drawing is not true aspect.
Apply a grade line
Run actions → Apply grade line requires two stations. Enter the first design elevation and fall percentage, then Review. The confirmation shows the proposed end elevation. Apply replaces design levels at all stations while keeping existing levels, station positions and notes. Positive fall descends as station increases; negative fall rises. Review the resulting segment checks.
Units and reference
Run settings controls the name, datum text, notes, entered minimum and display/entry units. Metres and international feet are supported; one international foot equals exactly 0.3048 metres. Changing display units preserves physical values. Free-form datum text stays as entered. Historical US survey feet are not supported. This app does not convert coordinate reference systems or discover a benchmark.
Files and backups
Handoff → Create PDF + CSV + JSON creates Grade-sheet.pdf, Stations.csv and GradePin-run.json from the current run hash. Preview each file, choose Save file and complete the destination picker. File saved appears only after the output stream closes. Share opens a chooser and does not establish delivery. Four export sets are retained per run; a fifth replaces the oldest local set. Earlier run revision files keep their original contents and are labelled. External saved copies remain separate.
Import run JSON accepts an Android portable backup or an original iOS single-run JSON up to 4 MiB. It creates independent identifiers without overwriting another run. Original iOS values are interpreted as metres and stations are sorted; confirm datum and units. Unsupported formats and invalid values are refused. Keep independent JSON backups before clearing app storage or uninstalling.
Limits and recovery
The library holds 15 runs, 200 stations per run and four local export sets per run. Export storage is limited to 128 MiB. Stations are non-negative, at most 10,000,000 metres and separated by at least 0.000001 metre; elevations are within ±100,000 metres. Entered minimum is 0–100%; a generated line accepts −100 to 100% and must stay within elevation bounds. CSV carries six decimal places; on-screen and PDF levels normally show three. The JSON preserves numeric values.
Delete run removes its local data and exports. Clear local exports preserves the run. Uninstalling or clearing app storage removes private work, and device backup is disabled. A library or export that fails verification is protected from overwrite. Save recovery ZIP preserves raw state and local files before an explicit reset. It is an inspection archive, not automatic restore; valid portable JSON files can be extracted and imported.
Contact
Email maga40@naver.com with the app version and reproduction steps. Avoid sending confidential site plans unless necessary and authorized.