Skip to content

Repository files navigation

Unit Forecasting

A native macOS application for resource and project forecasting built for Arcsen. Plan weekly capacity, track utilisation, and export forecasts to Excel — all in a fast, offline-first desktop app.


Features

  • Resource Grid — allocate hours per resource per project per week; inline cell editing; right-click to clear; drag-to-bulk-set
  • Team Overview — see all team members' committed hours and utilisation side by side
  • Projects Overview — filter by team or custom resource set; colour-coded utilisation per project per week
  • Per-Project View — resource-level allocation breakdown for any single project
  • Capacity Management — default weekly capacity per resource; per-week overrides; start/end date support
  • Bulk Apply — apply a fixed hours value across a date range for any resource/project combination
  • Teams — group resources into colour-coded teams
  • Fiscal Year selector — FY runs February → January; weeks assigned to months by the Thursday rule (ISO)
  • Excel Export — exports the full resource grid to .xlsx
  • Persistent storage — data saved to ~/Library/Application Support/UnitForecasting/data.json; forward-compatible decoder

Requirements

Requirement Version
macOS 13 Ventura or later
Architecture Apple Silicon (arm64)

Installation

Option A — Pre-built app (recommended)

  1. Download UnitForecasting.zip from the latest release.
  2. Unzip it — you'll get UnitForecasting.app.
  3. Drag UnitForecasting.app to your Applications folder (or keep it on the Desktop).
  4. First launch only: macOS Gatekeeper will block the app because it is not notarised.
    • Right-click (or Control-click) UnitForecasting.app → Open.
    • Click Open in the security dialog.
    • The app will open normally on every subsequent launch.

Option B — Build from source

Prerequisites

  • Xcode Command Line Tools
    xcode-select --install
    

Steps

# 1. Clone the repository
git clone https://github.com/CobergTech/DeliveryOperations.git
cd DeliveryOperations

# 2. Get the SDK path
SDK=$(xcrun --show-sdk-path --sdk macosx)
SRC=UnitForecasting

# 3. Compile
swiftc \
  "$SRC/Models.swift" "$SRC/WeekGenerator.swift" "$SRC/AppStore.swift" \
  "$SRC/GridHelpers.swift" "$SRC/GridSelection.swift" \
  "$SRC/ContentView.swift" "$SRC/ResourceGridView.swift" "$SRC/TeamOverviewView.swift" \
  "$SRC/ProjectsOverviewView.swift" "$SRC/ProjectOverviewView.swift" \
  "$SRC/ManageProjectsView.swift" "$SRC/ManageResourcesView.swift" \
  "$SRC/BulkApplyView.swift" "$SRC/BulkCapacityView.swift" \
  "$SRC/AddEditProjectView.swift" "$SRC/AddEditResourceView.swift" \
  "$SRC/ManageTeamsView.swift" "$SRC/ExcelExporter.swift" \
  "$SRC/UnitForecastingApp.swift" \
  -sdk "$SDK" -target arm64-apple-macosx13.0 -parse-as-library -O \
  -o build/UnitForecasting.app/Contents/MacOS/UnitForecasting

# 4. Copy to Desktop
cp -R build/UnitForecasting.app ~/Desktop/
open ~/Desktop/UnitForecasting.app

Note: The build/UnitForecasting.app bundle (with Info.plist and AppIcon.icns) must already exist. It is included in the repository.


Data & Storage

All data is stored locally in JSON format:

~/Library/Application Support/UnitForecasting/data.json

No network connection is required. No data leaves your machine.


Fiscal Year Convention

  • FY YYYY/YY runs from 1 February to 31 January.
  • Each calendar week is assigned to the month containing its Thursday (ISO 8601 standard).
  • Week labels are unique across the full fiscal year (e.g. CW06, CW07 …).

Project Structure

UnitForecasting/
├── Models.swift                 Data models (Project, Resource, Team, AppData)
├── AppStore.swift               ObservableObject store; JSON persistence
├── WeekGenerator.swift          FY week + month group generation
├── GridHelpers.swift            Shared PreferenceKey for scroll offset
├── GridSelection.swift          Drag-select state for the allocation grid
├── ContentView.swift            Root NavigationSplitView + sidebar
├── ResourceGridView.swift       Per-resource allocation grid
├── TeamOverviewView.swift       Team-wide utilisation overview
├── ProjectsOverviewView.swift   Multi-project overview with team/resource filter
├── ProjectOverviewView.swift    Per-project resource allocation view
├── ManageProjectsView.swift     Add / edit / delete projects
├── ManageResourcesView.swift    Add / edit / delete resources
├── ManageTeamsView.swift        Add / edit / delete teams
├── AddEditProjectView.swift     Project form sheet
├── AddEditResourceView.swift    Resource form sheet
├── BulkApplyView.swift          Bulk-apply hours sheet (resource view)
├── BulkCapacityView.swift       Bulk-set capacity sheet
├── ExcelExporter.swift          XLSX export
└── UnitForecastingApp.swift     App entry point

License

Internal use — Arcsen © 2025. All rights reserved.

About

Unit Forecasting macOS app for resource and project capacity planning

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages