Built by Emmanuel Tsimese
TFV
Budget Monitoring Tool
Sign in to continue
FY {{ loginYear }} · Live
Maintenance in progress
{{ maintenanceMsgV }}
Username
Password
{{ loginError }}
Signing in…Sign in
No account yet? Request access →
TFV
Request access
Finance reviews every request. Once approved, the system emails you a password to sign in with — you set nothing here.
Full name
Work email
Position / role
Programme / unit
What do you need to do?
{{ w.tick }}
{{ w.title }} {{ w.sub }}
Why do you need access?
Submit request
Already have an account? Sign in
TFV
{{ p.label }}
FY
⌕ Search activities, POs, travellers…
{{ unread }}
{{ userAvEmojiChar }}
{{ userInitials }}
{{ userName }}
{{ userTitle }}
{{ t.label }}
{{ reqListTitle }}
{{ reqListSub }}
+ New budget request
Delete a budget request
removes the request and all of its MOD, PO and Travel lines · confirmation required
Delete…
Requested
{{ myTotal }}
Approved
{{ myApproved }}
Awaiting decision
{{ myPending }}
Activities
{{ myCount }}
CODE
ACTIVITY
PROGRAMME
TOTAL (€)
STATUS
OBLIGATION BY
{{ r.code }}
{{ r.name }}
{{ r.programme }}
{{ r.total }}
{{ r.status }}
{{ r.deadline }}
Show more activities ↓
Read-only view — the full original request as submitted. Nothing here can be changed.
← Back to Approval Console
{{ formTitle }}
{{ formSub }}
Activity Code is generated automatically as YY-PROG-NN-MMM · {{ formCodePreview }}
Modifying {{ modifyCode }} — existing budget lines are loaded exactly as they are in the logs. Submitting returns the activity to the ED as Under Revision. A reason is required below.
ACTIVITY DETAILS
Year *
Quarter *
Programme *
Activity Type *
Activity Name *
Requestor *
Location *
Date Requested *
Obligation By *
Activity Start *
Activity End
Justification *
Notes
Reason for Modification *
Requestor, Location and every line dropdown pull from the central lists — new options are added in Admin → Dropdowns and appear here instantly.
{{ s.title }}
{{ s.sub }}
{{ s.subtotalLabel }} {{ s.total }}
+ Add line
{{ h }}
{{ c.v }}
{{ c.v }}
×
No {{ s.short }} lines — add one if this activity needs them.
MOD SUBTOTAL {{ totMOD }}
PO SUBTOTAL {{ totPO }}
TRAVEL SUBTOTAL {{ totTRV }}
ACTIVITY TOTAL {{ totALL }}
Cancel
Save as draft
{{ submitLabel }}
{{ formError }}
Modify a previous request
{{ m.code }}
{{ m.name }}
{{ m.programme }}
{{ m.total }}
{{ m.status }}
Load →
{{ detBackLabel }}
{{ detCode }}
{{ detStatus }}
{{ detName }}
{{ detMeta }}
Modify this request
BUDGET SUMMARY
{{ s.label }}
{{ s.value }}
BUDGET LINES ({{ detLineCount }})
SOURCE
DESCRIPTION
VENDOR / ROUTE
QUARTER
EUR
{{ l.src }}
{{ l.desc }}
{{ l.vendor }}
{{ l.quarter }}
{{ l.eur }}
JUSTIFICATION
{{ detJust }}
STATUS TIMELINE
{{ t.icon }}
{{ t.title }}
{{ t.sub }}
DISCUSSION
{{ c.initials }}
{{ c.by }} · {{ c.when }}
{{ c.text }}
No questions yet.
Send
Replies notify the other side by email — questions instead of rejections.
{{ t.label }}
Viewing FY {{ fyV }} — change it here or in the header; it applies to every tab
Executive Overview
pick a data scope, filter, and click any row to drill into the records behind it
{{ exClassicLabel }}
{{ c.label }}
widgets:
{{ w.label }}
{{ k.label }}
{{ k.value }}
Programme breakdown click a row to drill down
PROGRAMME
# LINES
PROJECTED (€)
OBLIGATED (€)
SHARE OF SCOPE
%
{{ r.name }}
{{ r.n }}
{{ r.p }}
{{ r.o }}
{{ r.pct }}
Funding allocation
FUNDING SOURCE
# LINES
PROJECTED (€)
OBLIGATED (€)
SHARE OF SCOPE
%
{{ r.name }}
{{ r.n }}
{{ r.p }}
{{ r.o }}
{{ r.pct }}
Commitment items
COMMITMENT ITEM
# LINES
PROJECTED (€)
OBLIGATED (€)
SHARE OF SCOPE
%
{{ r.name }}
{{ r.n }}
{{ r.p }}
{{ r.o }}
{{ r.pct }}
By data tab
DATA TAB
# LINES
PROJECTED (€)
OBLIGATED (€)
SHARE OF SCOPE
%
{{ r.name }}
{{ r.n }}
{{ r.p }}
{{ r.o }}
{{ r.pct }}
Top 10 lines in scope click to open the activity
SOURCE
CODE
DESCRIPTION
PROJECTED (€)
OBLIGATED (€)
{{ r.src }}
{{ r.code }}
{{ r.desc }}
{{ r.p }}
{{ r.o }}
MOD advances status
{{ k.label }}
{{ k.value }}
Open MOD Advances →
Budget Dashboard
YEAR
{{ k.label }}
{{ k.value }}
{{ k.sub }}
{{ progTitle }} — projected split into MOD · PO · Travel, with obligated, variance and implementation rate
{{ h.label }}
{{ r.name }}
{{ c.v }}
TOTAL
{{ c.v }}
By funding source — how much the ED has approved from each fund
FUNDING SOURCE
APPROVED (€)
OBLIGATED (€)
RATE
{{ f.name }}
{{ f.proj }}
{{ f.obl }}
{{ f.rate }}
Risk alerts
⚙ Customize
{{ a.text }}
Approved budget breakdown by cost component
COMPONENT
# ACT
TOTAL PROJ (€)
AVG / ACT (€)
SHARE OF APPROVED
%
{{ t.type }}
{{ t.n }}
{{ t.tot }}
{{ t.avg }}
{{ t.pct }}
Top 10 activities by projected value — FY {{ fyV }}
#
CODE
ACTIVITY NAME
PROG
TYPE
FUNDING
PROJECTED (€)
QUARTER · STATUS
% APPR
{{ t.rank }}
{{ t.code }}
{{ t.name }}
{{ t.programme }}
{{ t.type }}
{{ t.funding }}
{{ t.total }}
{{ t.quarter }} · {{ t.status }}
{{ t.share }}
Consolidated CC1000 — Regular Budget Commitment Items by Quarter
Category → Commitment-Item map (managed in Admin → Dropdowns & FY). CC1000 funding only.
▾ STATUS ▾ PERIOD
{{ t.label }}
tick ✓ the quarters to include in the totals ▾ FUNDING CC1000 ▾ YEAR
PROJECTED (€)
{{ ccKpiProj }}
OBLIGATED (€)
{{ ccKpiObl }}
TOTAL APPROPRIATION (€)
{{ ccApTotal }}
AMOUNT REMAINING (€)
{{ ccRemTotal }}
{{ h.label }}
{{ r.item }}
{{ c.v }}
{{ c.v }}
IMPLEMENTATION RATE BY QUARTER · Obligated · Projected
QUARTER
PROJECTED (€)
OBLIGATED (€)
OBLIG RATE
{{ r.q }}
{{ r.p }}
{{ r.o }}
{{ r.or }}
APPROPRIATION INPUT · FY {{ fyV }} — one set per year, multi-year
{{ a.item }}
CATEGORY → COMMITMENT-ITEM MAP · for reference
{{ c.item }}
{{ c.cats }}
Consolidated Funding Source — how much is left from each fund
▾ STATUS ▾ PERIOD
{{ t.label }}
tick ✓ the quarters to include in the totals ▾ PROGRAMME ▾ YEAR
PROJECTED (€)
{{ fcsKpiProj }}
OBLIGATED (€)
{{ fcsKpiObl }}
TOTAL APPROPRIATION (€)
{{ fcsApTotal }}
AMOUNT REMAINING (€)
{{ fcsRemTotal }}
{{ h.label }}
{{ r.item }}
{{ c.v }}
IMPLEMENTATION RATE BY QUARTER · under the same filters
QUARTER
PROJECTED (€)
OBLIGATED (€)
OBLIG RATE
{{ r.q }}
{{ r.p }}
{{ r.o }}
{{ r.or }}
APPROPRIATION INPUT · FY {{ fyV }} — one set per year, multi-year
Enter how much each fund holds this year. Remaining = appropriation − projected.
{{ a.item }}
Forecast Consolidated — Quarterly View by Programme
▾ STATUS ▾ PERIOD
{{ t.label }}
▾ FUNDING SOURCE FILTER ▾ YEAR FILTER
{{ h.label }}
{{ r.programme }}
{{ c.v }}
IMPLEMENTATION RATE BY QUARTER · under the same filters
QUARTER
PROJECTED (€)
OBLIGATED (€)
OBLIG RATE
{{ r.q }}
{{ r.p }}
{{ r.o }}
{{ r.or }}
Drill-Down
{{ t.label }}
YEAR
{{ c.label }}
LINES
{{ ddCount }}
PROJECTED
{{ ddProj }}
OBLIGATED
{{ ddObl }}
SRC
CODE
DESCRIPTION
PROG
QUARTER
STATUS
PROJECTED
{{ l.src }}
{{ l.code }}
{{ l.desc }}
{{ l.programme }}
{{ l.quarter }}
{{ l.status }}
{{ l.eur }}
Showing the 120 largest lines — narrow the filters to see everything.
These lines reproduce the Consolidated CC1000 figure under identical filters — to the cent.
Pivot Playground — dynamic 2-dimensional analysis
▾ ROWS ▾ COLUMNS ▾ STATUS ▾ YEAR
less more
{{ pvRowV }} ↓ · {{ pvColV }} →
{{ h }}
ROW TOTAL
{{ r.label }}
{{ c.v }}
{{ r.total }}
COL TOTAL
{{ c }}
{{ pvGrand }}
Darker cells carry more money. Pulls from all seven sheets for FY {{ fyV }} under the chosen status. Change rows, columns, status or year to rebuild. · = no data.
{{ advTitle }}
{{ advSubTitle }}
YEAR
+ Record new advance
{{ k.label }}
{{ k.value }}
{{ h.label }}
{{ c.v }}
{{ c.v }}
{{ c.v }}
Advance Drill-Down
Line-level view of what each advance is used for — settled, physically out, committed in safe, or drafted against (pipeline).
{{ advDdCount }} lines  ·  € {{ advDdTotal }}
OFFICE
ACTIVITY CODE
ACTIVITY
LINE DESCRIPTION
QUARTER
STATUS BUCKET
ACT. STATUS
AMOUNT (€)
{{ r.office }}
{{ r.code }}
{{ r.name }}
{{ r.desc }}
{{ r.quarter }}
{{ r.bucket }}
{{ r.aStatus }}
{{ r.eur }}
No lines match the selected office / bucket.
Upload Budget Request
Upload an Excel/CSV file or paste rows (with a header line). Recognised columns: Activity Code, Activity Name, Programme, Type (MOD/PO/Travel), Description, Vendor, Traveller, Quarter, Amount, Funding, Obligation By, Start, End. Rows are grouped into requests by code/name, validated, and submitted with status Submitted.
1 · Upload a file
.xlsx (first sheet) or .csv — parsed instantly on selection.
2 · …or paste rows
Parse pasted rows
{{ upStatus }}
{{ a.t }}
{{ m.t }}
Submit as Budget Request(s)
Delete this budget request?
{{ delModalCode }} — {{ delModalName }}
{{ delModalInfo }}
Cancel
Delete permanently
{{ t.label }}
Pending Decisions — activities awaiting ED approval
ACTIVITIES PENDING DECISION
{{ pendCount }}
TOTAL PROJECTED VALUE (€)
{{ pendTotal }}
EARLIEST OBLIGATION DEADLINE
{{ pendEarliest }}
OF WHICH DRAFTS
{{ pendDrafts }}
The queue is clear — nothing awaits a decision. ✓
#
ACTIVITY CODE
PROGRAMME
ACTIVITY NAME
REQUESTOR
TOTAL (€)
DATE REQUESTED
DAYS OPEN
OBLIGATION BY
STATUS
{{ r.n }}
{{ r.code }}
{{ r.programme }}
{{ r.name }}
{{ r.requestor }}
{{ r.total }}
{{ r.dateReq }}
{{ r.days }}
{{ r.by }}
{{ r.status }}
Open in Console →
RED: obligation deadline already passed AMBER: deadline within {{ urgDays }} days Drafts appear here so the ED can see what is coming
Approval Console — single-activity review
Decisions are written back to the Activity Register status column instantly.
🔍 SELECT ACTIVITY
ACTIVITY DETAILS
View original request ↗
{{ conStatus }}
{{ f.label }}{{ f.v }}
JUSTIFICATION & NOTES
{{ conJust }}
Notes: {{ conNotes }}
BUDGET SUMMARY
COMPONENT
PROJECTED (€)
OBLIGATED (€)
{{ s.label }}
{{ s.p }}
{{ s.o }}
{{ t.title }}
{{ t.sub }}
{{ h }}
{{ c.v }}
No lines of this type.
✍ EXECUTIVE DIRECTOR DECISION
Current status: {{ conStatus }}
{{ o.label }}
Written back to the Activity Register instantly · requestor notified by email · audit-logged
Apply decision
You can review this request, but only the Executive Director can decide.
STATUS TIMELINE
{{ t.icon }}
{{ t.title }}
{{ t.sub }}
💬 DISCUSSION
{{ c.initials }}
{{ c.by }} · {{ c.when }}
{{ c.text }}
No questions yet — ask instead of rejecting.
Send
Pick an activity above to review its full budget request.
Data Entry
{{ t.label }}
{{ deSheetTitle }}
{{ deSheetSub }}
{{ k.label }}
{{ k.value }}
YEAR
+ Add line
{{ deShowing }}
{{ h.label }}
{{ c.v }}
×
Show more lines ↓
{{ deNote }}
Activity Register — master list of all budget activities
{{ k.label }}
{{ k.value }}
{{ h.label }}
{{ c.v }}
{{ c.v }}
Show more activities ↓
Read-only — the register is written by the submission form and the Approval Console. Click a row to open it in the console.
Dropdowns — central management of every list in the tool
Add an option here and it is picked up instantly by every form, filter, dashboard and pivot — exactly like the Excel Dropdowns sheet, without the blank-row rules.
Maintenance mode {{ maintStateLabel }}
When on, regular users can't sign in — they see a maintenance message on the login screen — but owners and super users stay in. Use it while you edit live data or prepare a deployment.
{{ maintBtnLabel }}
Fiscal Year
ACTIVE YEAR
Open FY {{ nextFyLabel }} →
Moving to the next year: click "Open FY {{ nextFyLabel }}". It adds the year to every year dropdown, creates a fresh appropriation set, and makes it the default year everyone lands on.
Nothing is deleted or copied. Every activity and log line carries its own year — switch the FY selector on any tab to look back at {{ fyActiveV }} or any earlier year, and all dashboards recalculate.
(Consultants, Contractors, Training & RSM) keep flowing — their rows are picked up by whichever year they belong to.
FUNDING SOURCE ARCHITECTURE
CC1000Regular budget — the only source that feeds Consolidated CC1000 and counts against the appropriation.
CC2000 – donorEarmarked contributions, one entry per donor stream. Rolled up by "All CC2000" in every filter.
AUTOAdd a source in the card below and it immediately appears in: request-form Funding column, Forecast & Drill-Down filters, Pivot dimension, Dashboard breakdown, MOD Advances. The "All" and "All CC2000" filter entries are derived — never edited.
{{ fundArchStat }}
Category → Commitment-Item map
{{ m.cat }}
{{ m.lines }} lines
×
ADD MAPPING:
Add
Registers route by fixed rule: {{ rr.src }} → {{ rr.item }} ·
{{ k.title }}
{{ k.count }}
{{ k.note }}
{{ c.label }}{{ c.sub }}×
Add
Users & Access
Grant access down to the individual tab · every change is audit-logged · users travel inside every export snapshot
{{ invBtnLabel }}
Who's online — live presence & last-seen
{{ onlineCount }} of {{ totalUsers }} online now
{{ p.avEmojiChar }}
{{ p.initials }}
{{ p.name }}
{{ p.status }}
Create account
Choose exactly what this person can see. Either send a set-password link (they choose their own) or hand them a temporary password to change at first sign-in.
Full name
Email (their login)
Title / role
Password
User sets it
Temp password
QUICK PRESET:
{{ p.label }}
{{ g.title }}
{{ i.tick }}
{{ i.label }}
✉ Credentials are emailed to the user · this account is included in every export snapshot
Create account & send credentials
{{ r.initials }}
{{ r.name }} · {{ r.pos }} · wants: {{ r.wants }}
{{ r.email }}
"{{ r.why }}"
Deny
Approve
{{ x.initials }}
{{ x.name }}
{{ x.title }}
{{ x.superBadge }}
{{ c.label }}
{{ x.lastActive }}
{{ x.statusChip }}
{{ x.chev }}
Position / role
{{ x.suTick }}
Super user — full access to everything
Sees and can modify every person's requests, approves decisions, and reaches every admin tab. Overrides the individual tabs below.
PRESET:
{{ p.label }}
{{ g.title }}
{{ i.tick }}
{{ i.label }}
↻ Send password-reset link
You can't deactivate your own account
⦸ {{ x.activeLabel }}
{{ usersNote }}
Data & Migration
Export everything, upgrade the theme, import back — as if nothing changed.
Export snapshot
schema v1.0.0
One portable .json — the exact format this prototype runs on. Downloads for real.
{{ m.label }}{{ m.v }}
Integrity: checksum embedded · re-verified on import
↓ Export full snapshot (.json)
Import snapshot
Nothing touches the database until validation passes and you confirm.
{{ importFileName }}
{{ importFileSize }} · validated ✓
{{ c.icon }}
{{ c.text }}
Cancel
Import — 0 destructive changes
Safety net: a backup snapshot is taken automatically before any import — and nightly, kept 30 days.
↺ Reset demo data to the v7.8 master
Audit Log
Every submission, decision, edit and permission change ({{ auditCount }} events)
TIMESTAMP
CODE
ACTION
CHANGE
BY
{{ r.ts }}
{{ r.code }}
{{ r.action }}
{{ r.change }}
{{ r.by }}
Emails & notifications
Every automatic email is fully editable — rewrite the wording and choose exactly who is on To and CC, from your registered users. Turn any rule on or off.
Placeholders you can use in the subject and body: {{ emailTokens }} — they are filled in automatically when the email is sent.
Sending mode
{{ emailModeHint }}
Production
Test mode
Test mode is on. Every email — approvals, resets, and all rules below — is redirected to {{ emailTestTo }} (subject prefixed [TEST]), so nothing reaches real recipients. Switch to Production to send normally.
{{ r.event }}
To: {{ r.toSummary }} · cc: {{ r.ccSummary }}
↳ {{ r.auto }}
{{ r.chev }}
Subject
Body
To — recipients
{{ c.name }}
CC — copied in
{{ c.name }}
Tap a name to add or remove them. Changes save instantly and are audit-logged.
LIVE PREVIEW — how this email looks when it goes out
TFV
To: {{ r.pv.to }} · From: TFV Budget Monitoring Tool
{{ r.pv.subject }}
{{ ln }}
{{ fld.k }}{{ fld.v }}
{{ r.pv.cta }}
You receive this from the TFV Budget Monitoring Tool. Manage notification rules in Admin → Emails.
Built by Emmanuel Tsimese.
These rules and their wording are stored with the tool and included in every export snapshot.
ESC
Type at least 2 characters — searches codes, names, vendors, travellers across all 7 sources.
Nothing found. Try a code fragment like "CAR" or a traveller's name.
{{ r.kind }}
{{ r.title }}
{{ r.sub }}
Open →
Notifications
Mark all read
Nothing yet — you'll see submissions, decisions and questions here (and by email).
{{ n.icon }}
{{ n.text }}
{{ n.sub }}
{{ advDetTitle }}
{{ advDetSub }}
Close
SETTLED (DOCUMENTED)
{{ advDetSettled }}
PHYS. OUT - AWAITING SES
{{ advDetOut }}
COMMITTED (IN SAFE)
{{ advDetCom }}
DRAFT PIPELINE
{{ advDetDraft }}
Set each activity's settlement as its SES is certified (amount in the advance currency), or tick cancel if it did not take place — both return the balance to the safe.
No approved MOD lines draw on this advance under the current rule.
ACTIVITY
STATE
SETTLEMENT
SETTLED (LOCAL)
CANCEL
BUDGET
{{ l.code }} — {{ l.desc }}
{{ l.state }}
{{ l.cur }}
{{ l.cancelTick }}
{{ l.proj }}
Customize risk alerts
Choose which risks appear on the dashboard — saved for everyone
Done
{{ r.tick }}
{{ r.label }}
{{ toastTitle }}
{{ toastSub }}