In construction and enterprise PMO Steering Committees, two constraints constantly collide:
- Standard Gantt charts hide chronic drift: When a milestone slips 3–5 days every review cycle, baselines often get overwritten ("watermelon reports" — green on the outside, red on the inside).
-
Strict corporate IT lock-down:
.xlsmmacros are blocked by Mark-of-the-Web (MOTW), and uploading sensitive schedule spreadsheets to third-party cloud SaaS tools is prohibited.
To solve both problems simultaneously, I built SlipLine — a dual-core offline schedule analytics suite combining a 100% Zero-VBA .xlsx workbook with a single-file, zero-dependency offline HTML studio.
🟢 Try the Live Browser Sandbox (No Download Required)
👉 Live Interactive Demo (GitHub Pages): https://yang233l.github.io/slipline/
(Pre-loaded with Construction & IT/PMO sample datasets — scrub the T00→T12 timeline, spotlight trajectories, and toggle the Client-facing display view right in your browser.)
How the Dual-Core Architecture Works
1. The Excel Core (.xlsx, 100% Zero-VBA)
Instead of fragile VBA macros or structured table references that break across desktop Excel versions, the workbook uses a Horizon-Wide Entry layout:
- You record forecast dates across review periods (
T00..T12) on a single row per milestone. - Classic desktop-compatible formulas (
INDEX/COUNTA,NETWORKDAYS) automatically extract the latest forecast, compute consecutive slip streaks, separate Original Baseline vs. Approved EOT Baseline, and mirror the matrix into a 45° Milestone Trend Analysis (MTA) XY scatter chart.
2. The Single-File Offline Studio (.html, CSP default-src 'none')
For interactive Steering Committee presentations, the companion SlipLine_Studio.html runs 100% locally in any modern browser with zero network requests:
-
Zero-Dependency Local
.xlsxParsing: Uses the browser's nativeDecompressionStream('deflate-raw')API to unzip and parse local.xlsxand.csvfiles directly in memory without external JS libraries. -
Time-Lapse Playback (
T00 → T12): Watch milestone trajectories climb away from the 45° reference line (slipping) or flatten out (stabilizing) across review periods. - Internal vs. Client-Facing View Toggle: Switch display layers for internal review vs. client printouts, and print a clean single-page PDF brief.
📦 Grab the Free Starter or Full Suite
If you'd like to use it on your own projects, there is a Free 8-Milestone Starter Workbook ($0 Lite .xlsx) alongside the full Pro Dual-Core Suite on Gumroad:
👉 Download SlipLine on Gumroad: https://slipline.gumroad.com/l/suite
(Note: The public GitHub Pages sandbox is sample-data-only; local .xlsx/.csv import, CSV export, and What-If mitigation sliders are included in the full offline Studio file. Client view is a display-layer toggle rather than file-level encryption.)
Happy to answer any questions about generating desktop-safe OOXML charts with openpyxl or parsing .xlsx archives with native Web Streams!
Top comments (1)
Parsing .xlsx directly with DecompressionStream('deflate-raw') under a strict default-src 'none' CSP solves both the macro block and the no-upload constraint cleanly.
One ZIP quirk that trips up zero-dependency browser parsers is bit 3 (the data descriptor flag) in local file headers. Streaming exporters like Google Sheets, LibreOffice, and openpyxl in write-only mode often write 0 for compressed_size in the local header and append the actual size after the deflate stream. Reading offsets and sizes from the End of Central Directory record at the tail of the buffer handles both standard and streamed .xlsx files.
For the single-page PDF brief, pairing @page landscape margins with print-color-adjust: exact also stops Chromium and Safari from dropping trajectory fills and status colors during Print to PDF.