Citrus replaces the portfolio spreadsheet with a live view of every engagement, and gives each one the plan artefacts people actually use: a Gantt, a task plan, a RACI, milestones and billing, a governance cadence and a risk register that keeps itself current.
No install. Sample portfolio of 29 projects across 18 clients, ready to click through.
3,412 hours booked at 92 percent complete against an estimate of 2,180. Forecast total 3,709.
| Client and project | RAG | Phase | Progress | Go-live | Hours and burn | Updated |
|---|---|---|---|---|---|---|
| Hartwell FoodsFull platform implementation | Prod deployment | 92% | 28 Sep 2026 | 3,412 / 2,180 +57% | 2d | |
| Arcwell SemiconductorsApproval rules change request | UAT | 80% | 14 Oct 2026 | 640 / 700 +12% | 4d | |
| Thornton MaterialsUpgrade to 9.2 | QA | 65% | 02 Nov 2026 | 418 / 520 on pace | today | |
| Halverson BioMulti-office implementation | Imp/Dev | 45% | 11 Jan 2027 | 1,204 / 2,940 unknown | 21d | |
| Pemberton LegalPayments integration | Design | 15% | 23 Feb 2027 | 96 / 480 on pace | 1d |
Why a portfolio view
Every portfolio tracker starts as one row per project and ends up as a file nobody trusts. These four things go wrong in every one of them, and each has a fix that has to live in the tool rather than in a reminder email.
Nothing in a spreadsheet distinguishes green from not-updated-since-last-quarter. Citrus treats update age as a status of its own: past a fortnight the health flips to unknown and the project surfaces in the attention feed, whatever the last person typed.
Schedule gets filled in because it is obvious. Scope, quality and risk go blank because they are three more columns of typing. Citrus makes each of the four aspects three clicks, rolls them up by a rule you set, and keeps the history so you can see a project turning before it turns.
A project at 40 percent complete that has burned 60 percent of its estimate is not under budget, it is 50 percent past pace. Citrus measures burn against phase completion, which is why the sample portfolio reads plus 19 percent rather than a comfortable minus 22.
An implementation plus two change requests is three rows, and nobody sees the whole relationship. Citrus rolls projects up by client so you can answer what is happening at Hartwell Foods without reading three lines and adding them in your head.
Seven views on every project
Open any row and you get the artefacts a project manager would otherwise build by hand in a deck and a workbook. They are generated from a playbook, scheduled between kickoff and go-live by code rather than guesswork, and then every field is editable in place.
One page a delivery lead can read in ten seconds: where the project is, whether it will land, and who to ask.
| Schedule | Red | slipped 2 weeks in UAT |
| Scope | Amber | 2 changes unpriced |
| Quality | Green | defect count falling |
| Risks and issues | Amber | 1 open, owner assigned |
Drawn from the task dates, so it is never a separate picture that drifts out of date. Move a date in the task plan and the bar moves.
Generated from a playbook for the project type and size, then stretched between the kickoff and go-live dates you gave. Every field edits in place.
| Task | Owner | Start | End | Status |
|---|---|---|---|---|
| Confirm approval rule set | Functional lead | 14 Sep | 25 Sep | Complete |
| Configure entity hierarchy | Consultant | 21 Sep | 09 Oct | Complete |
| Load reference data | Data migration | 05 Oct | 23 Oct | In progress |
| Client portal branding | Client IT | 19 Oct | 30 Oct | At risk |
| Sign off configuration | Process owner | 02 Nov | 06 Nov | Gate |
The argument you would otherwise have in week nine, settled in week one. Ten roles across both sides, with the standard matrix as a starting point.
| Activity | Sponsor | Client PM | PM | Lead | Consultant |
|---|---|---|---|---|---|
| Steering and escalation | A | R | R | C | I |
| Approve configuration | I | A | C | R | R |
| Data extract and cleanse | I | C | I | A | R |
| UAT sign-off | C | A | R | C | I |
| Go-live decision | A | R | R | C | I |
The gates in the plan carry the money. Move a gate date and the invoice date moves with it, which is the whole point of keeping them in one place.
| Milestone | Date | Split | Amount | Status |
|---|---|---|---|---|
| Kickoff and mobilisation | 14 Sep 2026 | 30% | $48,600 | Paid |
| Configuration signed off | 06 Nov 2026 | 30% | $48,600 | Invoiced |
| UAT accepted | 04 Dec 2026 | 30% | $48,600 | Pending |
| Hypercare exit | 22 Jan 2027 | 10% | $16,200 | Pending |
| Total | 100% | $162,000 |
Who meets, how often, and what happens when something needs a decision. Written down once, so nobody has to invent an escalation path mid-crisis.
| Forum | Frequency | Attendees | Purpose |
|---|---|---|---|
| Daily stand-up | Daily, 15 min | Delivery team | Blockers only |
| Sprint call | Weekly, Tue | Both sides | Progress and next sprint |
| Change board | Fortnightly | PM, sponsor | Price and approve changes |
| Steering | Monthly | Sponsors | Budget, scope, risk |
| Go-live readiness | Gate | All | Go or no-go |
The register seeds itself from the weekly RAG, the burn rate and the update age, so it is never the empty tab at the back of the deck.
| Risk | Owner | Severity | Mitigation |
|---|---|---|---|
| UAT resources not released | Client PM | High | Named testers by 30 Sep |
| Burn 57% past pace | PM | High | Re-estimate at change board |
| Payments feed unproven | Tech lead | Medium | Dry run in week 9 |
| Two changes unpriced | Sponsor | Medium | Price or drop by 10 Oct |
| Holiday season freeze | PM | Low | Go-live moved ahead of it |
Who sees what
Rights come from the role first. An admin can then override a single permission for one person without moving them off their role, which is what you need the first time a sponsor asks to see revenue and nobody else should.
Sees the whole portfolio for context, edits the projects where they are named PM. Enters the weekly RAG, maintains the plan, creates new projects. No access to money or to other people's rows.
The sponsor, the account lead, the person who wants the answer without being handed the file. Every screen is visible and every control is inert, so there is no chance of an accidental edit.
Everything, plus the access screen: role defaults across fifteen permissions, per-person overrides, adding and removing people. The one right an admin cannot give away is the ability to manage access.
Getting started
Paste or import your tracker. Citrus maps the columns it recognises: client, project, type, size, PM, phase, kickoff and go-live dates, estimate and actuals. Anything it cannot map it shows you rather than dropping.
Pick a project type and size and the plan generates from the matching playbook, scheduled between your kickoff and go-live dates. Then you correct it, because a generated plan is a starting point and not an answer.
Three clicks per project sets the four aspects. Hours, phase and the comment sit on the same row. That is the whole ritual, and the portfolio, the attention feed and every report follow from it.
Pricing
Because the whole point is that everyone looks at the same portfolio. Charging for projects would push you back into keeping some of them in a spreadsheet.
One project manager or a small delivery team finding its feet.
A delivery function where somebody has to answer for all of it.
Procurement is involved and the security questionnaire is forty pages.
Billed monthly, cancel any time. Prices shown in US dollars.
Request a walkthrough
We load your own projects into a private workspace before the call, so you are looking at your portfolio and not a demo one.
The call is the product on screen. If it does not fit how you work, that is a useful twenty minutes for both of us.
The live demo is the full product with a sample portfolio. Sign in as any of the three roles and see what changes.
Also from Kratoscode
Kratoscode builds focused tools for teams that have outgrown the spreadsheet but do not want a platform. Each one does a single job properly.
Every project you run on one screen, with a Gantt, task plan, RACI, milestones, governance and a live risk register on each one.
Clause CLM clauseclm.comContract lifecycle management for growing teams. Contracts in one place, risky clauses flagged, renewal dates tracked before they pass.
Kratoscode kratoscode.comThe AI operations control plane. Deploy, monitor and govern every model from one place, with cost controls and drift detection.