Features

Functionally Correct Project Management

Every feature in Consequent is designed to eliminate ambiguity and promote shared understanding across your team. For the planners, we strive to make editing fluid and intuitive, and visuals clean and concise.

Core Concepts

Tasks float unless constrained to start after a specific date

Start No Earlier Than (SNET)

We have sought to collapse elements with multiple meanings into simpler constructs wherever possible. Start (and End) dates exist in other systems confusingly as inputs in some contexts and calculated results in others (sometimes reciprocally updated when duration is changed). They are only derived elements in Consequent. Tasks by default start ASAP, unless a specific "Start No Earlier Than" (SNET) date is required, entered as a constraint.

Key Principle:

By default, work begins as soon as dependencies are satisfied. SNET dates are explicit constraints, not artifacts with dual meanings depending on context.

End dates are not inputs

Tasks don't have "end dates" — they have FNLT alarms

We have removed the end date with a dual behavior (entered vs calculated) and replaced it with duration as the sole input (with convenience methods to calculate and roll-up durations). We have also changed the "Finish No Later Than" (FNLT) from a constraint to an alarm. This is different from the blocking behavior of other systems. Consequent flags and enumerates FNLT violations and explains their drivers, instead of blocking the user from making a violating change that may be necessary, but whose downstream effects cannot be simultaneously addressed. This more closely models real-world project scheduling workflows.

Want to "pin" a date?

Set the SNET and FNLT to the same date. This makes your constraint explicit and auditable.

The Hour is Fundamental

Anything less is noise in 99% of cases

Our experience informs us that the hour is the right unit of measure for project tasks. Smaller units add complexity without value for the audience we serve. Consequent has no 1.999 hours, no 3.9999 days. Everything is x days and y hours.

For Instant Events:

Use milestones for "instant in time" tasks like permits, approvals, and go-live moments.

Dependency Heuristics

Simple, logical rules that eliminate opaque relationships

Task Groups and Dependencies

Task groups ("parents") are not valid predecessors or successors. Dependencies only connect leaf tasks so the logic stays explicit.

Model Phase Gates Explicitly

If a phase must finish before another begins, link the successor to a specific child task or a dedicated milestone like "Phase A complete."

Tasks as Both

Individual tasks can be predecessors or successors of other tasks. Keep dependencies between leaf tasks for clarity.

Why These Rules Matter

Parent tasks have no intrinsic work — their dates are derived from children. Allowing dependencies on parents would silently expand into many child-level links and make structural edits change scheduling logic. Keeping dependencies on leaf tasks preserves explicit, auditable intent.

Explicit wait activities

A deliberate design choice

In practice, we observe that the same real-world situation is modeled in incompatible ways across different planners and teams:

Option 1

A single activity: "setting + curing"

Option 2

Activity + undocumented lag

Option 3 ✓

Two explicit activities: "setting" → "curing"

Why Prefer Explicit Activities?

All three describe the same reality, but only (1) and (3) are explicit and communicable. Lag introduces a second, hidden language for expressing time, fragmenting shared understanding and making plans harder to read, explain, and lint.

Consequent encourages explicit temporal activities. This slightly increases verbosity, but improves clarity, auditability, and consistency across teams. To offset verbosity, Consequent provides strong visual grouping and compression, so explicit phases remain readable without hiding meaning.

Rare constraint types in traditional PM tools hide what's actually happening. Consequent maps these cleanly to visible, named milestones.

Visible on the Gantt

Milestones appear prominently, not buried in constraint dialogs

Can be named

"Permit issued", "Go-live allowed" — explicit and communicable

Participate in dependencies

Milestones work with the same dependency logic as tasks

Make schedule pressure explicit

Everyone can see critical moments in the timeline

Performance & Global Infrastructure

Built for speed, reliability, and global distribution

Ultra-fast and state-of-the-art compiled F# engine.

Multiple edge deployments with independent databases ensure low-latency performance and automated failover across regions.

Trading Shorthand for Shared Meaning

Enterprise tools have become powerful over decades of feature accumulation, but also carry legacy ambiguities and configuration overload. Consequent aims to be a poweful and streamlined tool, highly useful from day 1.