We developed a web application for managing film project budgets. The system brings together estimates, accruals, payments, contracts, acceptance certificates, petty cash, and financial analytics in one workspace.
The platform accounts for the specifics of film and TV production: calculations by shoot day and episode, different production periods, specialist rates, financial commissions, and expense allocation across budget categories.
The project’s key feature is the link between planning and actual transactions. Users can see how much is planned, accrued, and paid, what obligations remain to vendors and contractors, and how upcoming payments affect expense forecasts.
Challenge
Build a single financial management system for film projects where producers, finance managers, and other team members work with shared data within their respective permissions.
The application needed to:
- support detailed, multi-level budgets;
- calculate costs based on rates, terms, shoot days, and episodes;
- link planned budget items to accruals and payments;
- support both accounting and management views of transactions;
- show amounts owed to vendors and contractors and help plan payouts;
- track petty cash issuance and spending;
- store contracts, acceptance certificates, and supporting documents;
- generate financial reports;
- restrict employee access;
- keep an audit trail of changes.
The main challenge was to unify the project’s financial processes and preserve the relationship between every transaction, its purpose, and its impact on the budget.
Problem
A film production budget depends on many interconnected variables. The cost of a specialist’s work can be calculated by shoot day, day, week, month, or for the entire project. Some expenses depend on the number of episodes, while others depend on the length of the period. In addition, commissions, advances, and shifts in production timelines must be taken into account.
At the same time, planned amounts, accruals, and payments represent different states of the money. An amount may be included in the budget but not yet become an obligation. Work may be completed and accrued, but still remain unpaid. Money may be issued as an advance, while verified expenses appear later.
Another challenge is the difference between accounting and management reporting. One bank payment can cover several budget items and several actual recipients. For financial control, it is important to preserve both the original transaction and its allocation.
Collaborative work adds data integrity requirements. If several employees edit a budget or documents, the system must detect conflicts and help resolve changes.
Solution
We built an application in which each film project gets a separate workspace with its own budget, reference data, financial transactions, documents, and participants.
The system is built on a linked data model:
- the budget defines the structure and planned expenses;
- accruals reflect obligations that have been incurred;
- payments record settlement;
- the payment schedule describes future disbursements;
- contracts, acceptance certificates, and files supplement transactions with documentation;
- reports assemble the financial picture from this data.
Project roles are provided for participants. The executive producer, finance manager, contracts specialist, and read-only user work in the same project with access to the features available to them. Frontend, backend, database, file storage, and background processes are separated into independent components.
What we built
Project workspaces
Each project includes its own settings: number of episodes and shoot days, production dates, periods, companies, accounts, vendors, and participants. When a project is created, the system prepares the budget structure, basic reference data, and settings. Projects can be managed independently, completed, and archived. Users see only the projects they have access to.
A multi-level budget
We developed an editor with sections, groups, line items, and nested rows. Users can build the budget structure, add detail, move and duplicate items, assign planned vendors, and configure the table.
The budget supports manual amounts and parameter-based calculations, formulas and project variables, different expense types, dates and periods, financial commissions, off-balance-sheet items, limit tracking, payment and accrual locks, search, filters, bulk actions, and Excel export. Totals respect the hierarchy without double-counting child rows. Deleting an item with financial transactions is restricted to preserve links to actual data.
Film-production-aware calculations
The system supports seven planned expense types: fixed, per shoot day, monthly, weekly, per episode, daily, and hourly. Quantities can be entered manually or calculated from project dates and periods.
Formulas support arithmetic operations, parentheses, custom variables, and system indicators for the number of episodes and shoot days. Shared parameters are used across multiple budget items and make it possible to recalculate the budget consistently when production conditions change.
Plan, accrual, and payment control
The budget combines planned amounts, accrued costs, and actual payments. Users can review how accruals and payments deviate from the plan, the difference between accrued and paid amounts, expected costs based on the future schedule, and items with overspending.
Financial metrics are built from management data: an accounting payment and its management allocation are not counted twice. This makes it possible to distinguish budget utilization, obligations incurred, and cash movement.
Payment schedule and expense forecast
We implemented payment schedules for budget items. Payments can be distributed manually, evenly, or by a recurring rule. When the plan changes, the schedule stays in sync while preserving paid rows and individual commission settings.
The “Pre-fact” metric combines actual payments through the cutoff date and the unpaid schedule after it. Closing a period preserves the cutoff date and action history, and the forecast is recalculated after financial transactions are adjusted.
Accounting and management reporting
One accounting payment can be allocated across multiple budget items and actual recipients. In accounting view, the original payment is preserved, while management view shows a detailed breakdown. The system checks that the allocated total matches the payment amount excluding commission.
Accruals and batch entry
The accrued expenses register supports one-time, per-shift, and recurring accruals. For daily and monthly expenses, calculations are based on calendar days, including periods with no end date set. A separate batch-entry screen saves changes for the selected shift in a single transaction.
Accruals can be created automatically from management payment lines. These entries are linked to the source transaction and change along with it.
Financial commission
Commission is accounted for in budget line items, accruals, payments, schedules, and expense reports. You can use either a percentage rate or an exact amount. When allocating a payment, the commission is distributed across management line items with rounding taken into account.
Bank Payment Import
We implemented payment imports from supported Excel exports with a preview step. The system shows recognized data, errors, and possible duplicates. Selected transactions are first saved as drafts and do not affect metrics until the user completes and posts them.
Counterparty name matches are saved within the project, and unrecognized values remain as prompts for manual selection.
Petty Cash and Expense Reports
The app lets you track cash advances, record expenses, and review balances by employee. An expense report combines payments, supporting files, tags, and commission settings. Expenses are linked to the original advances and write-off categories, so the money trail can be followed from the payment to an employee all the way through to budget reporting.
Contracts and Acts
We created contract and act registries tied to counterparties, payments, and files. Contracts include cards, approval statuses, search, filters, copying, and export. Each card brings together related payments, acts, documents, and change history. The act registry supports its own statuses, relationships, and view settings.
Dashboard and Financial Analytics
The project home screen brings together the planned budget total, accruals, payments, liabilities to counterparties, and petty cash balances.
We implemented reports for liabilities, accrued and paid amounts, daily and monthly expenses, shift-based metrics, payments and contracts, financial commission, payment sources, payout schedules, and reconciliation statements. Filters, hierarchy expansion, charts, and Excel export are available.
File Space
The file section supports folders, categories, search, trash, and bulk actions. Files can be linked to counterparties, contracts, acts, payments, and expense reports. Multiple upload, preview, and archive download are available.
Large ZIP archives are generated by a separate background process and uploaded to object storage in chunks, without loading the entire archive into memory.
Roles and Access Control
System permissions are separate from project roles. For team members, permissions are configured for sections, viewing, creating, editing, and deleting data. Administrative actions, integration tokens, and changes to locked limits are restricted separately. Permissions are checked on the server, and the interface reflects the actions available.
Change History and Collaboration Protection
The system includes a shared project change log and a separate budget history. Events can be searched and filtered by employee, period, action, and object type.
Version checks are implemented for budget line items, payments, accruals, contracts, and acts. If another employee has already changed an object, the system reports a conflict and prompts the user to refresh the data.
Project Backups
Backup Excel exports are created manually and on a schedule. The file includes the budget, parameters, commission rates, dates, periods, variables, financial transactions, and payment schedule. Exports are saved in the project file space, and run history is available to the user.
API for Integrations
External systems connect through time-limited API tokens. A token can be assigned read or write permissions and access to specific projects. The secret is shown only when it is created, and access can be revoked.
Technical Foundation
The application is built on a client-server architecture. Main stack:
- React, TypeScript, and Vite — user interface;
- FastAPI and Python — API and business logic;
- PostgreSQL — financial data and relationships between entities;
- SQLAlchemy and Alembic — data access and migrations;
- MinIO / S3 — file storage;
- Redis — authentication request rate limiting;
- Docker Compose — component startup;
- openpyxl — Excel import and export;
- Recharts — charts.
The functionality is divided into modules for budgets, payments, accruals, documents, reports, files, and access management. Core registries handle filtering and pagination at the database level, interface sections load as they are opened, and backup exports and file archives are generated in separate processes.
Security
Signed authentication tokens, session refresh with refresh token rotation, and login rate limiting are implemented. Access to projects and files is verified on the server. The file storage is not exposed directly to users, and objects are stored under technical identifiers.
Containers run with restricted privileges. The database and object storage are not exposed externally by the main Docker Compose setup. Changes to key data are recorded in history, and permissions for administrative actions are separated out.
Result
A unified project budgeting system was developed that connects the production plan, financial obligations, payments, and documents.
The producer gets an overview of the budget and variances. The finance manager gets tools for working with accruals, payments, commissions, and liabilities. The contracts specialist gets document registries with related transactions.
The main result is the ability to trace a financial metric from the total amount down to a specific line item, counterparty, payment, and document. Changes are saved in history, collaborative editing is protected by version checks, and reports are generated from shared project data.
What the Client Received
- A budgeting system tailored to film production workflows.
- Separate project workspaces.
- A multi-level budget with formulas and variables.
- Calculations by shift, episode, and calendar period.
- Tracking planned, accrued, and paid expenses.
- Payment schedules and forecasted costs.
- Accounting and management views of transactions.
- Bank payment import with validation and drafts.
- Tracking petty cash and expense reports.
- Contract and act registries.
- Dashboard, financial reports, and Excel export.
- File space with links to documents and transactions.
- Configurable roles and server-side permission checks.
- Change history and protection against edit conflicts.
- Scheduled backup exports.
- API for future integrations.