Skip to main content
    Sector

    Security Agency Management Software

    A multi-tenant platform for security and manpower service providers where one attendance record produces both the client invoice and the salary, with GST, ESI and EPF handled on the way through.

    Python Django React PostgreSQL
    Security Agency Management Software — Sector project screenshot

    Project Overview

    Client
    A security and manpower services provider supplying guards, patrolling staff, gatekeepers, cooks and gardeners
    Their clients
    Banks, government offices and schools
    Our role
    Design and build of the full platform operations, billing, payroll, statutory computation and inventory
    Stack
    Python · Django · React · PostgreSQL
    Deployment
    VPS, with the client owning the environment
    Architecture
    Multi-tenant SaaS the client runs their own agency on it and resells it to other providers

    Our client supplies staff to other organisations. Security guards and patrolling teams are mostly, but also gatekeepers, cooks and gardeners, placed with banks, government offices and schools. Every one of those placements sits under a different contract, at a different rate, with a different mix of staff. The business had outgrown the spreadsheets that were being held together, so we built the system that runs it and then built it as a product the client could sell to other agencies.

    One attendance record, two very different sums

    A guard completes a shift at a bank. That single fact must do two jobs.

    It must bill the bank, at whatever rate that particular contract specifies for that category of staff and then carry GST, including the reverse charge treatment that applies to security services. And it must pay the guard, at their own wage, with ESI and EPF calculated on it, net of any advances.

    Two calculations, two sets of rules, one underlying record. Run them in separate spreadsheets and they drift a shift billed but not paid, a rate updated on one sheet and not the other, a month that reconciles to nothing. Every agency owner recognises this, usually from an argument with a client about an invoice.

    The system exists so that the record is entered once and everything downstream derives from it.

    How the platform runs an agency

    1. 1

      Onboard the employee

      Personal details, documents, job category and wage recorded once, in one place.

    2. 2

      Set the client's rates

      Each client gets its own rate card, priced per staff category rather than one rate for the whole agency.

    3. 3

      Deploy staff to sites

      Employees are assigned to client sites according to what that contract requires.

    4. 4

      Record attendance

      Shifts are captured against the employee and the site they worked.

    5. 5

      Bill the client

      Attendance is priced against that client's rate card, GST applied, invoice issued.

    6. 6

      Run payroll

      The same attendance is priced against the employee's wage, with ESI and EPF computed and advances deducted.

    7. 7

      Pay the staff

      A bank salary sheet is generated in the format the bank expects, ready to upload.

    What we built

    Employee onboarding

    Staff are added once with their documents, category and wage, then deployed to sites. No re-keying between an HR file and a payroll sheet.

    Dynamic rate management

    Every client has its own rate card, set per staff category. Rates change without anyone editing a formula, and history is preserved so old invoices still reconcile.

    Attendance-driven payroll

    Salaries are computed from recorded attendance rather than assumed from a monthly figure, which is what makes part-months, replacements and absences work.

    Statutory computation

    GST on client invoices including reverse charge treatment, and ESI and EPF on payroll. Rates and thresholds are configuration, not code.

    Invoicing

    Client invoices generated from priced attendance, per contract, with the tax treatment already applied.

    Bank salary sheets

    Payroll output produced in the format banks accept for bulk salary transfer, so paying two hundred people is an upload rather than an afternoon.

    Uniform and equipment inventory

    Dress, batons, caps and other issued items tracked against the staff member holding them, and recoverable at exit.

    Multi-tenant SaaS

    Each agency on the platform has its own clients, staff, rate cards and payroll data, fully isolated from every other tenant.

    The part that keeps agency owners awake: GST, ESI and EPF

    Manpower services carry a statutory load that most businesses do not. Getting it wrong is not an accounting inconvenience, it is a notice.

    On the billing side, security services have their own GST wrinkles. Where a non-body-corporate supplies security services to a registered recipient, the tax is payable by the recipient under the reverse charge mechanism rather than by the agency. That has applied since 1 January 2019, and it means an invoice raised by a proprietorship and one raised by a private limited company are treated differently for the same work. The system knows which is which, rather than leaving it to whoever is doing the billing that week.

    On the payroll side, ESI and EPF contributions are computed per employee against their wages for the period worked.

    One deliberate design decision: statutory rates, thresholds and wage ceilings are stored as configuration rather than written into the code. They change and when they do, the client updates the value rather than commissioning a release.

    This describes what the software does, not what your business owes. Statutory positions change and vary by entity type — take your own professional advice.

    Built for one agency, sold to many

    The client did not just want to run their own operation better. They could see that every agency they competed with had the same problem, and most of them were still on paper.

    So, the platform was built multi-tenant from the start. Each agency that subscribes gets its own clients, its own staff, its own rate cards and its own payroll data, isolated from everyone else in the system.

    That turned an internal tool into a second business, a services company with a software product sold on subscription to its own industry.

    Technology, and why

    The stack behind the platform, and what each part is doing here.

    TechnologyRoleWhat it does here
    Python and DjangoBackendThe whole business engine: onboarding, rate cards, attendance, billing, payroll and statutory computation. Django was the right call for its mature permissions, admin and migration tooling, which matter when tenants and roles multiply.
    ReactFront endThe front end the agency's own team uses daily. Fast, and separable from the backend so either can change without the other.
    PostgreSQLDatabasePayroll and billing are transactional work where correctness beats raw speed. PostgreSQL handles the constraints, the relationships and the reporting without complaint.
    VPS deploymentHostingDeployed to a VPS the client owns, rather than a platform they rent access to.

    The same engine, other manpower businesses

    Staff deployed to client sites, attendance driving both billing and payroll, statutory deductions on top. Change the job categories and the rate cards and the same platform runs:

    Facility management and housekeeping contractors
    Catering and canteen contract operators
    Contract labour supply and staffing agencies
    Nursing, attendant and home care staffing
    Event and venue staffing

    Frequently Asked Questions

    Answers to what agency owners usually ask after reading this case study.

    What is security agency management software?

    It is a single system that runs the operational and financial side of a manpower services business: onboarding staff, assigning them to client sites, recording attendance, billing each client at their own contracted rate, calculating salaries from the same attendance data, applying statutory deductions, and issuing invoices and bank salary sheets. It replaces the spreadsheet-and-register combination most agencies start with.

    How does the system handle different rates for different clients?

    Each client has its own rate card, set per staff category rather than per agency. A guard at a bank, a gatekeeper at a school and a cook at a government office can all be billed at different rates under different contracts, and the same attendance record is priced against whichever contract the shift belongs to.

    Does the platform calculate GST, ESI and EPF?

    Yes. Client invoicing applies GST at the applicable rate and accounts for reverse charge, which applies to security services supplied by a non-body-corporate to a registered recipient. Payroll computes ESI and EPF contributions against each employee's wages. Rates, thresholds and wage ceilings are held as configuration rather than hard-coded, because they change.

    Can one platform serve more than one agency?

    Yes. The application was built on a multi-tenant SaaS architecture, so the original client operates their own agency on it and also offers it to other service providers on a subscription. Each tenant has its own clients, staff, rate cards and payroll data, isolated from every other tenant.

    What technology is the security agency platform built with?

    Python and Django on the backend, React on the front end, and PostgreSQL as the database, deployed to a VPS. Django was chosen for its mature admin, permissions and migration tooling; PostgreSQL because payroll and billing are transactional work where correctness matters more than raw speed.

    Can this be adapted for other manpower businesses?

    Yes. The underlying pattern - staff deployed to client sites, attendance driving both billing and payroll, statutory deductions on top - is the same for facility management, housekeeping and janitorial services, catering and canteen contracts, contract labour supply and staffing agencies. The rate cards and job categories change; the engine does not.

    Running an agency on spreadsheets?

    If you deploy staff to client sites and you are reconciling billing and payroll by hand, we have built this before and we know where it breaks. Tell us how many people and how many sites, and we will tell you honestly whether you need a platform or just a better process.

    Get In Touch

    Ready to Start Your Project?

    Let's discuss how we can help transform your business with our expertise

    Send us a message

    We respond within 24 hours

    Security check

    By submitting, you agree to our privacy policy. We respect your data.

    Quick Contact

    Email us

    info@flyitsolution.com

    Call us

    +91 9876613997

    Business hours

    Mon - Fri, 9AM - 11PM IST

    Our Offices

    🇮🇳

    Mohali

    Cabin 1, E 279 (Biggbang), Industrial Area, Sector 75, Sahibzada Ajit Singh Nagar, Punjab 140307

    🇺🇸

    Minneapolis

    Unit B11, St Louis Park, MN 55426, United States

    🇨🇦

    Moncton

    Gordon Street, Moncton, NB E1C 5K9, Canada

    Fast Response Guarantee

    We respond to all inquiries within 24 hours. Most queries get a response within 2-4 hours during business hours.