Supply Chain
Keeping Vaccines Cold in Papua New Guinea: One Ticketing System for Every Broken Fridge

When cold chain equipment fails in a country where only 3% of roads are paved, a fault reported by phone call can sit for weeks. UNICEF Papua New Guinea partnered with Ona to build CCETS, a single ticketing system that tracks every equipment fault from the health facility to the technician who fixes it.
The National Immunization Programme of Papua New Guinea delivers vaccines across a country of over 600 islands, rugged highlands and more than 800 languages. That work depends on cold chain equipment — the refrigerators, freezers and carriers that keep vaccines at the right temperature. When that equipment broke down, the fault travelled by phone call, email or text to whoever was reachable, with no shared record of what had failed or whether anyone had acted.
UNICEF Papua New Guinea contracted Ona to build the Cold Chain Equipment Ticketing System (CCETS): a centralised platform where a fault is registered once, routed automatically to the right technician, tracked through assessment and repair, and closed only when the facility that raised it confirms the issue is resolved. The system is live, and a newly signed contract will roll it out across four provinces.
The Problem
Papua New Guinea is one of the hardest places in the world to run a logistics system. Only 3% of roads are paved, most inter-provincial travel is by air, and in the Highlands the average rural resident walks more than four hours to reach the nearest road. Equipment at the end of that journey is expensive to reach and expensive to leave broken.
Yet fault reporting was entirely informal. A health care worker noticing a failed fridge raised a "job card" by phone, email or SMS, with no workflow connecting a report to a resolution. Three gaps followed: no reliable record of which faults were reported, no assignment or escalation logic when a province lacked the capacity to fix something, and no data to plan to show which equipment failed most, which provinces needed the most technician time, or where to pre-position spare parts.
Our Approach
Ona started with discovery rather than a build. Three inception meetings in July 2024 mapped how a job card actually moves, who touches it, and where it stalls, producing a use case diagram and case lifecycle drawn from how the programme already operates.
Two design decisions followed. First, the system models the real chain of accountability rather than the equipment: the province is the default unit of resolution, escalating to the national team only when it genuinely lacks the capacity, parts or budget to fix something. Second, the platform is assembled from proven off-the-shelf components delivered through Ona's Canopy subscription, with custom logic only where Papua New Guinea's needs are specific, keeping it flexible and maintainable rather than dependent on a single vendor. Health care workers, meanwhile, only ever raise a ticket and confirm the fix; they never log into the wider system.
The Technology
CCETS moves data from the field to the dashboard in four layers:
- Data collection. A web form inside CCETS, plus ODK Collect and Enketo webform via UNICEF's InForm platform, so a fault can be recorded offline and synced later.
- Data storage. A PostgreSQL database holds the ticket record, kept in sync with the sources through Airbyte connectors.
- Case management. Directus, a headless CMS, runs the ticket lifecycle; triage, assignment, referral, assessment, feedback, and closure with email notifications fired at each transition.
- Modelling and reporting. dbt turns raw tickets into metrics that surface in Akuko and Apache Superset dashboards. A ticket is triaged by the Provincial Cold Chain Logistics Office (PCCLO), who assigns a Cold Chain Technician (CCT). The technician acknowledges, visits the facility and logs an outcome; fixed, decommissioned, obsolete, or referred, and the PCCLO reviews and closes it, escalating to the National Health Facility Services Branch(HFSB) when the province can't resolve it. Eight notifications keep the loop closed, copying the health care worker who raised the fault throughout, which is what turns a ticketing system into an accountability system.
Challenges
Data cleaning was the first hurdle: the gap analysis data shared at inception was a template, and the sample CSVs that followed didn't match its structure, so a good deal of work went into reconciling formats before the dashboards could use anything.
Keeping an up-to-date equipment register was harder, and underlies most of the others. A ticketing system is only as good as its knowledge of what equipment exists and where. Inventory changes constantly as units are installed, moved, or decommissioned, so this ultimately stayed outside CCETS, with the system integrating against the IGA tool rather than owning the register itself. Integration was further constrained by a simple fact: the systems the team needed to connect to had no APIs, so data moved through file exchange and manual pushes is a common reality in health information ecosystems.
Results and Impact
CCETS replaced an untracked, phone-based process with a system of record. Every fault now has a ticket, a timestamp, an owner and a status, and assignment and escalation are defined rather than improvised: a ticket beyond a province's capacity follows a documented path to the national team instead of depending on who knows whom.
Because ticket data is modelled and surfaced in dashboards, NDoH, NIP and UNICEF can now see equipment performance rather than infer it, which faults recur, which provinces carry the heaviest load, and where resolution times are slipping, turning maintenance from reactive to planned. The system was delivered agile against a tight timeline, with hosting live by August 2024 and the platform, intake forms, ticket flow and notifications delivered through September 2024, alongside staff training.
Currently, the solution has been rolled out in 4 Regions (Highlands, Momase, New Guinea Islands and Southern) of Papua New Guinea. A total of 53 tickets have been created, with 42 facilities reporting faulty equipment, where 6 have been closed.
Key Takeaways
- Build for the accountability chain, not the asset. Modelling the system on who is responsible at province and national level made the workflow match how the programme is actually staffed and funded.
- A ticketing system for equipment depends on an equipment register. If the inventory isn't maintained, every downstream metric inherits that weakness, and integrating with a dedicated inventory tool beats owning the register yourself.
- Assume no APIs. The systems you need to integrate with often weren't built to be integrated with. Scope for that reality, not the ideal case.
- Keep the field user's surface area small. Low friction at the point of reporting is what keeps faults from going unreported.
What's Next
Ona has just signed a contract to roll CCETS, with phase one beginning in four Regions: onboarding provincial officers and technicians, extending the equipment register, and adapting escalation logic to each province.
A phase of post-rollout enhancements will follow. It isn't fully scoped yet, but several directions are already clear:
- SMS-based ticketing. Letting health care workers raise a fault straight from a basic phone, closing the last gap for facilities without a smartphone or connectivity.
- Automated follow-up. Prompting technicians and officers when a ticket stalls, so nothing sits unattended.
- Response for fixed equipment. Asking the originating facility to confirm that repaired equipment is genuinely back in service, closing the loop on quality rather than just on paperwork.
- AI-assisted operations. Predicting which equipment is most likely to fail next, triaging incoming tickets, or surfacing patterns across fault reports.
If your programme is managing equipment, complaints, or cases across dispersed facilities and hard-to-reach geographies, we'd love to talk about how Ona Insights can help design a solution that fits your context.