Contract Parties & Project Scope
| Field | Details |
|---|---|
| Client | Confidential Client |
| Project Scope | Comprehensive analysis of incentive contract cash grants distribution |
| Data Source | Puerto Rico Government Portal - Quarterly Cash Grants Report |
| Analysis Period | FY 2017 - August 2025 (8+ years of data) |
| Deliverable | Executive-ready analytical report with data quality assessment |
Executive Summary
This report summarizes Puerto Rico Department of Economic Development quarterly cash-grant disclosures from fiscal year 2017 through August 2025 for 1,735 incentive contracts after PDF extraction and harmonization. Annual approved totals were limited through about 2019, then rose sharply from 2020 and peaked in 2023 and 2024, while the disbursed share within each contract year falls for the most recent cohorts, so a large and rising fraction of headline totals is approved-but-not-yet-paid capital rather than cash already disbursed. Contract-level disbursement ratios are concentrated near 0% and 100% (mean about 40%, median about 25%), with on the order of seven hundred contracts still at 0% disbursement, which flags backlog and timing risk when reading obligation totals. Choropleth funding bands and the ranked-municipality view both show heavy concentration of approved dollars in major coastal metros, notably San Juan and Aguadilla at the top of the list, while interior municipalities and smaller islands sit in lower funding tiers; disbursement efficiency relative to approvals varies widely across those municipalities (some smaller approvals disburse a high fraction; several large approvals show very low paid-to-date shares). The largest single-contract approved amounts skew toward pharmaceutical, medical device, and biotechnology manufacturing, with one Invest Puerto Rico related award as the dominant dollar outlier and cancellation uncommon among the top-ranked awards. Cumulative accounting by incentive category is dominated by machinery and equipment investment, with material balances in other reported categories, job creation/retention, and infrastructure investment, and comparatively small cumulative totals for specialized lines such as technology transfer and targeted SME programs, patterns that align with capital-equipment-heavy incentive use. Interpretation should stay tied to the methodology section on extraction, harmonization, and field definitions that affect counts, timing, and status labels.
Executive Summary Statistics
Methodology
Data Acquisition and Initial Processing
The primary data source for this analysis consists of quarterly cash grant reports published by the Puerto Rico Department of Economic Development, spanning fiscal years 2017 through August 2025. These reports were originally published as multi-page PDF documents containing tabular data on incentive contract distributions across municipalities and recipient organizations. Ozcorp Scientific LLC employed automated extraction algorithms to convert the PDF-formatted tables into machine-readable formats, initially producing comma-separated value files for downstream analytical processing. This extraction methodology was necessary due to the absence of structured data exports from the government portal.
Data Harmonization and Quality Control
Following initial data extraction, Ozcorp Scientific LLC implemented a systematic data harmonization protocol to address inconsistencies inherent in the manual data entry from the agency, as well as any errors stemming from the automated PDF extraction processes. The harmonization procedure involved standardizing date formats across temporal entries, normalizing currency field representations, and implementing text standardization algorithms to resolve variations in entity naming conventions. Quality control measures included identification and correction of optical character recognition artifacts, detection of duplicate entries resulting from typos, and validation of data completeness across all temporal periods. Statistical validation frameworks were applied to assess data integrity, with particular attention to identifying anomalous values that could indicate extraction or transcription errors requiring manual verification.
Note: The complete data aggregation, cleaning, and
deduplication process is documented in the companion notebook
00_data_aggregation.Rmd. This analysis notebook imports the
final clean dataset produced by that aggregation pipeline to ensure data
integrity and eliminate double-counting issues that could arise from
overlapping records between administrative periods.
Statistical Analysis Framework
The analytical approach employed descriptive statistical methods to characterize grant distribution patterns across temporal, geographic, and sectoral dimensions. Temporal analysis examined year-over-year trends in grant allocation volumes and identified potential seasonal or cyclical patterns in funding distributions. Geographic analysis focused on municipal-level grant concentrations, employing aggregation methods to identify regional patterns in economic development incentive targeting. Sectoral analysis examined grant distributions across recipient categories and organizational types, with particular attention to concentration patterns among high-volume recipients. Data quality metrics were continuously monitored throughout the analytical process to quantify the extent of harmonization requirements and assess the reliability of derived insights.
Visualization and Reporting Methodology
Visualization strategies were designed to communicate analytical findings through multiple complementary graphical representations, including temporal trend analyses, geographic distribution summaries, and recipient concentration studies. Each visualization employed consistent scaling methodologies to enable cross-temporal and cross-sectoral comparisons, with particular attention to maintaining visual clarity when representing large dynamic ranges in grant amounts. The reporting framework integrated quantitative findings with qualitative assessments of data quality limitations, providing context for interpretation of results within the constraints imposed by the original data extraction methodology. Statistical summaries were presented using standardized formatting to facilitate executive-level interpretation while maintaining scientific rigor in the presentation of uncertainty estimates and confidence intervals where applicable.
Data Import
## Clean dataset dimensions: 1735 34
## Total grant amount: $702,336,012
## Observed calendar years (min-max): 2016 to 2025
## Unique companies: 1256
## Unique municipalities: 78
## Unique grant categories (base): 12
##
## Data Quality Check:
## Records from Previous Administration Only: 76
## Records from Current Administration Only: 643
## Records from Both Administrations: 1016
## Records with grant amount changes: 4
## Records with status changes: 70
Administration Change Analysis
Data Source Harmonization Strategy
The analysis incorporates data from two distinct administrative periods, requiring a specialized harmonization approach to track changes between administrations. This methodology enables identification of policy shifts, data quality improvements, and administrative differences that may impact contract reporting and execution.
##
## === ADMINISTRATION DATA SOURCE SUMMARY ===
## # A tibble: 3 × 6
## data_source record_count total_grant_amount total_cancelled total_disbursed
## <chr> <int> <dbl> <dbl> <dbl>
## 1 Both Administ… 1016 452109899. 32451342. 135298808.
## 2 Current Admin… 643 233785707. 10840004. 52498789.
## 3 Previous Admi… 76 16440407. 8067500 5858852.
## # ℹ 1 more variable: avg_grant_amount <dbl>
##
## === CHANGES IN OVERLAPPING CONTRACTS ===
## # A tibble: 1 × 14
## total_contracts contracts_with_grant_changes contracts_with_status_changes
## <int> <int> <int>
## 1 1016 4 70
## # ℹ 11 more variables: contracts_with_cancelled_changes <int>,
## # contracts_with_disbursed_changes <int>, total_grant_increase <dbl>,
## # total_grant_decrease <dbl>, net_grant_change <dbl>,
## # total_cancelled_increase <dbl>, total_cancelled_decrease <dbl>,
## # net_cancelled_change <dbl>, total_disbursed_increase <dbl>,
## # total_disbursed_decrease <dbl>, net_disbursed_change <dbl>
##
## === PREVIOUS ADMINISTRATION TOTALS (for overlapping contracts) ===
## # A tibble: 1 × 4
## total_grant_prev total_cancelled_prev total_disbursed_prev avg_grant_prev
## <dbl> <dbl> <dbl> <dbl>
## 1 453287399. 2588926. 94992939. 446149.
##
## === CURRENT ADMINISTRATION TOTALS (for overlapping contracts) ===
## # A tibble: 1 × 4
## total_grant_curr total_cancelled_curr total_disbursed_curr avg_grant_curr
## <dbl> <dbl> <dbl> <dbl>
## 1 452109899. 32451342. 135298808. 444990.
Cash Grant Data Harmonization
## === CASH GRANT CATEGORY SUMMARY ===
## Total unique categories: 12
## Categories with single contract: 3
## Categories with >10 contracts: 6
## [1] "All Cash Grant Categories:"
## # A tibble: 12 × 6
## grant_category_base count total_amount avg_amount min_year max_year
## <chr> <int> <dbl> <dbl> <dbl> <dbl>
## 1 Inversión en Maquinaria/Equi… 300 399347268. 1331158. 2019 2025
## 2 Otros 822 129829168. 157943. 2019 2025
## 3 Creación/Retención de Empleos 313 90509631 289168. 2018 2025
## 4 Inversión en Infraestructura 50 68483530. 1369671. 2019 2025
## 5 Transferencia de Tecnología 7 5860000 837143. 2023 2024
## 6 PYMES Innovadoras 23 2490000 108261. 2021 2025
## 7 Servicios Profesionales 5 1978967 395793. 2024 2025
## 8 Industrias Creativas 206 1968239. 9555. 2022 2025
## 9 Renta Incentivada 1 1483614 1483614 2016 2016
## 10 Apoyo Empresarial 6 325000 54167. 2024 2024
## 11 Sin Categoría 1 50595 50595 2023 2023
## 12 Ayuda PYMES Huracán Fiona 1 10000 10000 2022 2022
##
## === POTENTIAL DATA QUALITY ISSUES ===
##
## === CATEGORIES WITH SINGLE CONTRACTS (Potential Errors) ===
## # A tibble: 3 × 6
## grant_category_base count total_amount avg_amount min_year max_year
## <chr> <int> <dbl> <dbl> <dbl> <dbl>
## 1 Renta Incentivada 1 1483614 1483614 2016 2016
## 2 Sin Categoría 1 50595 50595 2023 2023
## 3 Ayuda PYMES Huracán Fiona 1 10000 10000 2022 2022
Plot 1: Aggregate Cash Grant Amount Per Year
## [1] "Yearly Grant Totals with Disbursement Information:"
## # A tibble: 9 × 6
## `Contract Year` `Total Approved (M)` `Total Disbursed (M)` `Undisbursed (M)`
## <dbl> <dbl> <dbl> <dbl>
## 1 2016 1.48 1.43 0.0547
## 2 2018 0.528 0.390 0.138
## 3 2019 31.0 16.7 14.3
## 4 2020 124. 59.2 64.8
## 5 2021 69.8 33.7 36.1
## 6 2022 111. 31.6 79.9
## 7 2023 144. 33.4 111.
## 8 2024 153. 15.6 137.
## 9 2025 67.1 1.55 65.5
## # ℹ 2 more variables: `Disbursement Rate (%)` <dbl>, `Contract Count` <int>
Plot 2: Cash Grant Distribution by Municipality (Puerto Rico Map)
## === FUNDING RANGE CALCULATION ===
## Min amount: $ 0.00 M
## Q1 (25th percentile): $ 0.3 M
## Q2 (50th percentile/median): $ 1.5 M
## Q3 (75th percentile): $ 8.6 M
## Q90 (90th percentile): $ 22.2 M
## Max amount: $ 128.2 M
## | | | 0% | | | 1% | |= | 1% | |= | 2% | |== | 2% | |== | 3% | |=== | 4% | |=== | 5% | |==== | 5% | |==== | 6% | |===== | 7% | |===== | 8% | |====== | 8% | |====== | 9% | |======= | 9% | |======= | 10% | |======= | 11% | |======== | 11% | |======== | 12% | |========= | 12% | |========= | 13% | |========= | 14% | |========== | 14% | |========== | 15% | |=========== | 15% | |=========== | 16% | |============ | 17% | |============ | 18% | |============= | 18% | |============= | 19% | |============== | 19% | |============== | 20% | |============== | 21% | |=============== | 21% | |=============== | 22% | |================ | 22% | |================ | 23% | |================ | 24% | |================= | 24% | |================= | 25% | |================== | 25% | |================== | 26% | |=================== | 27% | |=================== | 28% | |==================== | 28% | |==================== | 29% | |===================== | 29% | |===================== | 30% | |===================== | 31% | |====================== | 31% | |====================== | 32% | |======================= | 32% | |======================= | 33% | |======================= | 34% | |======================== | 34% | |======================== | 35% | |========================= | 35% | |========================= | 36% | |========================== | 36% | |========================== | 37% | |========================== | 38% | |=========================== | 38% | |=========================== | 39% | |============================ | 39% | |============================ | 40% | |============================ | 41% | |============================= | 41% | |============================= | 42% | |============================== | 42% | |============================== | 43% | |============================== | 44% | |=============================== | 44% | |=============================== | 45% | |================================ | 45% | |================================ | 46% | |================================= | 47% | |================================= | 48% | |================================== | 48% | |================================== | 49% | |=================================== | 49% | |=================================== | 50% | |=================================== | 51% | |==================================== | 51% | |==================================== | 52% | |===================================== | 52% | |===================================== | 53% | |====================================== | 54% | |====================================== | 55% | |======================================= | 55% | |======================================= | 56% | |======================================== | 56% | |======================================== | 57% | |======================================== | 58% | |========================================= | 58% | |========================================= | 59% | |========================================== | 59% | |========================================== | 60% | |========================================== | 61% | |=========================================== | 61% | |=========================================== | 62% | |============================================ | 62% | |============================================ | 63% | |============================================= | 64% | |============================================= | 65% | |============================================== | 65% | |============================================== | 66% | |=============================================== | 67% | |=============================================== | 68% | |================================================ | 68% | |================================================ | 69% | |================================================= | 69% | |================================================= | 70% | |================================================= | 71% | |================================================== | 71% | |================================================== | 72% | |=================================================== | 72% | |=================================================== | 73% | |==================================================== | 74% | |==================================================== | 75% | |===================================================== | 75% | |===================================================== | 76% | |====================================================== | 76% | |====================================================== | 77% | |====================================================== | 78% | |======================================================= | 78% | |======================================================= | 79% | |======================================================== | 79% | |======================================================== | 80% | |======================================================== | 81% | |========================================================= | 81% | |========================================================= | 82% | |========================================================== | 82% | |========================================================== | 83% | |=========================================================== | 84% | |=========================================================== | 85% | |============================================================ | 85% | |============================================================ | 86% | |============================================================= | 87% | |============================================================= | 88% | |============================================================== | 88% | |============================================================== | 89% | |=============================================================== | 89% | |=============================================================== | 90% | |=============================================================== | 91% | |================================================================ | 91% | |================================================================ | 92% | |================================================================= | 92% | |================================================================= | 93% | |================================================================= | 94% | |================================================================== | 94% | |================================================================== | 95% | |=================================================================== | 95% | |=================================================================== | 96% | |==================================================================== | 96% | |==================================================================== | 97% | |==================================================================== | 98% | |===================================================================== | 98% | |===================================================================== | 99% | |======================================================================| 99% | |======================================================================| 100%
## [1] "Funding Range Distribution Summary:"
## # A tibble: 5 × 4
## `Funding Range` Municipalities `Total Amount` `Average Amount`
## <fct> <int> <chr> <chr>
## 1 Very High (>$22.2M) 8 $430.2M $53.8M
## 2 High ($8.6M-$22.2M) 12 $173.0M $14.4M
## 3 Medium-High ($1.5M-$8.6M) 19 $ 82.0M $ 4.3M
## 4 Medium-Low ($0.3M-$1.5M) 19 $ 14.4M $ 0.8M
## 5 Low ($0.00M-$0.3M) 20 $ 2.7M $ 0.1M
## [1] "Top 10 Municipalities by Total Funding:"
## # A tibble: 10 × 4
## Municipality `Funding Range` `Total Amount` Contracts
## <chr> <fct> <chr> <int>
## 1 SAN JUAN Very High (>$22.2M) $128.2M 317
## 2 AGUADILLA Very High (>$22.2M) $107.8M 54
## 3 GUAYAMA Very High (>$22.2M) $ 41.6M 15
## 4 JUANA DÍAZ Very High (>$22.2M) $ 36.9M 17
## 5 YAUCO Very High (>$22.2M) $ 35.8M 15
## 6 ARECIBO Very High (>$22.2M) $ 31.1M 41
## 7 CIDRA Very High (>$22.2M) $ 26.6M 13
## 8 AÑASCO Very High (>$22.2M) $ 22.3M 13
## 9 SAN LORENZO High ($8.6M-$22.2M) $ 22.1M 15
## 10 MAYAGÜEZ High ($8.6M-$22.2M) $ 21.2M 57
Plot 3: Cash Grant Amount by Contract Number (Colored by Status)
## [1] "Top 20 Contracts Overall - Status Summary:"
## # A tibble: 3 × 4
## contract_or_cancelled contract_count total_amount avg_amount
## <chr> <int> <dbl> <dbl>
## 1 Contract 18 251021846 13945658.
## 2 Cancelled (Balance pending) 1 50000000 50000000
## 3 Cancelled 1 7000000 7000000
## [1] "Top 20 Contracts Overall by Grant Amount:"
## # A tibble: 20 × 6
## `Contract Number` `Grant Amount` Status Recipient Municipality Sector
## <chr> <dbl> <chr> <chr> <chr> <chr>
## 1 2020-001077 50000000 Cancelled (Ba… INVEST P… SAN JUAN PROFE…
## 2 2023-001914 28000000 Contract SARTORIU… YAUCO MANUF…
## 3 2024-000563 25000000 Contract COOPERVI… JUANA DÍAZ HEALT…
## 4 2021-000178 22450000 Contract PF CONSU… GUAYAMA MANUF…
## 5 2022-000216 22000000 Contract COPAN IN… AGUADILLA MANUF…
## 6 2025-000745 21500000 Contract CARIBBEA… CIDRA MANUF…
## 7 2025-000443 18000000 Contract ETHICON … SAN LORENZO MANUF…
## 8 2024-000542 14310000 Contract ABBVIE B… BARCELONETA MANUF…
## 9 2025-000019 13424000 Contract AMO PUER… AÑASCO HEALT…
## 10 2022-000432-A 13000000 Contract BIOSOMIL… AGUADILLA MANUF…
## 11 2025-000221 10500000 Contract THERMO K… ARECIBO CONST…
## 12 2023-002139 10000000 Contract BAXTER H… AIBONITO MANUF…
## 13 2020-000420 8760000 Contract BOEHRING… SAN JUAN MANUF…
## 14 2023-002370 8000000 Contract CERVECER… MAYAGÜEZ MANUF…
## 15 2024-000170 7707846 Contract COOPERVI… JUANA DÍAZ HEALT…
## 16 2022-000151 7500000 Contract CytoInmu… TOA BAJA MANUF…
## 17 2023-000004 7270000 Contract GUIDANT … DORADO MANUF…
## 18 2021-000010-A 7000000 Cancelled BECTON D… JUNCOS HEALT…
## 19 2019-000389 6800000 Contract FENWAL I… MAYAGÜEZ MANUF…
## 20 2025-000052 6800000 Contract AbbVie B… MANATÍ HEALT…
## [1] "Top 10 Contracts per Sector - Status Summary:"
## # A tibble: 35 × 5
## SECTOR contract_or_cancelled contract_count total_amount avg_amount
## <chr> <chr> <int> <dbl> <dbl>
## 1 MANUFACTURING Contract 10 166020000 16602000
## 2 HEALTHCARE Contract 9 73306846 8145205.
## 3 PROFESSIONAL Cancelled (Balance pen… 1 50000000 50000000
## 4 CONSTRUCTION Contract 10 34226900 3422690
## 5 PROFESSIONAL Contract 8 14729703 1841213.
## 6 INFORMATION Cancelled 7 9730000 1390000
## 7 HEALTHCARE Cancelled 1 7000000 7000000
## 8 OTHER_SERVICES Contract 10 6629450 662945
## 9 AGRICULTURE Contract 9 6378196 708688.
## 10 ADMINISTRATIVE Contract 7 3700185 528598.
## # ℹ 25 more rows
## [1] "Top Contracts by Grant Amount (Top 10 per Sector):"
## # A tibble: 167 × 6
## `Contract Number` `Grant Amount` Status Recipient Municipality Sector
## <chr> <dbl> <chr> <chr> <chr> <chr>
## 1 2025-000736 465000 Contract AC CULINARY G… BAYAMÓN ACCOM…
## 2 2020-000167 56000 Cancelled MARVEL INTERN… GUAYNABO ACCOM…
## 3 2023-002446 50000 Contract ACTA LLC / YI… SAN GERMÁN ACCOM…
## 4 2023-002258 50000 Contract FILOMENA CARN… SAN JUAN ACCOM…
## 5 2023-002397 50000 Contract FNJCC CORPORA… PONCE ACCOM…
## 6 2023-002393 50000 Contract FRESCURA, LLC BAYAMÓN ACCOM…
## 7 2023-002441 50000 Contract HEIDI L. IRIZ… ADJUNTAS ACCOM…
## 8 2023-002315 50000 Contract JAEO CORPORAT… GURABO ACCOM…
## 9 2023-002256 50000 Contract JOSE A. MONTA… BARCELONETA ACCOM…
## 10 2023-002401 50000 Contract OMAR SOTO MEN… MOCA ACCOM…
## # ℹ 157 more rows
Plot 4: Cumulative Cash Grant Amount Per Year by Grant Category
## # A tibble: 12 × 3
## grant_category_base total_amount years_active
## <chr> <dbl> <int>
## 1 Inversión en Maquinaria/Equipo 399347268. 7
## 2 Otros 129829168. 7
## 3 Creación/Retención de Empleos 90509631 8
## 4 Inversión en Infraestructura 68483530. 7
## 5 Transferencia de Tecnología 5860000 2
## 6 PYMES Innovadoras 2490000 5
## 7 Servicios Profesionales 1978967 2
## 8 Industrias Creativas 1968239. 4
## 9 Renta Incentivada 1483614 1
## 10 Apoyo Empresarial 325000 1
## 11 Sin Categoría 50595 1
## 12 Ayuda PYMES Huracán Fiona 10000 1
Plot 4b: Cumulative Cash Grant Amount Per Year by Grant Category (Below $10M Zoom)
## [1] "Categories Below $10M Summary:"
## # A tibble: 8 × 3
## grant_category_base total_amount years_active
## <chr> <dbl> <int>
## 1 Transferencia de Tecnología 5860000 2
## 2 PYMES Innovadoras 2490000 5
## 3 Servicios Profesionales 1978967 2
## 4 Industrias Creativas 1968239. 4
## 5 Renta Incentivada 1483614 1
## 6 Apoyo Empresarial 325000 1
## 7 Sin Categoría 50595 1
## 8 Ayuda PYMES Huracán Fiona 10000 1
Plot 5: Approved vs Disbursed Funds per Sector (Stacked Bars)
Key Findings & Business Implications
Data Quality Assessment
- Extraction Challenges: Automated PDF processing revealed significant data harmonization requirements
- Category Standardization: Multiple variations in grant category naming require systematic consolidation
- Quality Metrics: Comprehensive data quality framework implemented for future extractions
Strategic Insights
- Geographic Distribution: Clear patterns in municipal grant allocation across Puerto Rico
- Company Concentration: Top 5% of companies represent significant portion of total grants
- Temporal Trends: Year-over-year analysis reveals economic development patterns
- Category Analysis: Cumulative trends show evolution of incentive program focus
Recommendations
- Data Standardization: Implement systematic category harmonization for future reports
- Quality Control: Enhanced validation framework for PDF extraction processes
- Monitoring Framework: Regular analysis of grant distribution patterns
- Strategic Planning: Use insights for economic development policy optimization