Real-time KPIs for small construction firms in Peru 2026 cover 8 critical dimensions: physical progress vs. schedule, actual costs vs. budget (Cost Performance Index), schedule performance (Schedule Performance Index), crew productivity, warehouse materials vs. next-2-week requirements, open supervision observations, monthly billing issued and collected, and projected cash flow for the next 30 days. Typical stack: mobile app for on-site data capture, Supabase as a Data Lake, integration with SUNAT via OSE for progress billings, and an executive dashboard in Metabase or custom React. Operational cost between $200 and $500/month. Custom development between $12,000 and $25,000 as a one-time fee. For a firm running more than 3 simultaneous projects, a proprietary system pays for itself in under 18 months compared to recurring SaaS subscriptions.
If you run a small construction firm in Lima, Arequipa, Trujillo, or Cusco and your team still assembles reports manually every Monday, this guide gives you the winning pattern.
The 8 Essential KPIs
| KPI | Calculation | Frequency |
|---|---|---|
| Physical progress vs. schedule | linear meters completed vs. scheduled | Daily |
| Actual cost vs. budget (CPI) | earned value ÷ actual cost | Weekly |
| Schedule performance (SPI) | earned value ÷ planned value | Weekly |
| Crew productivity | units produced ÷ man-hours | Daily |
| Warehouse materials vs. 14-day demand | current stock ÷ 14-day demand | Daily |
| Open observations | open count by work item | Daily |
| Billing issued and collected | SUNAT-invoiced amount vs. amount collected | Monthly |
| Projected cash flow 30d | expected inflows minus expected outflows | Daily |
Canonical Stack
| Layer | Tool | Monthly Cost |
|---|---|---|
| On-site capture | React Native or Capacitor mobile app | Included |
| Photo and geolocation | Supabase Storage + Mapbox or Google Maps | $25–$100 |
| Data Lake | Supabase Pro | $25 |
| SUNAT integration | OSE such as Nubefact or Sumico | $30–$100 |
| Executive dashboard | Metabase or custom React | $0–$50 |
| Notifications | Twilio or SendGrid | $20–$50 |
| Typical total | $200–$500 |
Step 1: On-Site Capture with a Mobile App
The rule: if the data doesn't get entered on-site, on-site, it never reaches the dashboard on time. A mobile app for the site superintendent or supervisor:
- Geotagged photo of progress at the start and end of each day
- Man-hour and machine-hour capture by work item
- Materials receiving with QR scan of the delivery slip
- Observations by work item with photo and severity level
- Electronic signature from site superintendent and supervisor
Typical stack: Capacitor + Lovable + Supabase. Every entry goes directly to Bronze with a timestamp and geolocation.
Step 2: Calculate KPIs in Gold
Postgres or Supabase materializes views:
create materialized view gold.constructora_dashboard as
select
obra_id,
partida_id,
sum(metros_avanzados) as avance_fisico,
sum(horas_hombre) as horas_hombre_totales,
sum(metros_avanzados) / nullif(sum(horas_hombre), 0) as productividad,
sum(costo_real) as costo_real,
sum(valor_ganado) as valor_ganado,
sum(valor_ganado) / nullif(sum(costo_real), 0) as cpi
from silver.partidas_avance
group by 1, 2;
refresh materialized view gold.constructora_dashboard;
Refresh every hour. For large projects, use a change-triggered refresh.
Step 3: Integrate with SUNAT via OSE
When you issue a monthly progress billing to your client, the electronic invoice is stamped via a SUNAT-authorized OSE (Nubefact, Sumico, Efact, or others). The flow:
- System builds the invoice with the billing amount and work item descriptions
- API call to the OSE
- OSE stamps it and returns the CDR (Comprobante de Recepción)
- Invoice is valid with SUNAT
- System stores the CDR in the Data Lake
- Dashboard cross-references billing issued vs. collected vs. physical progress
You immediately identify:
- Clients with overdue billings unpaid for more than 30 days
- Progress billings approved on-site but not yet issued to SUNAT
- Discrepancies between amounts collected and amounts stamped
Step 4: Executive Dashboard with Drill-Down
Metabase or custom React. Main view with 8 KPIs as cards. Drill down to:
- List of work items with CPI below 0.95 (over budget)
- List of work items with SPI below 0.95 (behind schedule)
- Crews with productivity below threshold
- Materials that will run out within the next 2 weeks
- Critical open observations
The Real Case: 28 KPIs with Zero Hallucinations
A multi-country distributor with 100 franchises needed advanced reporting. Catalizadora delivered:
- 28 KPIs hardcoded in JavaScript with browser-side calculation (zero server CPU)
- AI narrative only for text, not for KPI calculation
- Two-level pattern: KPI headline + AI paragraph
- Immutable audit trail with SHA-256 hash chain
- Verifiable
audit.verify_chain_integrityfunction - 5 reporting sections (Financials, Sales, Services, Complaints, System Usage)
- Investment included in COT-0003 at $26,000
This is what we call guardrails: KPIs in code, no hallucinations. Narrative generated on top of verified data. Auditable and defensible.
For a small construction firm in Peru, the pattern is identical: KPIs in SQL or TypeScript, narrative with Claude or GPT on top of already-calculated data. The LLM never calculates CPI or SPI — it only describes what the code already calculated.
Comparison: SaaS vs. Custom System
| Criterion | Procore or Buildertrend | Custom System |
|---|---|---|
| Monthly cost | $800–$3,500 | $200–$500 pass-through |
| Upfront cost | $0–$5,000 setup | $12,000–$25,000 one-time |
| SUNAT integration | Not native | Yes, with preferred OSE |
| Customization | Limited to the product | Total |
| Multi-project | Yes (but expensive) | Yes, no added cost |
| Code ownership | Vendor | You, 100% |
| Best for | Large firm with 10+ projects | Small firm with 3–10 projects |
What NOT to Do
- Daily Excel that arrives on Monday: you lose 6 days to react
- No on-site capture: Thursday's data gets reported on Monday (already late)
- No SUNAT integration: invoicing and project operations live in parallel systems
- International SaaS without SUNAT: you pay the subscription and still do invoicing by hand
- Dashboard without drill-down: the CEO sees a red number but can't investigate
Next Steps
If your small construction firm in Peru manages 2 to 10 simultaneous projects and still assembles reports manually every Monday, a real-time dashboard with a custom stack pays off fast.
Catalizadora runs the diagnostic in a 30-minute call — no pitch deck, a real conversation about your operation.
- MAGIA / Core builds custom systems with a mobile app, Data Lake, SUNAT integration, executive dashboards, and per-project modules in 12 weeks for $15,000. Code and data in your name, no retainers.
- For enterprise cases with an AI engine and day-one observability, MAGIA / Forge delivers in 12 weeks for $20,000.