Observer generates 39 structured report types designed to match actual Ukrainian NGO donor reporting obligations. All reports are scoped to a single project and filtered by a date range.

Running a Report

All reports are available under:

GET /projects/:project_id/reports/:report_type?start=2024-01-01&end=2024-12-31

Replace :report_type with one of the identifiers in the tables below.

Count Types

Every report uses one of three counting methods:

TypeMeaning
EventsRows in support_records — one person with three consultations counts 3
PeopleDistinct individuals — same person counted once regardless of how many records
UnitsDistinct family units (one household = one unit)

Date filtering uses support_records.provided_at for consultations and people.registered_at for registration reports — not created_at.

Report Groups

Group 1 — General Consultation Counts

#ReportType
1Total consultations of all typesEvents
2Total legal consultationsEvents
3Total social consultationsEvents

Group 2 — Sex Breakdown

#ReportType
12Men registered in periodPeople
13Women registered in periodPeople
14Women who received legal consultationsPeople
15Women who received social consultationsPeople
16Men who received legal consultationsPeople
17Men who received social consultationsPeople

Reports 14–17 count distinct people, not consultation events.

Group 3 — Geographic / IDP Status

#ReportType
4Total people registeredPeople
5–6People from conflict zone registeredPeople
7–10People from conflict zone who received legal/social consultationsPeople
11Non-IDPs registeredPeople

IDP status is derived automatically: origin_place_id → places → states.conflict_zone. Reports 5–6 and 7–10 are parameterised by conflict zone label.

Group 4 — Vulnerability Category Breakdown

#ReportType
18People registered — by vulnerability categoryPeople
19People who received social consultations — by categoryPeople
20People who received legal consultations — by categoryPeople

People with no assigned category appear in an “uncategorised” bucket.

Group 5 — Current Region of Stay

#ReportType
21People registered — by current regionPeople
22People who received legal consultations — by regionPeople
23People who received social consultations — by regionPeople

Group 6 — Support Sphere Breakdown

#ReportType
24Legal consultation count — by sphereEvents
25People who received legal consultations — by spherePeople
29Social consultation count — by sphereEvents
30People who received social consultations — by spherePeople

Support spheres:

ValueDescription
housing_assistanceHousing rights, eviction, social housing
document_recoveryPassports, birth certificates, property documents
social_benefitsIDP registration, social payments
property_rightsProperty left in occupied territories
employment_rightsLabour law, dismissal, job placement
family_lawDivorce, custody, alimony
healthcare_accessMedical coverage, disability documentation
education_accessSchool enrolment, educational rights
financial_aidEmergency financial assistance
psychological_supportMental health referrals, counselling
otherUnlisted or cross-cutting topics

Group 7 — Office Breakdown

#ReportType
28Legal consultation count — by officeEvents
32Social consultation count — by officeEvents
33Total consultation count — by officeEvents

Group 8 — Age Group Breakdown

#ReportType
26Legal consultation count — by age groupEvents
27People who received legal consultations — by age groupPeople
31aSocial consultation count — by age groupEvents
31bPeople who received social consultations — by age groupPeople
34Total consultation count — by age groupEvents

Age groups:

ValueAge range
infant0–1
toddler1–3
pre_school3–6
middle_childhood6–12
young_teen12–14
teenager14–18
young_adult18–25
early_adult25–35
middle_aged_adult35–55
old_adult55+

When birth_date is set and age_group is null, the application computes the bucket automatically.

#ReportType
35Support records for people with specific tagsEvents
36People registered with specific tagsPeople

Pass one or more tag IDs as parameters. Useful for ad-hoc donor queries.

Group 10 — Family Units

#ReportType
37People and family members who received legal consultationsPeople + Units
38People and family members who received social consultationsPeople + Units
39People and family members registered in periodPeople + Units

A family unit is one household record. Counts are returned as both total individuals and distinct household units.

Pet Reports

Animal-related reports are available separately under:

GET /projects/:project_id/pet-reports/:report_type

Pet reports cover species breakdown, vaccination status, sterilisation status, and pet-to-person ratios.